-
-
[求助]求问个themida的脱壳思路
-
2018-11-26 23:43
12767
-
我手头上有两个网游的文件,想破开提取一下资源。一个启动器(GUpdate_CHINA.exe)为A.exe,另一个(GOnline.exe)为B.exe。
游戏启动顺序是打开A.exe,点击启动游戏就会打开B.exe,并且A会自己关掉。两个文件都是 themida 加密的,用Protection_ID检测结果是:
[!] Themida v2.0.1.0 - v2.1.8.0 (or newer) detected !
[i] Hide PE Scanner Option used
环境:虚拟机中 xp 系统
1:刚开始是打算不想管启动器A.exe,直接对B.exe动手,但是直接打开B没反应,连窗口都不弹出一个,估计是A打开B时会有启动参数传过去。于是打开Procexp和Procmon,来看看有什么情况,但themida对Procexp和Procmon都有检测,运行不起来,只能对A下手。
2:找来LCF-AT大神的脚本来处理(
参考链接)(这里有个坑,大神的脚本在我win7下运行中途总会莫名其妙停下来,也没有啥错误提示,郁闷~可能跟我系统环境有关,只能在xp下搞 ),脚本处理没出错,提示成功,生成一个A_DP.exe的文件,也能运行起来没报错。但是只能运行在xp中,复制到win7下运行崩溃了,据说需要修复IAT(暂时先不管了,xp下能运行就好)
3:打开Procmon,从A_DP.exe打开游戏,在事件记录中找到了调用B.exe的启动参数(B.exe ip地址 port端口)。用OD+启动参数加载B.exe,再使用脚本,然而 在脚本执行过程中B的进程停掉了(日志附件提供);我也尝试直接在cmd中使用(B.exe ip地址 port端口)的命令参数启动B,但是没反应,也没有提示错误或其他提示信息。(估计A调用B时还做了些其他操作,比如对注册表进行操作,然后B再验证,验证不通过直接退出?也只能想想了= =)
4:搞到这里已经没辙了,各位大神们,你们对这种两个程序调用的情况有什么建议或思路不?o(╥﹏╥)o
脱壳脚本停掉的时候在ntdll领空里面。
我也试过对 CreateProcess 的API进行下断,但是并没有命中,不知道A是怎么调用并运行B的,并且B运行起来后,任务管理器里面找不到它的任务项,无法使用附加的方法加载。
PS:B运行起来后有1到2秒是可以在任务管理器中看到进程,然后又消失了,是不是它自己隐藏掉进程还是怎样的(# ̄~ ̄#)
=======================================================
这里提供Procmon的事件日志
链接:https://pan.baidu.com/s/1ZGs89m3TgBVSqERhuynxdQ 提取码: gp88
=======================================================
==================================
这是OD的日志
==================================
[PhantOm_stat] > PLUGIN_RESET
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\MFC42.Lib'
已解析出 6396 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc42d.lib'
已解析出 4850 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc42u.lib'
已解析出 6393 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc42ud.lib'
已解析出 4856 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc71.Lib'
已解析出 6442 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc71d.lib'
已解析出 8875 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc71u.lib'
已解析出 6438 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc71ud.lib'
已解析出 8869 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc80.lib'
已解析出 6502 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc80d.lib'
已解析出 8963 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc80u.lib'
已解析出 6501 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfc80ud.lib'
已解析出 8960 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfcd42d.lib'
已解析出 705 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfcd42ud.lib'
已解析出 705 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfcn42d.lib'
已解析出 110 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfcn42ud.lib'
已解析出 111 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfco42d.lib'
已解析出 2914 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\mfco42ud.lib'
已解析出 2910 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\MSVBVM50.lib'
已解析出 600 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvbvm60.lib'
已解析出 635 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcp60.lib'
已解析出 2290 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcp71.lib'
已解析出 2903 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcp80.lib'
已解析出 3172 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\MSVCR70.lib'
已解析出 839 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcr71.lib'
已解析出 837 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcr80.lib'
已解析出 1457 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\msvcrt.lib'
已解析出 1396 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\comctl32.lib'
已解析出 118 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\dbgeng.lib'
已解析出 3 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\dbghelp.lib'
已解析出 204 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\kernel32.lib'
已解析出 949 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\ntdll.lib'
已解析出 1315 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\oleaut32.lib'
已解析出 399 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\oledlg.lib'
已解析出 23 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\ollydbg.lib'
已解析出 187 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\ws2_32.lib'
已解析出 117 个序号
正在扫描导入库 'C:\吾爱破解专用版Ollydbg\LIB\wsock32.lib'
已解析出 69 个序号
文件 'C:\Documents and Settings\debug\桌面\SDGundam\GOnline.exe'
参数 '127.0.0.1 80'
ID 00000870 的新进程已创建
00F81000 ID 00000874 的主线程已创建
7C92120E [PhantOm_iNFO] > System breakpoint [mainloop]
[PhantOm_stat] > KiUserExceptionDispatcher hooked
[PhantOm_stat] > ZwContinue hooked
00400000 Module C:\Documents and Settings\debug\桌面\SDGundam\GOnline.exe
5D170000 Module C:\WINDOWS\system32\comctl32.dll
77D10000 Module C:\WINDOWS\system32\user32.dll
77DA0000 Module C:\WINDOWS\system32\advapi32.dll
77E50000 Module C:\WINDOWS\system32\rpcrt4.dll
77EF0000 Module C:\WINDOWS\system32\gdi32.dll
77FC0000 Module C:\WINDOWS\system32\secur32.dll
7C800000 Module C:\WINDOWS\system32\kernel32.dll
7C920000 Module C:\WINDOWS\system32\ntdll.dll
76300000 Module C:\WINDOWS\system32\imm32.dll
62C20000 Module C:\WINDOWS\system32\lpk.dll
73FA0000 Module C:\WINDOWS\system32\usp10.dll
00F81000 程序入口点
76990000 Module C:\WINDOWS\system32\ole32.dll
77BE0000 Module C:\WINDOWS\system32\msvcrt.dll
770F0000 Module C:\WINDOWS\system32\oleaut32.dll
Themida - Winlicense Ultra Unpacker 1.4
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
015D0A0F 断点位于 015D0A0F
015D0A10 断点位于 015D0A10
015E0054 断点位于 015E0054
OS=x86 32-Bit
015E0056 断点位于 015E0056
01600021 断点位于 01600021
01600028 断点位于 01600028
5.602 MB +/-
11.784 MB +/-
Your target is a >>> Executable <<< file!
PE HEADER: 400000 | 1000
CODESECTION: 401000 | A9C000
PE HEADER till CODESECTION Distance: 1000 || Value of 1000 = Normal!
Your Target seems to be a normal file!
Unpacking of NET targets is diffrent!
Dump running process with WinHex and then fix the whole PE and NET struct!
0161064B 断点位于 0161064B
Overlay found & dumped to disk!
Disasembling Syntax: MASM (Microsoft) <=> OK
Show default segments: Enabled
Always show size of memory operands: Enabled
Extra space between arguments: Disabled
StrongOD Found!
----------------------------------------------
HidePEB=1 Enabled = OK
KernelMode=1 Enabled = OK
KillPEBug=1 Enabled = OK
SkipExpection=1 Enabled = OK
Custom Exceptions Enabled = 00000000-FFFFFFFF
DriverName=Rockey5U
DRX=1 Enabled = OK
----------------------------------------------
Basic Olly & Plugin Settings seems to be ok!
No InfoBox to User to show now!
00F81009 断点位于 GOnline.00F81009
00F8100B 断点位于 GOnline.00F8100B
XP System found - Very good choice!
Newer SetEvent & Kernel32 ADs Redirecting in Realtime is disabled by user!
Kernel Ex Table Start: 7C802644
0165003F 断点位于 0165003F
PE DUMPSEC: VA 1660000 - VS 32000
PE ANTISEC: VA 1661000
PE OEPMAKE: VA 1661600
SETEVENT_VM: VA 16621D0
PE I-Table: VA 1663000
VP - STORE: VA 1662F00
and or...
API JUMP-T: VA 1663000
0165003F 断点位于 0165003F
RISC VM Store Section VA is: 16A0000 - VS 200000
01650041 断点位于 01650041
00EA2FFA 硬件断点 1 位于 GOnline.00EA2FFA
Found WL Intern Export API Access at: EA33F8
Use this address to get all intern access WL APIs!
76B10000 Module C:\WINDOWS\system32\winmm.dll
7C809AE1 硬件断点 2 位于 kernel32.VirtualAlloc
---------- Loaded File Infos ----------
Target Base: 400000
Kernel32 Base: 7C800000
Kernel32 SORD: 7C8001F8 | 83200
Kernel32 SORD: 7C800200
User32 Base: 77D10000
Advapi32 Base: 77DA0000
---------------------------------------
WL Section: EA1000 | E0000
WL Align: F5CA1014 | EBP Pointer Value
XBundler Prepair Sign not found!
CISC VM is located in the Themida - Winlicense section EA1000 | E0000.
VMWare Address: EA2ED1 | 1
VMWare Bypassing Enabled by User!
Auto XBundler Checker & Dumper is enabled!
If XBunlder Files are found in auto-modus then they will dumped by script!
If the auto XBunlder Dumper does fail etc then disable it next time!
Anti Access Stop on Code Section was Set!
Moddern MJM Scan Chosen!
Normal IAT Patch Scan Was Written!
01AB0306 硬件断点 3 位于 01AB0306
7C8106E9 ID 000008D8 的新线程已创建
7C8106E9 ID 000008DC 的新线程已创建
7C8106E9 ID 000008E0 的新线程已创建
7C8106E9 ID 000008E4 的新线程已创建
7C8106E9 ID 000008E8 的新线程已创建
7C8106E9 ID 000008EC 的新线程已创建
7C8106E9 ID 000008F0 的新线程已创建
7C8106E9 ID 000008F4 的新线程已创建
7C8106E9 ID 000008F8 的新线程已创建
7C8106E9 ID 000008FC 的新线程已创建
7C8106E9 ID 00000900 的新线程已创建
7C8106E9 ID 00000904 的新线程已创建
7C8106E9 ID 00000908 的新线程已创建
7C8106E9 ID 0000090C 的新线程已创建
7C8106E9 ID 00000910 的新线程已创建
7C8106E9 ID 00000914 的新线程已创建
7C8106E9 ID 00000918 的新线程已创建
7C8106E9 ID 0000091C 的新线程已创建
7C8106E9 ID 00000920 的新线程已创建
7C8106E9 ID 00000924 的新线程已创建
7C8106E9 ID 00000928 的新线程已创建
7C8106E9 ID 0000092C 的新线程已创建
7C8106E9 ID 00000930 的新线程已创建
7C8106E9 ID 00000934 的新线程已创建
01AA0033 硬件断点 1 位于 01AA0033
7C9301BB 硬件断点 3 位于 ntdll.7C9301BB
Heap Prot was redirected!
10000000 Module C:\Documents and Settings\debug\桌面\SDGundam\zlib1.dll
03440000 Module C:\Documents and Settings\debug\桌面\SDGundam\addr.dll
72F70000 Module C:\WINDOWS\system32\winspool.drv
77F40000 Module C:\WINDOWS\system32\shlwapi.dll
7C8106E9 ID 00000938 的新线程已创建
03710000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_core.dll
785F0000 Module C:\Documents and Settings\debug\桌面\SDGundam\mfc100u.dll
78AA0000 Module C:\Documents and Settings\debug\桌面\SDGundam\msvcr100.dll
762F0000 Module C:\WINDOWS\system32\msimg32.dll
78050000 Module C:\Documents and Settings\debug\桌面\SDGundam\msvcp100.dll
037A0000 Module C:\Documents and Settings\debug\桌面\SDGundam\dbghelp.dll
5ADC0000 Module C:\WINDOWS\system32\uxtheme.dll
039E0000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_graphics.dll
4B640000 Module C:\WINDOWS\system32\d3d9.dll
6DD20000 Module C:\WINDOWS\system32\d3d8thk.dll
77BD0000 Module C:\WINDOWS\system32\version.dll
03D40000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_input.dll
6D180000 Module C:\WINDOWS\system32\dinput8.dll
03D80000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_obs.dll
03DB0000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_sound.dll
21100000 Module C:\Documents and Settings\debug\桌面\SDGundam\Mss32.dll
03E00000 Module C:\Documents and Settings\debug\桌面\SDGundam\zoa_ui.dll
7D590000 Module C:\WINDOWS\system32\shell32.dll
77180000 Module C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
76BC0000 Module C:\WINDOWS\system32\psapi.dll
76C60000 Module C:\WINDOWS\system32\imagehlp.dll
71A20000 Module C:\WINDOWS\system32\ws2_32.dll
71A10000 Module C:\WINDOWS\system32\ws2help.dll
00F323A1 硬件断点 2 位于 GOnline.00F323A1
00401000 当禁用内存断点时发生错误:
00401000 访问内存已被更改,从 RE 到 RWE (original RWECopy)
00894000 访问内存已被更改,从 RE 到 RWE (original RWE)
00BBA000 访问内存已被更改,从 RE 到 RWECopy (original RWECopy)
00C48000 访问内存已被更改,从 RE 到 RWE (original RWE)
00C49000 访问内存已被更改,从 RE 到 RWECopy (original RWECopy)
00E74000 访问内存已被更改,从 RE 到 RWE (original RWE)
00E75000 访问内存已被更改,从 RE 到 RWECopy (original RWECopy)
00F33BF6 当写入 [00401000] 时设置内存断点
F33BF6 - rep movs byte ptr es:[edi],byte ptr ds:[esi]
00F33BF8 断点位于 GOnline.00F33BF8
7C8106E9 ID 00000964 的新线程已创建
01AA0033 硬件断点 1 位于 01AA0033
7C9301BB 硬件断点 2 位于 ntdll.7C9301BB
Heap One was redirected!
01AA0033 硬件断点 1 位于 01AA0033
7C9301BB 硬件断点 2 位于 ntdll.7C9301BB
Heap Two was redirected!
进程已终止, 退出代码 0
==================================
这是脱壳脚本的日志:
==================================
Script Log Window
Address Message
F81000 Themida - Winlicense Ultra Unpacker 1.4
F81000 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
F81000
15E0054
15E0054 OS=x86 32-Bit
F81000
F81000 5.602 MB +/-
F81000
F81000 11.784 MB +/-
F81000
F81000 Your target is a >>> Executable <<< file!
F81000
F81000
F81000 PE HEADER: 400000 | 1000
F81000 CODESECTION: 401000 | A9C000
F81000 PE HEADER till CODESECTION Distance: 1000 || Value of 1000 = Normal!
F81000 Your Target seems to be a normal file!
F81000
F81000 Unpacking of NET targets is diffrent!
F81000 Dump running process with WinHex and then fix the whole PE and NET struct!
F81000
161064B
161064B Overlay found & dumped to disk!
F81000
F81000 Disasembling Syntax: MASM (Microsoft) <=> OK
F81000
F81000 Show default segments: Enabled
F81000 Always show size of memory operands: Enabled
F81000 Extra space between arguments: Disabled
F81000
F81000 StrongOD Found!
F81000 ----------------------------------------------
F81000 HidePEB=1 Enabled = OK
F81000 KernelMode=1 Enabled = OK
F81000 KillPEBug=1 Enabled = OK
F81000 SkipExpection=1 Enabled = OK
F81000 Custom Exceptions Enabled = 00000000-FFFFFFFF
F81000 DriverName=Rockey5U
F81000
F81000 DRX=1 Enabled = OK
F81000
F81000 ----------------------------------------------
F81000
F81000
F81000 Basic Olly & Plugin Settings seems to be ok!
F81000 No InfoBox to User to show now!
F81000
F81000
F81000 XP System found - Very good choice!
F81000
F81000
F81000 Newer SetEvent & Kernel32 ADs Redirecting in Realtime is disabled by user!
F81000
F81000
F81000 Kernel Ex Table Start: 7C802644
165003F
165003F PE DUMPSEC: VA 1660000 - VS 32000
165003F PE ANTISEC: VA 1661000
165003F PE OEPMAKE: VA 1661600
165003F SETEVENT_VM: VA 16621D0
165003F PE I-Table: VA 1663000
165003F VP - STORE: VA 1662F00
165003F and or...
165003F API JUMP-T: VA 1663000
165003F
165003F RISC VM Store Section VA is: 16A0000 - VS 200000
EA2FFA
EA2FFA Found WL Intern Export API Access at: EA33F8
EA2FFA
EA2FFA Use this address to get all intern access WL APIs!
7C809AE1
7C809AE1 ---------- Loaded File Infos ----------
7C809AE1
7C809AE1 Target Base: 400000
7C809AE1
7C809AE1 Kernel32 Base: 7C800000
7C809AE1
7C809AE1 Kernel32 SORD: 7C8001F8 | 83200
7C809AE1 Kernel32 SORD: 7C800200
7C809AE1
7C809AE1 User32 Base: 77D10000
7C809AE1 Advapi32 Base: 77DA0000
7C809AE1 ---------------------------------------
7C809AFA
7C809AFA WL Section: EA1000 | E0000
7C809AFA
7C809AFA WL Align: F5CA1014 | EBP Pointer Value
7C809AFA
7C809AFA
7C809AFA XBundler Prepair Sign not found!
7C809AFA CISC VM is located in the Themida - Winlicense section EA1000 | E0000.
7C809AFA
7C809AFA
7C809AFA VMWare Address: EA2ED1 | 0
7C809AFA
7C809AFA
7C809AFA VMWare Checks are not Used & Disabled by Script!
7C809AFA
7C809AFA
7C809AFA Auto XBundler Checker & Dumper is enabled!
7C809AFA If XBunlder Files are found in auto-modus then they will dumped by script!
7C809AFA If the auto XBunlder Dumper does fail etc then disable it next time!
7C809AFA
7C809AFA
7C809AFA Anti Access Stop on Code Section was Set!
7C809AFA
7C809AFA Moddern MJM Scan Chosen!
7C809AFA
7C809AFA Normal IAT Patch Scan Was Written!
7C9301BB
7C9301BB Heap Prot was redirected!
F33BF6
F33BF6 F33BF6 - rep movs byte ptr es:[edi],byte ptr ds:[esi]
7C9301BB
7C9301BB Heap One was redirected!
7C9301BB
7C9301BB Heap Two was redirected!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2018-11-27 14:38
被焚香编辑
,原因: 补充描述