EMILT 发表于 2009-4-23 18:17:51

新手第一次写破文,爆破超级电视,诸位大侠关照

【文章标题】: 爆破超级电视
【文章作者】: EMILT
【作者邮箱】: [email protected]
【作者QQ号】: 391728766
【软件名称】: 超级电视
【软件大小】: 1.71 MB
【下载地址】: http://shareware.skycn.com/soft/5738.htm
【加壳方式】: 无壳
【保护方式】: 注册码
【编写语言】: VB
【使用工具】: OD PEID
【操作平台】: XP
【软件介绍】: 软件界面简洁,所有节目免费试看
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
安装软件后, 再PEID查壳,无壳,哈哈。
运行软件看看,提示未注册版,你还可以试用45次,好OD载入。停在这里,
0040165C > $68 B84F4000   push    supernet.00404FB8               
00401661   .E8 EEFFFFFF   call    <jmp.&MSVBVM50.#100>    明显是VB程序
00401666   .0000          add   , al
00401668   .0000          add   , al
0040166A   .0000          add   , al
0040166C   .3000          xor   , al
0040166E   .0000          add   , al
00401670   .3800          cmp   , al
00401672   .0000          add   , al
00401674   >0000          add   , al
00401676   .0000          add   , al
00401678   .5D            pop   ebp
00401679   .98            cwde
0040167A   .AD            lodsd

运行软件,点注册,输入假码,提示注册码不对,好有提示,我下这个断点rtcmsgbox,再点注册,就停在这里,

740F405A >55            push    ebp
740F405B    8B4424 14       mov   eax,
740F405F    8BEC            mov   ebp, esp
740F4061    83EC 48         sub   esp, 48
740F4064    66:8338 0A      cmp   word ptr , 0A
740F4068    53            push    ebx
740F4069    56            push    esi
740F406A    57            push    edi
740F406B    0F85 06010000   jnz   MSVBVM50.740F4177
740F4071    8178 08 0400028>cmp   dword ptr , 80020004

我们看堆栈处

0013F3BC   0047E3B6返回到 supernet.0047E3B6 来自 MSVBVM50.rtcMsgBox

跟随进去,来到这里

0047E3B0   .FF15 28224800 call    [<&MSVBVM50.#595>]               ;MSVBVM50.rtcMsgBox
0047E3B6   .8D4D 84       lea   ecx,

明显上面是出错的提示消息框了,往上找,分析代码看看

0047E325   . /E9 E6030000   jmp   supernet.0047E710         // 这个跳过提示
0047E32A   > |53            push    ebx                        //这个是上面一个跳转来来的,关键跳,再往上找
0047E32B   . |FF97 B4020000 call   
0047E331   . |85C0          test    eax, eax
0047E333   . |7D 12         jge   short supernet.0047E347
0047E335   . |68 B4020000   push    2B4
0047E33A   . |68 EC8E4000   push    supernet.00408EEC
0047E33F   . |53            push    ebx
0047E340   . |50            push    eax
0047E341   . |FF15 08224800 call    [<&MSVBVM50.__vbaHresultCheckObj>;MSVBVM50.__vbaHresultCheckObj
0047E347   > |8B3D 1C234800 mov   edi, [<&MSVBVM50.__vbaVarDup>]   ;MSVBVM50.__vbaVarDup
0047E34D   . |B9 04000280   mov   ecx, 80020004
0047E352   . |894D 8C       mov   , ecx
0047E355   . |B8 0A000000   mov   eax, 0A
0047E35A   . |894D 9C       mov   , ecx
0047E35D   . |BE 08000000   mov   esi, 8
0047E362   . |8D95 64FFFFFF lea   edx,
0047E368   . |8D4D A4       lea   ecx,
0047E36B   . |8945 84       mov   , eax
0047E36E   . |8945 94       mov   , eax
0047E371   . |C785 6CFFFFFF>mov   dword ptr , supernet.004>
0047E37B   . |89B5 64FFFFFF mov   , esi
0047E381   . |FFD7          call    edi                              ;<&MSVBVM50.__vbaVarDup>
0047E383   . |8D95 74FFFFFF lea   edx,
0047E389   . |8D4D B4       lea   ecx,
0047E38C   . |C785 7CFFFFFF>mov   dword ptr , supernet.004>
0047E396   . |89B5 74FFFFFF mov   , esi
0047E39C   . |FFD7          call    edi
0047E39E   . |8D45 84       lea   eax,
0047E3A1   . |8D4D 94       lea   ecx,
0047E3A4   . |50            push    eax
0047E3A5   . |8D55 A4       lea   edx,
0047E3A8   . |51            push    ecx
0047E3A9   . |52            push    edx
0047E3AA   . |8D45 B4       lea   eax,
0047E3AD   . |6A 40         push    40
0047E3AF   . |50            push    eax
0047E3B0   . |FF15 28224800 call    [<&MSVBVM50.#595>]               ;MSVBVM50.rtcMsgBox         这个就是出错提示框


0047E32A   > |53            push    ebx                        //这个是上面一个跳转来来的,关键跳,再往上找


0047DF87   .FF15 58234800 call    [<&MSVBVM50.__vbaFreeObj>]       ;MSVBVM50.__vbaFreeObj
0047DF8D      F7DE          neg   esi
0047DF8F   .66:85F6       test    si, si
0047DF92   .0F84 92030000 je      supernet.0047E32A         //这个跳就是跳向上面的,也就是跳向出错,我们NOP掉
0047DF98   .A1 10004800   mov   eax,
0047DF9D   .85C0          test    eax, eax


好了,保存,试试后。运行后再注册,无提示,先不管,再来一次,关了,再打开,哈哈,成功,没有“未注册版,你还可以试用45次”

但我发现这个软件有弹出网页,不爽,去掉他。看到网页,是http://www.wz123.com/?lxy

好我们重新载入破解的文件,找字符串http://www.wz123.com/?lxy,找到了,双击进入

00429920   .68 20904000   push    supernet.00409020                ;http://www.wz123.com/?lxy
00429925   .51            push    ecx
00429926   .FFD3          call    ebx
00429928   .50            push    eax
00429929   .8D55 AC       lea   edx,
0042992C   .68 10904000   push    supernet.00409010                ;open
00429931   .52            push    edx
00429932   .FFD3          call    ebx
00429934   .50            push    eax
00429935   .8B85 14FFFFFF mov   eax,
0042993B   .50            push    eax
0042993C      E8 FBEDFDFF   call    supernet.0040873C
00429941   .FF15 04224800 call    [<&MSVBVM50.__vbaSetSystemError>>;MSVBVM50.__vbaSetSystemError

我们在00429920   .68 20904000   push    supernet.00409020   ;http://www.wz123.com/?lxy 下断点,

停下来了,看来就是这里了 00429920   .68 20904000   push    supernet.00409020    ;http://www.wz123.com/?lxy

F8单步,到这个0042993C      E8 FBEDFDFF   call    supernet.0040873C时弹出了网页,我们直接NOP掉,好保存。

再运行,OK,爆破成功。
   

--------------------------------------------------------------------------------
【版权声明】: 本文原创于EMILT, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年04月23日 18:11:36

pollywee 发表于 2009-4-23 20:31:32

写的好详细啊谢谢啦

shenaset 发表于 2009-4-24 16:17:12

不错,顶一下

科维 发表于 2009-4-24 19:06:33

一看就明白啦

老万 发表于 2009-4-24 21:12:09

写的好,认真学习了。

火凤凰 发表于 2009-4-24 22:20:10

不错,期待下一篇算法出现

孤漂江湖狼 发表于 2009-4-24 22:49:56

不错,支持LZ了

cao2109 发表于 2009-4-25 07:21:37

原帖由 孤漂江湖狼 于 2009-4-24 22:49 发表 https://www.chinapyg.com/images/common/back.gif
不错,支持LZ了
看见你了,进来顶顶LZ。

冬天的雷雨 发表于 2009-4-25 08:37:30

楼主辛苦了/:014

yzxiaowu 发表于 2009-4-25 09:32:49

学习了!很好的教程,对我而言是个号的例题啊!谢谢了!
页: [1] 2
查看完整版本: 新手第一次写破文,爆破超级电视,诸位大侠关照