- UID
- 34290
注册时间2007-8-14
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
发表于 2008-6-17 23:46:53
|
显示全部楼层
这个程序运行时会释放一个upgrade.ini配置文件
看了下,好像程序版本,广告之类的都在这里面,
破解思路就是让这个程序不去使用这个文件
我用这个思路破解过 QQ棋牌游戏伴侣3.1.2
【破解过程】1.脱壳
OD载入:
---------断在
0008B201 60 PUSHAD
0008B202 E8 03000000 CALL 0008B20A
0008B207 - E9 EB045D45 JMP 4565B6F7
0008B20C 55 PUSH EBP
0008B20D C3 RETN
0008B20E E8 01000000 CALL 0008B214
0008B213 EB 5D JMP SHORT 0008B272
0008B215 BB EDFFFFFF MOV EBX,-13
----------Esp定律脱
004FC200 55 PUSH EBP ;<-OEP
004FC201 8BEC MOV EBP,ESP
004FC203 B9 04000000 MOV ECX,4
004FC208 6A 00 PUSH 0
004FC20A 6A 00 PUSH 0
004FC20C 49 DEC ECX
004FC20D ^ 75 F9 JNZ SHORT QQ棋牌游.004FC208
2.去自校验
程序脱完壳变成8000K+
比较文件大小的自校验
下GetFileSize断点
----断在这里
7C810B07 > 8BFF MOV EDI,EDI ; ntdll.7C910208
7C810B09 55 PUSH EBP
7C810B0A 8BEC MOV EBP,ESP
7C810B0C 51 PUSH ECX
7C810B0D 51 PUSH ECX
7C810B0E 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
7C810B11 50 PUSH EAX
----返回到程序领空,一路F8下来
00491FBC . E8 DF2EF7FF CALL dumped_.00404EA0
00491FC1 . 75 12 JNZ SHORT dumped_.00491FD5;关键跳
;-------将jnz nop掉--去掉了自校验
00491FC3 . B8 E0930400 MOV EAX,493E0
00491FC8 . E8 3F13F7FF CALL dumped_.0040330C
00491FCD . C1E0 02 SHL EAX,2
00491FD0 . 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
00491FD3 . EB 11 JMP SHORT dumped_.00491FE6
00491FD5 > B8 E0930400 MOV EAX,493E0
3.去升级,去广告
这个程序运行时会释放一个upgrade.ini配置文件
看了下,好像程序版本,广告之类的都在这里面,
破解思路就是让这个程序不去读这个文件
下GetPrivateProfileStringA断点(多次shift+F9)
(看堆栈窗口)
0012EF3C 0046158D /CALL 到 GetPrivateProfileStringA
0012EF40 004F767C |Section = "Sys"
0012EF44 004F766C |Key = "Version"
0012EF48 004F765C |Default = "3.1.2"
0012EF4C 0012EF64 |ReturnBuffer = 0012EF64
0012EF50 00000800 |BufSize = 800 (2048.)
0012EF54 0130C968 \IniFileName = "C:\Documents and Settings\Administrator\Desktop\Upgrade.ini"
----断在这里(返回到程序领空)
00461582 |. E8 CD39FAFF CALL dumped_?00404F54
00461587 50 PUSH EAX ; |Section
00461588 E8 EB5EFAFF CALL <JMP.&kernel32.GetPrivateProfileStr>; \GetPrivateProfileStringA
0046158D |. 8BC8 MOV ECX,EAX
0046158F |. 8D95 00F8FFFF LEA EDX,DWORD PTR SS:[EBP-800]
---将上面这两句NOP掉
00461587 50 PUSH EAX ; |Section
00461588 E8 EB5EFAFF CALL <JMP.&kernel32.GetPrivateProfileStr>; \GetPrivateProfileStringA
------------------------------------------------------------------------
结束了吧
------------------------------------------------------------------------
[ 本帖最后由 一品天下 于 2008-6-17 23:48 编辑 ] |
|