飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5798|回复: 14

[讨论] Actual Search & Replace Version 2.8.5爆破及疑问

[复制链接]
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-8-17 14:23:49 | 显示全部楼层 |阅读模式
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    把疑问说在前面:

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

    汇编学的太少,太粗,没办法跟进注册码。下文代码中的注释为自己臆想所得,不确定正确。
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    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:[eax],edx
    004E7049      EB 47             jmp short ActualSR.004E7092        ; 注册码长度正确的跳转?
    004E704B    ^ E9 18C4F1FF       jmp ActualSR.00403468
    004E7050      6A 00             push 0
    004E7052      66:8B0D E0714E00  mov cx,word ptr ds:[4E71E0]
    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:[ebp-10]
    004E7068      E8 F35AFAFF       call ActualSR.0048CB60
    004E706D      8B45 F0           mov eax,dword ptr ss:[ebp-10]
    004E7070      E8 47BFF1FF       call ActualSR.00402FBC
    004E7075      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E707A      8B00              mov eax,dword ptr ds:[eax]
    004E707C      C680 70210000 00  mov byte ptr ds:[eax+2170],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:[ebp-10]
    004E7095      E8 C65AFAFF       call ActualSR.0048CB60
    004E709A      8B45 F0           mov eax,dword ptr ss:[ebp-10]
    004E709D      E8 1ABFF1FF       call ActualSR.00402FBC
    004E70A2      8B55 F8           mov edx,dword ptr ss:[ebp-8]
    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:[ebp-C]       ; 取假码
    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:[eax]
    004E70CF      64:8920           mov dword ptr fs:[eax],esp
    004E70D2      6A 00             push 0
    004E70D4      B8 EC714E00       mov eax,ActualSR.004E71EC          ; ASCII "Incorrect key"
    004E70D9      66:8B0D E0714E00  mov cx,word ptr ds:[4E71E0]
    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:[eax],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:[4E9578]
    004E7100      8B00              mov eax,dword ptr ds:[eax]
    004E7102      C680 70210000 00  mov byte ptr ds:[eax+2170],0
    004E7109      E9 9A000000       jmp ActualSR.004E71A8
    004E710E      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E7113      8B00              mov eax,dword ptr ds:[eax]
    004E7115      C680 70210000 00  mov byte ptr ds:[eax+2170],0
    004E711C      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E7121      8B00              mov eax,dword ptr ds:[eax]
    004E7123      05 68210000       add eax,2168
    004E7128      8B55 F4           mov edx,dword ptr ss:[ebp-C]       ; 取假码
    004E712B      E8 C4CBF1FF       call ActualSR.00403CF4             ; 算注册名
    004E7130      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E7135      8B00              mov eax,dword ptr ds:[eax]
    004E7137      05 6C210000       add eax,216C
    004E713C      50                push eax
    004E713D      8B45 F8           mov eax,dword ptr ss:[ebp-8]
    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:[ebx+11]
    004E714F      8B45 F8           mov eax,dword ptr ss:[ebp-8]
    004E7152      E8 D1CFF1FF       call ActualSR.00404128
    004E7157      6A 00             push 0
    004E7159      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E715E      8B00              mov eax,dword ptr ds:[eax]
    004E7160      8B88 6C210000     mov ecx,dword ptr ds:[eax+216C]
    004E7166      8D45 E4           lea eax,dword ptr ss:[ebp-1C]
    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:[ebp-1C]
    004E7176      66:8B0D E0714E00  mov cx,word ptr ds:[4E71E0]
    004E717D      B2 02             mov dl,2
    004E717F      E8 D038F7FF       call ActualSR.0045AA54             ; 弹窗注册成功
    004E7184      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E7189      8B00              mov eax,dword ptr ds:[eax]
    004E718B      C680 70210000 01  mov byte ptr ds:[eax+2170],1
    004E7192      A1 78954E00       mov eax,dword ptr ds:[4E9578]
    004E7197      8B00              mov eax,dword ptr ds:[eax]
    004E7199      C680 71210000 01  mov byte ptr ds:[eax+2171],1
    004E71A0      8B45 FC           mov eax,dword ptr ss:[ebp-4]
    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:[eax],edx
    004E71B0      68 D7714E00       push ActualSR.004E71D7
    004E71B5      8D45 E4           lea eax,dword ptr ss:[ebp-1C]
    004E71B8      BA 03000000       mov edx,3
    004E71BD      E8 02CBF1FF       call ActualSR.00403CC4             ; 重置注册弹窗
    004E71C2      8D45 F4           lea eax,dword ptr ss:[ebp-C]
    004E71C5      BA 02000000       mov edx,2
    004E71CA      E8 F5CAF1FF       call ActualSR.00403CC4
    004E71CF      C3                retn


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

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

    评分

    参与人数 1飘云币 +40 收起 理由
    Luckly + 40 继续努力

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2009-8-17 15:29:53 | 显示全部楼层
    试试你说的关键跳前面的CALL,跟进CALL,修改为mov eax,1   retn
    004E70AA      E8 5DD1F1FF       call ActualSR.0040420C
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-8-17 15:51:29 | 显示全部楼层
    004E70A2      8B55 F8           mov edx,dword ptr ss:[ebp-8]
    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 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-8-17 16:48:54 | 显示全部楼层
    谢谢两位老大,我这就试试!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

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

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

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

    [ 本帖最后由 zaas 于 2009-8-17 20:07 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-8-17 21:25:50 | 显示全部楼层
    /:L 吼吼吼。。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-8-17 22:55:01 | 显示全部楼层
    /:001 文章不错,有前途啊,/:good
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2009-8-17 23:38:43 | 显示全部楼层
    我那个看你文章来猜的。。。下载来看了下可以在启动时加修改
    004DA596    /74 69                    je short ActualSR.004DA601                        ; 不需注册文件NOP

    004DA60D    /74 0E                    je short ActualSR.004DA61D                        ; 不到启动框nop
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-8-18 08:50:02 | 显示全部楼层
    感谢 WAN老师的解答。我想多请教一点:

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

    能给我个思路吗?
    PYG19周年生日快乐!
  • TA的每日心情

    2016-6-2 20:34
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 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 00  mov byte ptr ds:[eax+2170],0
    。。。。。。
    004E718B      C680 70210000 01  mov byte ptr ds:[eax+2170],1

    下断那个CALL,单步几次就到了。。。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表