- 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 编辑 ] |   
 
 
 
 |