zaas 发表于 2009-8-17 14:23:49

Actual Search & Replace Version 2.8.5爆破及疑问

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
把疑问说在前面:

软件爆破成功,限制也去掉了,注册也成功了,可是为什么每次还会弹出注册窗口?求教!

汇编学的太少,太粗,没办法跟进注册码。下文代码中的注释为自己臆想所得,不确定正确。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Actual Search & Replace 2.8.5

    * 软件大小:662KB
    * 软件语言:英文
    * 软件授权:共享版
    * 运行环境:Winxp/vista/2000/2003
    * 下载地址:http://www.divlocsoft.com/actualsr.zip
    * 软件介绍:Actual Search & Replace是一个搜寻并取代系统的工具程式,你可设置路径来找寻档案,这程式强调搜寻的单字和片语,并把结果列表出来。此程式的特色有:你可以取代、插入和删除叙述或排列到文件夹;档案修改还原;你可以建立一个包含有关可以找得到档案的档案资讯。



004E7046      64:8910         mov dword ptr fs:,edx
004E7049      EB 47             jmp short ActualSR.004E7092      ; 注册码长度正确的跳转?
004E704B    ^ E9 18C4F1FF       jmp ActualSR.00403468
004E7050      6A 00             push 0
004E7052      66:8B0D E0714E00mov cx,word ptr ds:
004E7059      B2 01             mov dl,1
004E705B      B8 EC714E00       mov eax,ActualSR.004E71EC          ; ASCII "Incorrect key"
004E7060      E8 EF39F7FF       call ActualSR.0045AA54
004E7065      8B45 F0         mov eax,dword ptr ss:
004E7068      E8 F35AFAFF       call ActualSR.0048CB60
004E706D      8B45 F0         mov eax,dword ptr ss:
004E7070      E8 47BFF1FF       call ActualSR.00402FBC
004E7075      A1 78954E00       mov eax,dword ptr ds:
004E707A      8B00            mov eax,dword ptr ds:
004E707C      C680 70210000 00mov byte ptr ds:,0
004E7083      E8 3CC7F1FF       call ActualSR.004037C4
004E7088      E9 1B010000       jmp ActualSR.004E71A8
004E708D      E8 32C7F1FF       call ActualSR.004037C4
004E7092      8B45 F0         mov eax,dword ptr ss:
004E7095      E8 C65AFAFF       call ActualSR.0048CB60
004E709A      8B45 F0         mov eax,dword ptr ss:
004E709D      E8 1ABFF1FF       call ActualSR.00402FBC
004E70A2      8B55 F8         mov edx,dword ptr ss:
004E70A5      B8 04724E00       mov eax,ActualSR.004E7204          ; ASCII "AcSearch&Replace;"
004E70AA      E8 5DD1F1FF       call ActualSR.0040420C
004E70AF      8BD8            mov ebx,eax
004E70B1      85DB            test ebx,ebx
004E70B3      74 0F             je short ActualSR.004E70C4         ;关键跳转,NOP
004E70B5      8B45 F4         mov eax,dword ptr ss:       ; 取假码
004E70B8      BA 20724E00       mov edx,ActualSR.004E7220          ; 参与计算注册码的固定字符串 IKiZhZL170UUvtoyVN5ginTgPygyaoVTh1+lRilFhOUMZaSlznNQKzPyWCxer7XsmolMvwx+hj5kblpQ5ZJ6FE
004E70BD      E8 6ECFF1FF       call ActualSR.00404030
004E70C2      75 58             jnz short ActualSR.004E711C      ; key检测关键跳转,ZF=0则跳过incorrect key弹窗,ZF=1则跳死,改为JMP
004E70C4      33C0            xor eax,eax
004E70C6      55                push ebp
004E70C7      68 F1704E00       push ActualSR.004E70F1
004E70CC      64:FF30         push dword ptr fs:
004E70CF      64:8920         mov dword ptr fs:,esp
004E70D2      6A 00             push 0
004E70D4      B8 EC714E00       mov eax,ActualSR.004E71EC          ; ASCII "Incorrect key"
004E70D9      66:8B0D E0714E00mov cx,word ptr ds:
004E70E0      B2 01             mov dl,1
004E70E2      E8 6D39F7FF       call ActualSR.0045AA54
004E70E7      33C0            xor eax,eax
004E70E9      5A                pop edx
004E70EA      59                pop ecx
004E70EB      59                pop ecx
004E70EC      64:8910         mov dword ptr fs:,edx
004E70EF      EB 0A             jmp short ActualSR.004E70FB
004E70F1    ^ E9 72C3F1FF       jmp ActualSR.00403468
004E70F6      E8 C9C6F1FF       call ActualSR.004037C4
004E70FB      A1 78954E00       mov eax,dword ptr ds:
004E7100      8B00            mov eax,dword ptr ds:
004E7102      C680 70210000 00mov byte ptr ds:,0
004E7109      E9 9A000000       jmp ActualSR.004E71A8
004E710E      A1 78954E00       mov eax,dword ptr ds:
004E7113      8B00            mov eax,dword ptr ds:
004E7115      C680 70210000 00mov byte ptr ds:,0
004E711C      A1 78954E00       mov eax,dword ptr ds:
004E7121      8B00            mov eax,dword ptr ds:
004E7123      05 68210000       add eax,2168
004E7128      8B55 F4         mov edx,dword ptr ss:       ; 取假码
004E712B      E8 C4CBF1FF       call ActualSR.00403CF4             ; 算注册名
004E7130      A1 78954E00       mov eax,dword ptr ds:
004E7135      8B00            mov eax,dword ptr ds:
004E7137      05 6C210000       add eax,216C
004E713C      50                push eax
004E713D      8B45 F8         mov eax,dword ptr ss:
004E7140      E8 DBCDF1FF       call ActualSR.00403F20
004E7145      8BC8            mov ecx,eax
004E7147      2BCB            sub ecx,ebx
004E7149      83E9 02         sub ecx,2
004E714C      8D53 11         lea edx,dword ptr ds:
004E714F      8B45 F8         mov eax,dword ptr ss:
004E7152      E8 D1CFF1FF       call ActualSR.00404128
004E7157      6A 00             push 0
004E7159      A1 78954E00       mov eax,dword ptr ds:
004E715E      8B00            mov eax,dword ptr ds:
004E7160      8B88 6C210000   mov ecx,dword ptr ds:
004E7166      8D45 E4         lea eax,dword ptr ss:
004E7169      BA 80724E00       mov edx,ActualSR.004E7280          ; ASCII "Registration successful!
User name: "
004E716E      E8 F9CDF1FF       call ActualSR.00403F6C             ; 取注册名
004E7173      8B45 E4         mov eax,dword ptr ss:
004E7176      66:8B0D E0714E00mov cx,word ptr ds:
004E717D      B2 02             mov dl,2
004E717F      E8 D038F7FF       call ActualSR.0045AA54             ; 弹窗注册成功
004E7184      A1 78954E00       mov eax,dword ptr ds:
004E7189      8B00            mov eax,dword ptr ds:
004E718B      C680 70210000 01mov byte ptr ds:,1
004E7192      A1 78954E00       mov eax,dword ptr ds:
004E7197      8B00            mov eax,dword ptr ds:
004E7199      C680 71210000 01mov byte ptr ds:,1
004E71A0      8B45 FC         mov eax,dword ptr ss:
004E71A3      E8 A897F6FF       call ActualSR.00450950
004E71A8      33C0            xor eax,eax
004E71AA      5A                pop edx
004E71AB      59                pop ecx
004E71AC      59                pop ecx
004E71AD      64:8910         mov dword ptr fs:,edx
004E71B0      68 D7714E00       push ActualSR.004E71D7
004E71B5      8D45 E4         lea eax,dword ptr ss:
004E71B8      BA 03000000       mov edx,3
004E71BD      E8 02CBF1FF       call ActualSR.00403CC4             ; 重置注册弹窗
004E71C2      8D45 F4         lea eax,dword ptr ss:
004E71C5      BA 02000000       mov edx,2
004E71CA      E8 F5CAF1FF       call ActualSR.00403CC4
004E71CF      C3                retn


