在看雪也有几个月的时间了,断断续续的也学习了一点知识,下面讲述下破解某个网络电视的过程
第一步先脱壳:
用peid v0.94侦查目标程序,查的壳为:ASPack 2.12 -> Alexey Solodovnikov
ASP的壳,用OD载入
0059F001 > 60 pushad
0059F002 E8 03000000 call FastTV.0059F00A
//这里用ESP定律
0059F007 - E9 EB045D45 jmp 45B6F4F7
0059F00C 55 push ebp
0059F00D C3 retn
0059F00E E8 01000000 call FastTV.0059F014
0059F013 EB 5D jmp short FastTV.0059F072
0059F015 BB EDFFFFFF mov ebx,-13
0059F01A 03DD add ebx,ebp
0059F01C 81EB 00F01900 sub ebx,19F000
0059F022 83BD 22040000 0>cmp dword ptr ss:[ebp+422],0
0059F029 899D 22040000 mov dword ptr ss:[ebp+422],ebx
0059F02F 0F85 65030000 jnz FastTV.0059F39A
0059F035 8D85 2E040000 lea eax,dword ptr ss:[ebp+42E]
0059F03B 50 push eax
0059F3B0 /75 08 jnz short FastTV.0059F3BA
//F8单步直接到0059F3BA ,再点两次F8直接跳到OPE
0059F3B2 |B8 01000000 mov eax,1
0059F3B7 |C2 0C00 retn 0C
0059F3BA \68 40955100 push FastTV.00519540
0059F3BF C3 retn
到达OPE后脱壳,脱壳后可以正常运行,看来无需修复!
第二步破解:
首先用OD载入这个脱壳的程序dump.exe
然后用字符串进行查找
钻石
双点进入
00512D11 B8 EC2F5100 mov eax,dump.00512FEC ; [钻石版]
00512D16 E8 95A8F6FF call dump.0047D5B0
00512D1B 8D85 70FFFFFF lea eax,dword ptr ss:[ebp-90]
00512D21 50 push eax
00512D22 B9 06000000 mov ecx,6
00512D27 BA 04000000 mov edx,4
往上拉,可以看到字符串有VIP版 标准版字样
00512A51 /74 62 je short dump.00512AB5
//检查是否注册,NOP掉
00512A53 |83E8 02 sub eax,2
00512A56 |74 17 je short dump.00512A6F
//检查是什么版本,一样NOP掉
00512A58 |83E8 02 sub eax,2
00512A5B |0F84 18010000 je dump.00512B79
//跳到标准版,同样NOP掉
00512A61 |83E8 02 sub eax,2
00512A64 |0F84 D3010000 je dump.00512C3D
//跳到VIP版,同样NOP掉
00512A6A |E9 A5030000 jmp dump.00512E14
//检测到非注册版运行 NOP掉
00512A6F |68 0C425200 push dump.0052420C
00512A74 |8D55 D4 lea edx,dword ptr ss:[ebp-2C]
00512A77 |8B45 FC mov eax,dword ptr ss:[ebp-4]
00512A7A |E8 1DB9F6FF call dump.0047E39C
往下来,一次还会发现3个jmp,它们都会跳到
00512D1B 8D85 70FFFFFF lea eax,dword ptr ss:[ebp-90]
剩下的jmp分别为
00512AB0 /E9 66020000 jmp dump.00512D1B
//检测标准版运行 NOP掉
00512B74 /E9 A2010000 jmp dump.00512D1B
//检测VIP版运行 NOP掉
00512C38 /E9 DE000000 jmp dump.00512D1B
//检测钻石版,不修改大致是这样分析的~然后往下拉
00512DB3 /75 5F jnz short dump.00512E14
//将jnz修改完jz即可完成破解
00512DB5 |C683 6C050000 0>mov byte ptr ds:[ebx+56C],1
00512DBC |833D 14425200 0>cmp dword ptr ds:[524214],1
00512DC3 |74 07 je short dump.00512DCC
00512DC5 |C683 6D050000 0>mov byte ptr ds:[ebx+56D],1
00512DCC |B8 10425200 mov eax,dump.00524210
00512DD1 |8B55 F8 mov edx,dword ptr ss:[ebp-8]
00512DD4 |E8 7B1BEFFF call dump.00404954
00512DD9 |8D8D 5CFFFFFF lea ecx,dword ptr ss:[ebp-A4]
00512DDF |BA B42F5100 mov edx,dump.00512FB4 ; nmmd-sgpj
修改完毕后进行保存!然后运行成功,显示的是VIP版,虽然破解完成了,但不是钻石版,回头分析了下程序,发现没找到钻石版的跳!望高手赐教
标准版和VIP版均可实现
恳请赐个邀请码,谢谢
附送上破解后的程序
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)