脱文
【破文标题】Just Cause +6 Trainer脱壳分析【破文作者】km159
【作者邮箱】[email protected]
【作者主页】http://www.ilymyx.com.cn
【破解工具】OD,PEID,ImportREC
【破解平台】winXP SP2
【软件名称】Just Cause +6 Trainer
【软件大小】465KB
【原版下载】https://www.chinapyg.com/viewthread.php?tid=48464&pid=390508&page=1&extra=#pid390508
【保护方式】4层壳
【软件简介】应该是啥游戏的辅助吧?
【破解声明】我是一只小小小小鸟~不足之处请各位指教!
------------------------------------------------------------------------
【破解过程】废话不多说了,OD载入
004012C7 >55 PUSH EBP 停在这里
004012C8 8BEC MOV EBP,ESP
004012CA 6A FF PUSH -1
004012CC 68 00000000 PUSH 0
004012D1 68 00000000 PUSH 0
004012D6 64:A1 00000000MOV EAX,DWORD PTR FS:
004012DC 50 PUSH EAX
004012DD 64:8925 0000000>MOV DWORD PTR FS:,ESP
004012E4 68 8E058574 PUSH 7485058E
004012E9 68 95CF44B2 PUSH B244CF95
004012EE E8 7DFFFFFF CALL Just_Cau.00401270
004012F3 51 PUSH ECX
004012F4 E8 30FFFFFF CALL Just_Cau.00401229
004012F9 E8 75FFFFFF CALL Just_Cau.00401273
004012FE E8 58FFFFFF CALL Just_Cau.0040125B
00401303 58 POP EAX
00401304 FF37 PUSH DWORD PTR DS:
00401306 870424 XCHG DWORD PTR SS:,EAX
00401309 56 PUSH ESI
0040130A 57 PUSH EDI
0040130B 68 F0DB2FFA PUSH FA2FDBF0
00401310 E8 25FFFFFF CALL Just_Cau.0040123A
00401315 53 PUSH EBX
00401316 E8 1AFFFFFF CALL Just_Cau.00401235
0040131B 55 PUSH EBP
0040131C 56 PUSH ESI
0040131D 68 8FBEEE7C PUSH 7CEEBE8F
00401322 E8 43FFFFFF CALL Just_Cau.0040126A
00401327 E8 4DFFFFFF CALL Just_Cau.00401279
0040132C 68 03134000 PUSH Just_Cau.00401303
00401331 39CF CMP EDI,ECX
00401333 73 01 JNB SHORT Just_Cau.00401336
00401335 C3 RETN
00401336 5D POP EBP
00401337 E8 4CFFFFFF CALL Just_Cau.00401288 这里F4,F7
---------------------------------------------
00401288 81C4 04000000 ADD ESP,4 到这里
0040128E 64:8F05 0000000>POP DWORD PTR FS:
00401295 55 PUSH EBP
00401296 68 95CF44B2 PUSH B244CF95
0040129B 58 POP EAX
0040129C 5F POP EDI
0040129D 68 8435EE74 PUSH 74EE3584
004012A2 873C24 XCHG DWORD PTR SS:,EDI
004012A5 BB 8E058574 MOV EBX,7485058E
004012AA 68 65E02FB2 PUSH B22FE065
004012AF 59 POP ECX
004012B0 870C24 XCHG DWORD PTR SS:,ECX
004012B3 310424 XOR DWORD PTR SS:,EAX
004012B6 870C24 XCHG DWORD PTR SS:,ECX
004012B9 31DF XOR EDI,EBX
004012BB 873C24 XCHG DWORD PTR SS:,EDI
004012BE 8F01 POP DWORD PTR DS:
004012C0 57 PUSH EDI
004012C1 FF31 PUSH DWORD PTR DS:
004012C3 C3 RETN 这里F4,F8
-----------------------------------------------
F8以后分析下代码
----------------------------------
006B300A .8B15 00306B00 MOV EDX,DWORD PTR DS: ;kernel32.GetModuleHandleA
006B3010 .FF32 PUSH DWORD PTR DS:
006B3012 .8F05 00306B00 POP DWORD PTR DS: ;kernel32.GetModuleHandleA
006B3018 .EB 06 JMP SHORT Just_Cau.006B3020
006B301A .8F05 00306B00 POP DWORD PTR DS: ;kernel32.GetModuleHandleA
006B3020 >B8 04106B00 MOV EAX,Just_Cau.006B1004
006B3025 >8338 00 CMP DWORD PTR DS:,0
006B3028 .74 20 JE SHORT Just_Cau.006B304A
006B302A .50 PUSH EAX
006B302B .FF70 04 PUSH DWORD PTR DS:
006B302E .FF30 PUSH DWORD PTR DS:
006B3030 .50 PUSH EAX
006B3031 .830424 08 ADD DWORD PTR SS:,8
006B3035 .E8 E6090000 CALL Just_Cau.006B3A20
006B303A .83C4 0C ADD ESP,0C
006B303D .58 POP EAX
006B303E .8B10 MOV EDX,DWORD PTR DS:
006B3040 .C1E2 02 SHL EDX,2
006B3043 .01D0 ADD EAX,EDX
006B3045 .83C0 08 ADD EAX,8
006B3048 .^ EB DB JMP SHORT Just_Cau.006B3025
006B304A >E9 89120000 JMP Just_Cau.006B42D8 这里F4,F8
006B304F .56 69 72 74 7>ASCII "VirtualProtect",0
006B305E .D01A807C DD kernel32.VirtualProtect
---------------------------------------
006B42D8 $60 PUSHAD 到这里
006B42D9 .E8 4F000000 CALL Just_Cau.006B432D F7
006B42DE .40 INC EAX
006B42DF .A9 6607DF2C TEST EAX,2CDF0766
006B42E4 .2AAD 7DC9B369 SUB CH,BYTE PTR SS:
----------------------------
006B432D $E8 BEF6FFFF CALL Just_Cau.006B39F0 到这里F7
006B4332 .CE INTO
006B4333 .98 CWDE
006B4334 .0100 ADD DWORD PTR DS:,EAX
006B4336 .C9 LEAVE
006B4337 .DA00 FIADD DWORD PTR DS:
006B4339 .003E ADD BYTE PTR DS:,BH
------------------------------------
006B39F0/$8B4424 04 MOV EAX,DWORD PTR SS: ;Just_Cau.006B42DE 到这里
006B39F4|.50 PUSH EAX ; /Arg2
006B39F5|.8B4424 04 MOV EAX,DWORD PTR SS: ; |
006B39F9|.50 PUSH EAX ; |Arg1
006B39FA|.E8 B1FDFFFF CALL Just_Cau.006B37B0 ; \Just_Cau.006B37B0
006B39FF|.58 POP EAX
006B3A00|.E8 DB0B0000 CALL Just_Cau.006B45E0
006B3A05|.870424 XCHG DWORD PTR SS:,EAX
006B3A08|.58 POP EAX
006B3A09|.894424 24 MOV DWORD PTR SS:,EAX
006B3A0D|.61 POPAD
006B3A0E|.58 POP EAX
006B3A0F|.58 POP EAX
006B3A10|.FFD0 CALL EAX 这里F7
006B3A12|.E8 09EC0000 CALL Just_Cau.006C2620
006B3A17|.90 NOP
006B3A18|.90 NOP
------------------------------
00401C34 B8 240F6B00 MOV EAX,Just_Cau.006B0F24 到这里
00401C39 50 PUSH EAX
00401C3A 64:FF35 0000000>PUSH DWORD PTR FS: 这里ESP定律,3次F9
00401C41 64:8925 0000000>MOV DWORD PTR FS:,ESP
00401C48 33C0 XOR EAX,EAX
00401C4A 8908 MOV DWORD PTR DS:,ECX
00401C4C 50 PUSH EAX
00401C4D 45 INC EBP
00401C4E 43 INC EBX
00401C4F 6F OUTS DX,DWORD PTR ES: ; I/O 命令
00401C50 6D INS DWORD PTR ES:,DX ; I/O 命令
00401C51 70 61 JO SHORT Just_Cau.00401CB4
00401C53 637432 00 ARPL WORD PTR DS:,SI
00401C57 3070 18 XOR BYTE PTR DS:,DH
00401C5A 97 XCHG EAX,EDI
00401C5B 6E OUTS DX,BYTE PTR ES: ; I/O 命令
00401C5C BB 1D513156 MOV EBX,5631511D
00401C61 7B A6 JPO SHORT Just_Cau.00401C09
00401C63 6391 A63F1241 ARPL WORD PTR DS:,DX
00401C69^ 7E DB JLE SHORT Just_Cau.00401C46
00401C6B 7E 53 JLE SHORT Just_Cau.00401CC0
00401C6D 60 PUSHAD
00401C6E 64:7E 80 JLE SHORT Just_Cau.00401BF1 ; 多余前缀
-------------------------------------------------------
006B0F57 53 PUSH EBX 到这里,一直F8下去
006B0F58 51 PUSH ECX
006B0F59 57 PUSH EDI
006B0F5A 56 PUSH ESI
006B0F5B 52 PUSH EDX
006B0F5C 8D98 57120010 LEA EBX,DWORD PTR DS:
006B0F62 8B53 18 MOV EDX,DWORD PTR DS:
006B0F65 52 PUSH EDX
006B0F66 8BE8 MOV EBP,EAX
006B0F68 6A 40 PUSH 40
006B0F6A 68 00100000 PUSH 1000
006B0F6F FF73 04 PUSH DWORD PTR DS:
006B0F72 6A 00 PUSH 0
006B0F74 8B4B 10 MOV ECX,DWORD PTR DS:
006B0F77 03CA ADD ECX,EDX
006B0F79 8B01 MOV EAX,DWORD PTR DS:
006B0F7B FFD0 CALL EAX
006B0F7D 5A POP EDX
006B0F7E 8BF8 MOV EDI,EAX
006B0F80 50 PUSH EAX
006B0F81 52 PUSH EDX
006B0F82 8B33 MOV ESI,DWORD PTR DS:
006B0F84 8B43 20 MOV EAX,DWORD PTR DS:
006B0F87 03C2 ADD EAX,EDX
006B0F89 8B08 MOV ECX,DWORD PTR DS:
006B0F8B 894B 20 MOV DWORD PTR DS:,ECX
006B0F8E 8B43 1C MOV EAX,DWORD PTR DS:
006B0F91 03C2 ADD EAX,EDX
006B0F93 8B08 MOV ECX,DWORD PTR DS:
006B0F95 894B 1C MOV DWORD PTR DS:,ECX
006B0F98 03F2 ADD ESI,EDX
006B0F9A 8B4B 0C MOV ECX,DWORD PTR DS:
006B0F9D 03CA ADD ECX,EDX
006B0F9F 8D43 1C LEA EAX,DWORD PTR DS:
006B0FA2 50 PUSH EAX
006B0FA3 57 PUSH EDI
006B0FA4 56 PUSH ESI
006B0FA5 FFD1 CALL ECX
006B0FA7 5A POP EDX
006B0FA8 58 POP EAX
006B0FA9 0343 08 ADD EAX,DWORD PTR DS:
006B0FAC 8BF8 MOV EDI,EAX
006B0FAE 52 PUSH EDX
006B0FAF 8BF0 MOV ESI,EAX
006B0FB1 8B46 FC MOV EAX,DWORD PTR DS:
006B0FB4 83C0 04 ADD EAX,4
006B0FB7 2BF0 SUB ESI,EAX
006B0FB9 8956 08 MOV DWORD PTR DS:,EDX
006B0FBC 8B4B 0C MOV ECX,DWORD PTR DS:
006B0FBF 894E 14 MOV DWORD PTR DS:,ECX
006B0FC2 FFD7 CALL EDI
006B0FC4 8985 3F130010 MOV DWORD PTR SS:,EAX
006B0FCA 8BF0 MOV ESI,EAX
006B0FCC 8B4B 14 MOV ECX,DWORD PTR DS:
006B0FCF 5A POP EDX
006B0FD0 EB 0C JMP SHORT Just_Cau.006B0FDE
006B0FD2 03CA ADD ECX,EDX
006B0FD4 68 00800000 PUSH 8000
006B0FD9 6A 00 PUSH 0
006B0FDB 57 PUSH EDI
006B0FDC FF11 CALL DWORD PTR DS:
006B0FDE 8BC6 MOV EAX,ESI
006B0FE0 5A POP EDX
006B0FE1 5E POP ESI
006B0FE2 5F POP EDI
006B0FE3 59 POP ECX
006B0FE4 5B POP EBX
006B0FE5 5D POP EBP
006B0FE6 FFE0 JMP EAX 到这,F8
-------------------------------------------
00401C34 68 E87F4600 PUSH Just_Cau.00467FE8 ; ASCII "VB5!6&*" <-----经典的VB入口,在此脱壳
00401C39 E8 EEFFFFFF CALL Just_Cau.00401C2C ; JMP 到 MSVBVM60.ThunRTMain
00401C3E 0000 ADD BYTE PTR DS:,AL
00401C40 0000 ADD BYTE PTR DS:,AL
00401C42 0000 ADD BYTE PTR DS:,AL
00401C44 3000 XOR BYTE PTR DS:,AL
00401C46 0000 ADD BYTE PTR DS:,AL
00401C48 68 00000048 PUSH 48000000
00401C4D 0000 ADD BYTE PTR DS:,AL
00401C4F 005B 14 ADD BYTE PTR DS:,BL
00401C52 96 XCHG EAX,ESI
-------------------------------
运行ImportREC
选择进程,OEP:00001C34-------自动查找IAT------获取输入表------------剪贴掉无效指针--------修复转存文件
至此脱壳成功~~可以运行
程序为VB编写
------------------------------------------------------------------------
【破解总结】这四层保护还是比较好解决的
------------------------------------------------------------------------
【版权声明】版权为PYG所有,欢迎转载!
原帖由 km159 于 2009-7-16 14:57 发表 https://www.chinapyg.com/images/common/back.gif
試過了無效,到一些地方的時候呦不一樣了
动画
http://www.ilymyx.com.cn/123.wmv 原帖由 km159 于 2009-7-16 15:44 发表 https://www.chinapyg.com/images/common/back.gifhttp://www.ilymyx.com.cn/123.wmv
實在實在實在是太感謝太感謝太感謝你了
也是查不出來的怪殼
有空的話麻煩你看看這些要如何脫殼?
回复 15# zx06zx 的帖子
你不是吧?这里不是善堂。 原帖由 rxzcums 於 2009-7-16 16:50 發表 https://www.chinapyg.com/images/common/back.gif
你不是吧?
這裡不是善堂。
我知道:lol:
我只是說有空的話,麻煩一下而已 第一个跟上一个一样,你看过我的动画可以直接秒掉
第二个人压根没壳
[ 本帖最后由 km159 于 2009-7-16 17:06 编辑 ] 原帖由 km159 於 2009-7-16 17:04 發表 https://www.chinapyg.com/images/common/back.gif
第一個跟上一個一樣,你看過我的動畫可以直接秒掉
第二個人壓根沒殼
第1個附件的脫殼方法好像不太一樣,跟之前那個有點不太一樣/:15
第2個附件因為無法編輯裡頭的資源,所以想應該裡頭有加什麼東西才會無法編輯裡頭的資源:hug:
版主為何要公佈我的IP?/:L 原帖由 rxzcums 於 2009-7-16 00:04 發表 https://www.chinapyg.com/images/common/back.gif
原來真的有殼,是個VB。
OEP:00401C34
你脫掉的這個殼,有一個問題
就是說關閉音樂時會發生當機問題
http://xs141.xs.to/xs141/09296/pokesav0_40c735.png
玩遊戲時,開這個修改器的話,這個修改器一樣會發生當機問題
http://xs141.xs.to/xs141/09290/justcause857.png
[ 本帖最后由 zx06zx 于 2009-7-20 08:16 编辑 ]