首页
社区
课程
招聘
[旧帖] [原创]某职称英语考试宝典(综合类) 3.1追出注册码。(申请论坛邀请码) 0.00雪花
发表于: 2010-1-10 22:36 1892

[旧帖] [原创]某职称英语考试宝典(综合类) 3.1追出注册码。(申请论坛邀请码) 0.00雪花

2010-1-10 22:36
1892
【文章标题】: 职称英语考试宝典(综合类) 3.1追出注册码。
【软件大小】: 4.58MB
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: 机器码,注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: peid v0.94;Ollyice
【操作平台】: xp
【作者声明】: 只是感兴趣,没有其他目的。不能用于商业行为。
--------------------------------------------------------------------------------
【详细过程】
说明:我是一个小菜鸟,这也是我第一次写破文,请个位给予指点。

    首先用PEiD查壳为ASPack 2.12 -> Alexey Solodovnikov壳,首先脱壳,可以载入OD手动脱壳,也可用脱壳机自动脱壳。我用RL!deASPack 2.x 脱壳机自动脱壳,脱完壳不用修复就可以运行。 接下来运行进行试注册,打开软件,弹出提示注册框。随意输入注册码:
  机器码:151591039478
   假注册码:123456789012
  弹出:注册失败信息:“您输入的注册码错误”。
OD载入脱壳后的文件停在这里
005E91B4 >  55              push    ebp
005E91B5    8BEC            mov     ebp, esp
005E91B7    83C4 F0         add     esp, -10
005E91BA    B8 946C5E00     mov     eax, unpacked.005E6C94
005E91BF    E8 68EFE1FF     call    unpacked.0040812C
005E91C4    A1 DC615F00     mov     eax, dword ptr ds:[5F61DC]
005E91C9    8B00            mov     eax, dword ptr ds:[eax]
005E91CB    E8 5CBAEEFF     call    unpacked.004D4C2C
005E91D0    A1 DC615F00     mov     eax, dword ptr ds:[5F61DC]
005E91D5    8B00            mov     eax, dword ptr ds:[eax]
005E91D7    BA 20925E00     mov     edx, unpacked.005E9220
005E91DC    E8 03B5EEFF     call    unpacked.004D46E4
005E91E1    A1 DC615F00     mov     eax, dword ptr ds:[5F61DC]
005E91E6    8B00            mov     eax, dword ptr ds:[eax]
005E91E8    B2 01           mov     dl, 1

很显然是Borland Delphi 6.0 - 7.0的特征,右键查找字符串,没有发现“注册失败信息:“您输入的注册码错误”。”很显然是加密了。
进入到安装目录发现Data文件夹中比没注册时多了一个temp.db文件,猜想时重启验证,把注册信息写在了安装目录的文件中。用Borland Delphi 6.0 - 7.0程序按钮时间断点,下断点
bp CreateFileA运行程序,停在这里
7C801A28 >/$  8BFF          mov     edi, edi                         ;  <---OEP
7C801A2A  |.  55            push    ebp
7C801A2B  |.  8BEC          mov     ebp, esp
7C801A2D  |.  FF75 08       push    dword ptr ss:[ebp+8]
7C801A30  |.  E8 CFC60000   call    kernel32.7C80E104
7C801A35  |.  85C0          test    eax, eax
7C801A37  |.  74 1E         je      short kernel32.7C801A57
7C801A39  |.  FF75 20       push    dword ptr ss:[ebp+20]            ; /hTemplateFile
7C801A3C  |.  FF75 1C       push    dword ptr ss:[ebp+1C]            ; |Attributes
7C801A3F  |.  FF75 18       push    dword ptr ss:[ebp+18]            ; |Mode
7C801A42  |.  FF75 14       push    dword ptr ss:[ebp+14]            ; |pSecurity
7C801A45  |.  FF75 10       push    dword ptr ss:[ebp+10]            ; |ShareMode
7C801A48  |.  FF75 0C       push    dword ptr ss:[ebp+C]             ; |Access
7C801A4B  |.  FF70 04       push    dword ptr ds:[eax+4]             ; |FileName
7C801A4E  |.  E8 9DED0000   call    kernel32.CreateFileW             ; \CreateFileW
7C801A53  |>  5D            pop     ebp
7C801A54  |.  C2 1C00       retn    1C
一直按F8来到这里
7C93C582    8B3E            mov     edi, dword ptr ds:[esi]
7C93C584    89BD 7CFFFFFF   mov     dword ptr ss:[ebp-84], edi
7C93C58A    3BFE            cmp     edi, esi
7C93C58C  ^ 0F84 72FFFFFF   je      ntdll.7C93C504
7C93C592    8D47 F0         lea     eax, dword ptr ds:[edi-10]
7C93C595    8945 D4         mov     dword ptr ss:[ebp-2C], eax
7C93C598    F640 37 80      test    byte ptr ds:[eax+37], 80
7C93C59C  ^ 0F84 D2CEFFFF   je      ntdll.7C939474
7C93C5A2    8B3F            mov     edi, dword ptr ds:[edi]
7C93C5A4  ^ EB DE           jmp     short ntdll.7C93C584
7C93C5A6    90              nop---------------这里右键,断点,运行到选定位置。
返回到这里7C801A28 >/$  8BFF          mov     edi, edi                         ;  <---OEP
7C801A2A  |.  55            push    ebp
7C801A2B  |.  8BEC          mov     ebp, esp
7C801A2D  |.  FF75 08       push    dword ptr ss:[ebp+8]
7C801A30  |.  E8 CFC60000   call    kernel32.7C80E104
7C801A35  |.  85C0          test    eax, eax
7C801A37  |.  74 1E         je      short kernel32.7C801A57
7C801A39  |.  FF75 20       push    dword ptr ss:[ebp+20]            ; /hTemplateFile
7C801A3C  |.  FF75 1C       push    dword ptr ss:[ebp+1C]            ; |Attributes
7C801A3F  |.  FF75 18       push    dword ptr ss:[ebp+18]            ; |Mode
7C801A42  |.  FF75 14       push    dword ptr ss:[ebp+14]            ; |pSecurity
7C801A45  |.  FF75 10       push    dword ptr ss:[ebp+10]            ; |ShareMode
7C801A48  |.  FF75 0C       push    dword ptr ss:[ebp+C]             ; |Access
7C801A4B  |.  FF70 04       push    dword ptr ds:[eax+4]             ; |FileName
7C801A4E  |.  E8 9DED0000   call    kernel32.CreateFileW             ; \CreateFileW
7C801A53  |>  5D            pop     ebp
7C801A54  |.  C2 1C00       retn    1C
继续一直F8到了这里出现了硬盘序列号
00590E86   .  E8 55FEFFFF   call    unpacked.00590CE0
00590E8B   .  8D43 14       lea     eax, dword ptr ds:[ebx+14]
00590E8E   .  83C0 14       add     eax, 14
00590E91   .  C600 00       mov     byte ptr ds:[eax], 0
00590E94   .  8D85 B8FDFFFF lea     eax, dword ptr ss:[ebp-248]
00590E9A   .  8D53 14       lea     edx, dword ptr ds:[ebx+14]
00590E9D   .  E8 AA53E7FF   call    unpacked.0040624C
00590EA2   .  8B85 B8FDFFFF mov     eax, dword ptr ss:[ebp-248]
00590EA8   .  8D95 BCFDFFFF lea     edx, dword ptr ss:[ebp-244]
00590EAE   .  E8 819CE7FF   call    unpacked.0040AB34
00590EB3   .  8B95 BCFDFFFF mov     edx, dword ptr ss:[ebp-244]
00590EB9   .  8B85 ECFDFFFF mov     eax, dword ptr ss:[ebp-214]
00590EBF   .  E8 DC4CE7FF   call    unpacked.00405BA0
00590EC4   >  33C0          xor     eax, eax