保存运行。输入任意86个字符(字符数多了少了下边几个call程序会死掉),显示:注册成功。
第二次Crack软件,作文纪念。

[ 本帖最后由 zaas 于 2009-8-17 15:18 编辑 ]

wan 发表于 2009-8-17 15:29:53

试试你说的关键跳前面的CALL,跟进CALL,修改为mov eax,1   retn
004E70AA      E8 5DD1F1FF       call ActualSR.0040420C

Luckly 发表于 2009-8-17 15:51:29


004E70A2      8B55 F8         mov edx,dword ptr ss:
004E70A5      B8 04724E00       mov eax,ActualSR.004E7204          ; ASCII "AcSearch&Replace;"
004E70AA      E8 5DD1F1FF       call ActualSR.0040420C

这个是 寻找解码后的字符串是否含有 "AcSearch&Replace;"返回出现的首位置


004E70BD      E8 6ECFF1FF       call ActualSR.00404030
004E70C2      75 58             jnz short ActualSR.004E711C      ; key检测关键跳转,ZF=0则跳过incorrect key弹窗,ZF=1则跳死,改为JMP


上面的那个call是检测是否是自带的注册码

实际上注册码就是这串 IKiZhZL170UUvtoyVN5ginTgPygyaoVTh1+lRilFhOUMZaSlznNQKzPyWCxer7XsmolMvwx+hj5kblpQ5ZJ6FE


