好友
阅读权限20
听众
最后登录1970-1-1
|
流星网络电视追码破解教程 通过笔记在破解时候发现的追到注册明码,很适合像我这样的新手探讨研究的,原版的笔记如下:
【破解过程】PEiD查壳为ASPack 2.12 -> Alexey Solodovnikov,OD载入......
0059F001 > 60 pushad //OD载入口
0059F002 E8 03000000 call MeteorNe.0059F00A //ESP定律
0059F007 - E9 EB045D45 jmp 45B6F4F7
0059F00C 55 push ebp
----------------------------------------------------------
0059F3B0 /75 08 jnz short MeteorNe.0059F3BA //ESP定律到这
0059F3B2 |B8 01000000 mov eax, 1
0059F3B7 |C2 0C00 retn 0C
0059F3BA \68 90F05100 push MeteorNe.0051F090
0059F3BF C3 retn //跳向OEP
----------------------------------------------------------
0051F090 55 push ebp //OEP,可见是Delphi的!
0051F091 8BEC mov ebp, esp //简单的ASPack壳,直接OD插件脱之不用修复!
0051F093 B9 06000000 mov ecx, 6
-------------------------------------------------------------
PEiD查为Borland Delphi 6.0 - 7.0,运行成功开始爆破。
先独立运行一次,随便输入注册码(大概20多位吧!),确定后软件重启,可见为重启验证,OD载入。
PS:可以不运行,只要修改下面星号处的跳。
查找ACSII码字符串,从下往上找到[钻石版]字符串进入
00517B85 |. BA B47D5100 mov edx, dumped.00517DB4 ; nmmd-sgpj
00517B8A |. B8 EC7D5100 mov eax, dumped.00517DEC ; [钻石版] //来到这,往上看
00517B8F |. E8 F405F6FF call dumped.00478188
-------------------------------------------------------------
00517AA2 |. BA B47D5100 mov edx, dumped.00517DB4 ; nmmd-sgpj
00517AA7 |. B8 DC7D5100 mov eax, dumped.00517DDC ; [vip版] //VIP版提示,再往上
00517AAC |. E8 D706F6FF call dumped.00478188
-------------------------------------------------------------
005179DE |. BA B47D5100 mov edx, dumped.00517DB4 ; nmmd-sgpj
005179E3 |. B8 C87D5100 mov eax, dumped.00517DC8 ; [标准版] //标准版提示,再往上
005179E8 |. E8 9B07F6FF call dumped.00478188
-------------------------------------------------------------
005178C2 |. E8 D9D2EEFF call dumped.00404BA0 //来到这,多个跳,可以吧,这里下断,F9运行
005178C7 |. 83E8 0A sub eax, 0A ; Switch (cases A..10)
005178CA |. 74 62 je short dumped.0051792E //断下了,F8往下跟
005178CC |. 83E8 02 sub eax, 2
005178CF |. 74 17 je short dumped.005178E8
005178D1 |. 83E8 02 sub eax, 2
005178D4 |. 0F84 18010000 je dumped.005179F2
005178DA |. 83E8 02 sub eax, 2
005178DD |. 0F84 D3010000 je dumped.00517AB6 ★//这里跳转要实现。一直F8往下跟。
005178E3 |. E9 A5030000 jmp dumped.00517C8D
005178E8 |> 68 CC815200 push dumped.005281CC ; Case C of switch 005178C7
--------------------------------------------------------------
00517ABF |. B9 06000000 mov ecx, 6 //这些地方堆栈会出现类似注册码
00517AC4 |. BA 08000000 mov edx, 8 //我试了下是标准版或VIP的
00517AC9 |. 8B45 FC mov eax, [local.1] //但没找到钻石的
00517ACC |. E8 2FD3EEFF call dumped.00404E00 //往下走
00517AD1 |. FF75 8C push [local.29]
--------------------------------------------------------------
00517B46 |. E8 15D1EEFF call dumped.00404C60 //到这里也是出现类似注册码的
00517B4B |. 8B45 90 mov eax, [local.28] //往下走
00517B4E |. 8D55 94 lea edx, [local.27]
--------------------------------------------------------------
00517B78 |. C705 D4815200>mov dword ptr ds:[5281D4], 3 //走过钻石版了
00517B82 |. 8D4D F8 lea ecx, [local.2] //继续~~~~~~
00517B85 |. BA B47D5100 mov edx, dumped.00517DB4 ; nmmd-sgpj
00517B8A |. B8 EC7D5100 mov eax, dumped.00517DEC ; [钻石版]
00517B8F |. E8 F405F6FF call dumped.00478188
--------------------------------------------------------------
00517BD1 |. E8 B205F6FF call dumped.00478188 //同样出现注册码物体
00517BD6 |. 8B85 78FFFFFF mov eax, [local.34] //往下走
00517BDC |. 50 push eax
00517BDD |. 8D85 64FFFFFF lea eax, [local.39]
--------------------------------------------------------------
00517C26 |. 58 pop eax
00517C27 |. E8 C0D0EEFF call dumped.00404CEC //到这里
00517C2C |. 75 5F jnz short dumped.00517C8D //若继续往下走就知道这是关键的跳
00517C2E |. C683 70050000>mov byte ptr ds:[ebx+570], 1 //爆破顾名思义,NOP掉这个jnz跳
00517C35 |. 833D D4815200>cmp dword ptr ds:[5281D4], 1 //继续往下走
00517C3C |. 74 07 je short dumped.00517C45
00517C3E |. C683 71050000>mov byte ptr ds:[ebx+571], 1
00517C45 |> B8 D0815200 mov eax, dumped.005281D0
00517C4A |. 8B55 F8 mov edx, [local.2]
00517C4D |. E8 E2CCEEFF call dumped.00404934
00517C52 |. 8D8D 5CFFFFFF lea ecx, [local.41]
00517C58 |. BA B47D5100 mov edx, dumped.00517DB4 ; nmmd-sgpj
00517C5D |. A1 D0815200 mov eax, dword ptr ds:[5281D0]
00517C62 |. E8 0907F6FF call dumped.00478370
00517C67 |. 8B8D 5CFFFFFF mov ecx, [local.41]
00517C6D |. 8D85 60FFFFFF lea eax, [local.40]
00517C73 |. BA 147E5100 mov edx, dumped.00517E14 ; 流星网络电视
00517C78 |. E8 6FCFEEFF call dumped.00404BEC
00517C7D |. 8B95 60FFFFFF mov edx, [local.40]
00517C83 |. A1 B4815200 mov eax, dword ptr ds:[5281B4]
00517C88 |. E8 8BE1F3FF call dumped.00455E18
00517C8D |> 33C0 xor eax, eax ; Default case of switch 005178C7
00517C8F |. 5A pop edx
00517C90 |. 59 pop ecx
00517C91 |. 59 pop ecx
00517C92 |. 64:8910 mov dword ptr fs:[eax], edx
00517C95 |. 68 B27C5100 push dumped.00517CB2
00517C9A |> 8D85 5CFFFFFF lea eax, [local.41]
00517CA0 |. BA 29000000 mov edx, 29
00517CA5 |. E8 5ACCEEFF call dumped.00404904
00517CAA \. C3 retn
00517CAB .^ E9 D0C4EEFF jmp dumped.00404180
00517CB0 .^ EB E8 jmp short dumped.00517C9A
00517CB2 . 5E pop esi
00517CB3 . 5B pop ebx
00517CB4 . 8BE5 mov esp, ebp
00517CB6 . 5D pop ebp
00517CB7 . C3 retn //返回
--------------------------------------------------------------
0051904E . E8 EDC0EEFF call dumped.00405140
00519053 . 8B55 DC mov edx, dword ptr ss:[ebp-24]
00519056 . 8BC3 mov eax, ebx
00519058 . E8 3F14FAFF call dumped.004BA49C //走过此CALL,发现缓冲比较大
0051905D . 33C0 xor eax, eax //网络验证段,NOP掉CALL
0051905F . 55 push ebp
--------------------------------------------------------------
0051907C . E8 6BBBEEFF call dumped.00404BEC
00519081 . 8B45 D4 mov eax, dword ptr ss:[ebp-2C]
00519084 . 8D55 D8 lea edx, dword ptr ss:[ebp-28]
00519087 . E8 9C37FCFF call dumped.004DC828 //走过此CALL,缓冲更大
0051908C . 8B45 D8 mov eax, dword ptr ss:[ebp-28] //NOP掉CALL,保存所有修改
这里我给大家做成录象教程,我是通过上面的在破解的时候追到的明码
http://www.rayfile.com/files/51d ... -8da5-0014221b798a/
我刚才又看了一下,其实不用那么复杂,我们只要把 2个关键的网络验证CALL给NOP就可以了,在上面我们可以直接追到每个版本的注册码~~呵呵,不段学习,加强自我,下面是我追明码的录象
http://www.rayfile.com/files/fa9 ... -979b-0014221b798a/
喜欢大家都能和我一样一起学习,共同提高
[ 本帖最后由 liuxingyuu 于 2008-11-26 03:00 编辑 ]
[ 本帖最后由 liuxingyuu 于 2008-11-26 09:16 编辑 ] |
|