堆栈 ss:[0012C804]=0015981C, (UNICODE "Y2A9S7MC")
edx=0012C804

继续一直F8来到这里,根据硬盘序列号生成机器码。
00590991  |.  8B95 F8FDFFFF mov     edx, dword ptr ss:[ebp-208]
00590997  |.  58            pop     eax
00590998  |.  E8 4752E7FF   call    unpacked.00405BE4
0059099D  |.  8B95 FCFDFFFF mov     edx, dword ptr ss:[ebp-204]
005909A3  |.  8D85 00FEFFFF lea     eax, dword ptr ss:[ebp-200]
005909A9  |.  B9 FF000000   mov     ecx, 0FF
005909AE  |.  E8 0152E7FF   call    unpacked.00405BB4
005909B3  |.  8D85 00FEFFFF lea     eax, dword ptr ss:[ebp-200]
005909B9  |.  8D95 00FFFFFF lea     edx, dword ptr ss:[ebp-100]
005909BF  |.  E8 60F5FFFF   call    unpacked.0058FF24
005909C4  |.  8D95 00FFFFFF lea     edx, dword ptr ss:[ebp-100]
005909CA  |.  8BC3          mov     eax, ebx
005909CC  |.  E8 8F51E7FF   call    unpacked.00405B60
005909D1  |.  33C0          xor     eax, eax
005909D3  |.  5A            pop     edx

堆栈 ss:[0012CC94]=00E84F78, (ASCII "151591039478")
edx=0012CC94
这段读取了机器码,离我们要找的注册码不远了。继续F8下去,注意看堆栈。来到了这里
005908FB  |.  8D95 FCFEFFFF lea     edx, dword ptr ss:[ebp-104]-----注册码出现了。
00590901  |.  8D45 FC       lea     eax, dword ptr ss:[ebp-4]
00590904  |.  E8 5752E7FF   call    unpacked.00405B60
00590909  |.  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
0059090C  |.  8BD3          mov     edx, ebx
0059090E  |.  E8 0DCFFFFF   call    unpacked.0058D820
00590913  |.  33C0          xor     eax, eax
00590915  |.  5A            pop     edx
00590916  |.  59            pop     ecx
00590917  |.  59            pop     ecx
00590918  |.  64:8910       mov     dword ptr fs:[eax], edx

堆栈地址=0012CD98, (ASCII 0C,"785274938403")
edx=00E66670

我是我的机器码:151591039478 这是追得的注册码:785274938403  我们把追到的注册码输进去看看,可以完成注册,重新启动程序,显示为正式版,功能完全。追码成功,这个方法好像比较笨,希望给位高手多多指点。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
占个沙发
2010-1-11 10:21
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
新版的你能追出来吗?
2014-12-23 12:02
0
游客
登录 | 注册 方可回帖
返回
//