专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »逆向工程 » cdtomp3ripper:明码和暴破Ace MP3 Ripper V1.5.0(图) »正文

cdtomp3ripper:明码和暴破Ace MP3 Ripper V1.5.0(图)

来源: 发布时间:星期四, 2009年3月12日 浏览:0次 评论:0
软件Software名称: Ace MP3 Ripper V1.5.0
软件Software大小: 2336 KB
软件Software语言: 英文
软件Software类别: 国外软件Software / 共享版 / 音频转换
应用平台: Win9x/NT/2000/XP/2003
天空下载: http://www.skycn.com/soft/15430.html

这里先简单补充下寄存器和标志位概念
我们在寄存器窗口第行看到就是EAX寄存器 EAX共是4*8=32位分为前16位和后16位 EAX寄存器中00000000 后 4位16进制(后16位2进制)就是AX前两个16进制是AH后两个16进制是AL(AX前8位是AH 后8位是AL)


我们通过关键串:thank you for registering our software!


找到软件Software注册部分后先不忙中下断我们来看下这个跳转:
0043EE13   .  0F84 CB000000 je      0043EEE4
我们观察这个跳转显然这里跳走后软件Software就提示注册失败而上方test ax,ax来决定这个关键跳是否实现test语句上方CALL中带来返回值就是注册比较后得到关键数据AX数值
我们在0043EDF5   .  E8 B6790000   call    004467B0 这里下断来修改他送回AX返回数值

0043EDF5   .  E8 B6790000   call    004467B0                         ;  我们在此下断F7跟进(该CALL将返回个AX标志位关键数值)
0043EDFA   .  66:85C0       test    ax, ax                           ;  这里汇编语句:test ax,ax 来决定下方关键跳是否实现跳转
0043EDFD   .  B9 04000280   mov     ecx, 80020004
0043EE02   .  B8 0A000000   mov     eax, 0A
0043EE07   .  894D A8       mov     dword ptr [ebp-58], ecx
0043EE0A   .  8945 A0       mov     dword ptr [ebp-60], eax
0043EE0D   .  894D B8       mov     dword ptr [ebp-48], ecx
0043EE10   .  8945 B0       mov     dword ptr [ebp-50], eax
0043EE13   .  0F84 CB000000 je      0043EEE4                         ;  我们观察这个跳转显然这里跳走后软件Software就提示注册失败
0043EE19   .  8D55 90       lea     edx, dword ptr [ebp-70]
0043EE1C   .  8D4D C0       lea     ecx, dword ptr [ebp-40]
0043EE1F   .  C745 98 10B74>mov     dword ptr [ebp-68], 0041B710     ;  successful
0043EE26   .  895D 90       mov     dword ptr [ebp-70], ebx
0043EE29   .  FF15 08124000 call    dword ptr [<&MSVBVM60.__vbaVarDu>;  MSVBVM60.__vbaVarDup
0043EE2F   .  68 5CB64100   push    0041B65C                         ;  the registration name and code are accepted,
0043EE34   .  68 50734100   push    00417350                         ;  \n\n
0043EE39   .  FF15 54104000 call    dword ptr [<&MSVBVM60.__vbaStrCa>;  MSVBVM60.__vbaStrCat
0043EE3F   .  8BD0          mov     edx, eax
0043EE41   .  8D4D E8       lea     ecx, dword ptr [ebp-18]
0043EE44   .  FF15 40124000 call    dword ptr [<&MSVBVM60.__vbaStrMo>;  MSVBVM60.__vbaStrMove
0043EE4A   .  50            push    eax
0043EE4B   .  68 BCB64100   push    0041B6BC                         ;  thank you for registering our software!


F7跟近后来到这里:

004467B0   $Content$nbsp; 55            push    ebp                              ;  F7跟进关键CALL后来到这里 我们在该行点空格直接修改汇编语言
004467B1   .  8BEC          mov     ebp, esp
004467B3   .  83EC 14       sub     esp, 14
004467B6   .  68 361E4000   push    <jmp.&MSVBVM60.__vbaExceptHandle>;  SE 处理安装
004467BB   .  64:A1 0000000>mov     eax, dword ptr fs:[0]
004467C1   .  50            push    eax
004467C2   .  64:8925 00000>mov     dword ptr fs:[0], esp
004467C9   .  81EC 8C000000 sub     esp, 8C

修改方案1:

004467B0      B0 01         mov     al, 1                            ;  直接向AL赋值为1
004467B2      C3            retn                                        ;  返回时 AL值为1

修改方案2:

004467B0      33C0          xor     eax, eax                         ;  EAX清零
004467B2      40            inc     eax                                  :  EAX加1
004467B3      C3            retn                                          :  返回时 EAX值为1

我们保存下我们修改后.



这里仅是做个标志位暴破思路方法讲解,至于软件Software是否存在暗桩不在本文涉及范围.标志位爆破思路方法是我们常用到种思路方法.在暴破中我们要善于观察是哪里返回了标志位数值而使关键跳转实现,我们就从哪里入手,找到解决问题方案.




0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: