hnld 发表于 2008-3-29 22:07:20

爆破黄金岛斗地主记牌器过程

【破文标题】爆破黄金岛斗地主记牌器过程
【破文作者】hnld
【作者邮箱】
【作者主页】
【破解工具】OD
【破解平台】盗版XP sp2
【软件名称】DDZ
【软件大小】
【原版下载】搜一下吧!
【保护方式】
【软件简介】一个外挂
【破解声明】刚学破解,超级菜鸟一个,大侠不要见笑.
------------------------------------------------------------------------
【破解过程】本人才学破解,由于没有老师指点,所以很多事情学起来是颠三倒四的,那个地方走不通了,就临时学一下.然后回个头来再破.但总是破不了.正因为这样所以越破越没信心了.无聊中找到这个外挂.无意中竞然破解了它.狂喜之后,拿出来分享一下.请大家不要见笑,总算是我独立完成的东西.

用PEID0.94查壳,显示:ASPack 2.12 -> Alexey Solodovnikov
用超级巡警之虚拟机自动脱壳机直接脱壳。运行脱过后的程序显示:注册码不正确.再用PEID0.94查壳。显示:Borland Delphi 6.0 - 7.0。
用OD载入:
00459230 >/$55            push    ebp                              ;(initial cpu selection)
00459231|.8BEC          mov   ebp, esp
00459233|.83C4 E4       add   esp, -1C
00459236|.53            push    ebx
00459237|.33C0          xor   eax, eax
00459239|.8945 EC       mov   dword ptr , eax
0045923C|.8945 E8       mov   dword ptr , eax
0045923F|.8945 E4       mov   dword ptr , eax
00459242|.B8 00904500   mov   eax, 00459000                  ;e
00459247|.E8 4CD1FAFF   call    00406398
0045924C|.33C0          xor   eax, eax
0045924E|.55            push    ebp
0045924F|.68 30934500   push    00459330
00459254|.64:FF30       push    dword ptr fs:
00459257|.64:8920       mov   dword ptr fs:, esp
0045925A|.E8 D597FAFF   call    00402A34
0045925F|.48            dec   eax
00459260|.7E 50         jle   short 004592B2
00459262|.6A 01         push    1
00459264|.6A 00         push    0

用OD插件查看ASCⅡ。
上下查看发现有2处注册码不正确。一处注册成功。双击注册成功处。往上查看来到如下地址:

00456EB0   .55            push    ebp
00456EB1   .68 4F704500   push    0045704F
00456EB6   .64:FF30       push    dword ptr fs:
00456EB9   .64:8920       mov   dword ptr fs:, esp
00456EBC   .8D55 F0       lea   edx, dword ptr
00456EBF   .8B86 FC020000 mov   eax, dword ptr
00456EC5   .E8 12D2FDFF   call    004340DC
00456ECA   .8B45 F0       mov   eax, dword ptr
00456ECD   .E8 06D9FAFF   call    004047D8
00456ED2   .85C0          test    eax, eax
00456ED4   .75 25         jnz   short 00456EFB
00456ED6   .6A 00         push    0
00456ED8   .B9 DC704500   mov   ecx, 004570DC                  ;错误
00456EDD   .BA E4704500   mov   edx, 004570E4                  ;注册码不能为空!
00456EE2   .A1 DCB14500   mov   eax, dword ptr
00456EE7   .8B00          mov   eax, dword ptr
00456EE9   .E8 22CDFFFF   call    00453C10
00456EEE   .33C0          xor   eax, eax
00456EF0   .5A            pop   edx
00456EF1   .59            pop   ecx
00456EF2   .59            pop   ecx
00456EF3   .64:8910       mov   dword ptr fs:, edx
00456EF6   .E9 A0010000   jmp   0045709B
00456EFB   >8D55 E8       lea   edx, dword ptr
00456EFE   .8B86 FC020000 mov   eax, dword ptr
00456F04   .E8 D3D1FDFF   call    004340DC
00456F09   .8B45 E8       mov   eax, dword ptr
00456F0C   .8D4D EC       lea   ecx, dword ptr
00456F0F   .BA 00714500   mov   edx, 00457100                  ;xingsoft
00456F14   .E8 03E4FFFF   call    0045531C
00456F19   .8B45 EC       mov   eax, dword ptr
00456F1C   .BA 14714500   mov   edx, 00457114                  ;hjdddz20080306
00456F21   .E8 FED9FAFF   call    00404924
00456F26   .EB 48         je   short 00456F70
00456F28   .6A 00         push    0
00456F2A   .B9 DC704500   mov   ecx, 004570DC                  ;错误
00456F2F   .BA 24714500   mov   edx, 00457124                  ;注册码不正确!
00456F34   .A1 DCB14500   mov   eax, dword ptr
00456F39   .8B00          mov   eax, dword ptr
00456F3B   .E8 D0CCFFFF   call    00453C10
00456F40   .6A 01         push    1                              ; /IsShown = 1
00456F42   .6A 00         push    0                              ; |DefDir = NULL
00456F44   .6A 00         push    0                              ; |Parameters = NULL
00456F46   .68 34714500   push    00457134                         ; |
00456F4B   .68 58714500   push    00457158                         ; |open
00456F50   .6A 00         push    0                              ; |hWnd = NULL
00456F52   .E8 91FBFCFF   call    <jmp.&shell32.ShellExecuteA>   ; \ShellExecuteA
00456F57   .A1 DCB14500   mov   eax, dword ptr
00456F5C   .8B00          mov   eax, dword ptr
00456F5E   .E8 09CCFFFF   call    00453B6C
00456F63   .33C0          xor   eax, eax
00456F65   .5A            pop   edx
00456F66   .59            pop   ecx
00456F67   .59            pop   ecx
00456F68   .64:8910       mov   dword ptr fs:, edx
00456F6B   .E9 2B010000   jmp   0045709B
00456F70   >6A 00         push    0
00456F72   .B9 60714500   mov   ecx, 00457160                  ;提示
00456F77   .BA 68714500   mov   edx, 00457168                  ;注册成功!


通过往上翻看知道注册成功是由
00456F26   .EB 48         je   short 00456F70
跳转得来,把je改成jmp.保存修改后的程序。运行。随便输入一个数字。提示注册成功。

[ 本帖最后由 hnld 于 2008-3-29 22:08 编辑 ]

游侠浪子 发表于 2008-3-31 14:08:43

/:good /:good 谢谢

daan 发表于 2008-3-31 14:28:18

学习了~/:014

scgycxzzc 发表于 2008-3-31 14:47:03

:victory: :handshake

jiangshuo318 发表于 2008-4-1 20:10:10

爆破的软件。。呵呵。。我也是初入这行哦

magic659117852 发表于 2008-4-1 20:16:42

/:001 继续努力一。。。。。。。

ke88 发表于 2008-4-1 22:24:48

学习了/:good /:good

pdch2 发表于 2008-4-2 08:24:33

爆破就行了呀,有没有其他的限制呢/:018

ccyy77 发表于 2008-4-4 11:29:03

爆破的软件。。呵呵。。我也是初入这行哦

zhuolin 发表于 2008-11-2 13:40:53

页: [1] 2
查看完整版本: 爆破黄金岛斗地主记牌器过程