你只要在那个call里面改下就可以了
修改 00404039   /E9 90000000   jmp   ActualSR.004040CE
0040403E   |90            nop


然后用那串注册码就可以完美注册了

注册信息在Find.avi里面

[ 本帖最后由 Luckly 于 2009-8-17 15:55 编辑 ]

zaas 发表于 2009-8-17 16:48:54

谢谢两位老大,我这就试试!

zaas 发表于 2009-8-17 19:59:13

经过多次试验,wan老师的方法不能成功。od里边断点设在004E70AA调试的时候貌似可以,但保存重新运行会发现,程序走不到这个call就直接跳死了。据luckly老师所说,此call是寻找解码后的字符串是否含有 "AcSearch&Replace",似乎不是解决问题的关键。
或许是我太愚钝?

luckly老师的方法很巧妙。看到这串字符串的时候我也疑心是注册码,可是试了不行/:001 ,呵呵。原来还有玄机。

看来我要学的东西还很多。。。

[ 本帖最后由 zaas 于 2009-8-17 20:07 编辑 ]

zaas 发表于 2009-8-17 21:25:50

/:L 吼吼吼。。

cjteam 发表于 2009-8-17 22:55:01

/:001 文章不错,有前途啊,/:good

wan 发表于 2009-8-17 23:38:43

我那个看你文章来猜的。。。下载来看了下可以在启动时加修改
004DA596    /74 69                  je short ActualSR.004DA601                        ; 不需注册文件NOP

004DA60D    /74 0E                  je short ActualSR.004DA61D                        ; 不到启动框nop

zaas 发表于 2009-8-18 08:50:02

感谢 WAN老师的解答。我想多请教一点:

您是如何找到注册窗口的入口的?
或者说怎样下断才能追到004DA60D ?

能给我个思路吗?

wan 发表于 2009-8-18 10:32:20

根据你给的代码
004E70AA      E8 5DD1F1FF       call ActualSR.0040420C//跟进CALL下断
004E70AF      8BD8            mov ebx,eax
004E70B1      85DB            test ebx,ebx
004E70B3      74 0F             je short ActualSR.004E70C4         ;关键跳转,NOP

这些也是信息
004E7102      C680 70210000 00mov byte ptr ds:,0
。。。。。。
004E718B      C680 70210000 01mov byte ptr ds:,1

下断那个CALL,单步几次就到了。。。。
页: [1] 2
查看完整版本: Actual Search & Replace Version 2.8.5爆破及疑问