ExeCryptor_gclgj脱壳笔记,脱壳,脱壳技术 2008年06月23日 星期一 下午 05:17 【文章标题】: ExeCryptor_gclgj脱壳笔记 【文章作者】: machengli 【软件名称】: 神机妙算钢筋 v8.7 【软件大小】: 1.87M 【下载地址】: http://www.0wei.com/viewthread.php?tid=7306&extra=page=1 【加壳方式】: ExeCryptor 【保护方式】: 壳保护 【编写语言】: Borland Delphi 【使用工具】: Ollydbg_EXEC、ImportREC、PETools 【操作平台】: winxp sp2 【软件介绍】: 一个过时的v8.7版本,现在已经是 v9.0。 【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! -------------------------------------------------------------------------------- 【详细过程】 下了一个神机妙算钢筋 v9.0,试脱成功,怕违犯论坛规矩就不打算发表了。 从清理硬盘的垃圾中看到这个软件的一个老版本v8.7,作为一个菜鸟练手的软件我想可以吧。 如与论坛规定有违,请删除之。 设置忽略所有异常,事件停在系统断点。 ---系统断点--- 7C921231 C3 RETN ; 系统断点。 7C921232 8BFF MOV EDI,EDI 7C921234 90 NOP 7C921235 90 NOP 7C921236 90 NOP 7C921237 90 NOP 7C921238 90 NOP 7C921239 > CC INT3 7C92123A C3 RETN 7C92123B 90 NOP 7C92123C 8BFF MOV EDI,EDI ==================================================================================================== 运行Bypass AntiDBG OEP-ESTO脚本。 1、出现2个异常,Shift F9通过。 2、来到OEP。 ---伪OEP--- 007F17B5 /E9 66FF0400 JMP gclgj.00841720 007F17BA |E9 4D7A0000 JMP gclgj.007F920C 007F17BF ^|0F82 FAF4FDFF JB gclgj.007D0CBF 007F17C5 |9C PUSHFD 007F17C6 |E9 01A80300 JMP gclgj.0082BFCC 007F17CB |2B15 360C7E00 SUB EDX,DWORD PTR DS:[7E0C36] ==================================================================================================== ---解密IAT---- 1、Ctrl G:0040100,新建EIP。 2、确定加密IAT表地址。LordPE查看区段表,BBS下面的c3usshcz即加密IAT区段。 A、虚拟偏移 2A3000 400000=6A3000。 B、在OD数据窗口定位Ctrl G: 6A3000 C、确定IAT表开始、结束位置。 006A3204 00000000 ; IATstart 006A3208 007CE01C gclgj.007CE01C 006A320C 0083CFA3 gclgj.0083CFA3 006A3210 00802C80 gclgj.00802C80 ...... 006A3B6C 71A22B66 WS2_32.ntohs 006A3B70 71A2406A WS2_32.connect 006A3B74 71A29639 WS2_32.closesocket 006A3B78 71A31028 WS2_32.accept 006A3B7C 00000000 ; IATend D、修改ExeCryptor 2.xx IAT Rebuilder v1.1脚本。 =========================== mov IATstart,006a3208 mov IATend,006A3B78 =========================== 3、运行ExeCryptor 2.xx IAT Rebuilder v1.1脚本。 006A3204 00000000 006A3208 7C93188A ntdll.RtlDeleteCriticalSection 006A320C 7C9210ED ntdll.RtlLeaveCriticalSection 006A3210 7C921005 ntdll.RtlEnterCriticalSection 006A3214 7C809FA1 kernel32.InitializeCriticalSection 006A3218 7C809B14 kernel32.VirtualFree 006A321C 7C809A81 kernel32.VirtualAlloc ...... 省略。 IAT解密完成,脚本结束。 ==================================================================================================== ---转存、修复转存--- 1、用PETools转存为dumped.exe。 2、用ImportREC,OEP=003F17B5,RVA=2A3204。 3、保存为dumped_.exe。 修复转存结束。 ==================================================================================================== ---还原TLS--- 1、确定原TLS表地址。LordPE查看区段表,.rdata头部即原TLS表地址。 2、修改TLS表RVA=002A8000,保存。 ==================================================================================================== ----修复OEP--- OD载入dumped_.exe,来到伪OEP。 007F17B5 > /E9 66FF0400 JMP Dumped_.00841720 ; 注意007F17B5! 007F17BA |E9 4D7A0000 JMP Dumped_.007F920C 007F17BF ^|0F82 FAF4FDFF JB Dumped_.007D0CBF 007F17C5 |9C PUSHFD Ctrl G:00401000。 Ctrl S:jmp 007F17B5。 005B8B04 - E9 AC8C2300 JMP Dumped_. 005B8B09 68 FB748200 PUSH Dumped_.008274FB 005B8B0E - E9 980F2900 JMP Dumped_.00849AAB 005B8B13 0F95C6 SETNE DH 005B8B16 33F2 XOR ESI,EDX 005B8B18 68 8E8293A4 PUSH A493828E 005B8B1D 58 POP EAX 005B8B1E 81C8 08FC30C1 OR EAX,C130FC08 参考一 软件修复OEP。 005B8B04 55 PUSH EBP ; 这是真正的OEP! 005B8B05 8BEC MOV EBP,ESP 005B8B07 83C4 E0 ADD ESP,-20 005B8B0A 53 PUSH EBX 005B8B0B 56 PUSH ESI 005B8B0C 57 PUSH EDI 005B8B0D 33C0 XOR EAX,EAX 005B8B0F 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX 005B8B12 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX 005B8B15 8945 EC MOV DWORD PTR SS:[EBP-14],EAX 005B8B18 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX 005B8B1B B8 4C865B00 MOV EAX,Dumped_.005B864C 005B8B20 E8 E3E7E4FF CALL Dumped_.00407308 005B8B25 8B1D 14DD5B00 MOV EBX,DWORD PTR DS:[5BDD14] ; Dumped_.005BEC90 005B8B2B 33C0 XOR EAX,EAX 005B8B2D 55 PUSH EBP 005B8B2E 68 4A8F5B00 PUSH Dumped_.005B8F4A 005B8B33 64:FF30 PUSH DWORD PTR FS:[EAX] 005B8B36 64:8920 MOV DWORD PTR FS:[EAX],ESP 保存为dumped_A.exe。用LordPE修改已修复OEP的脱壳文件dumped_A.exe,OEP=001B8B04。 ==================================================================================================== ---文件优化--- 试运行正常。 原文件字节为1.87M,脱壳后文件为6.22M,太大。 打开LordPE,保存.mackt区段到磁盘。 删除下面的3个壳区段,装配上.mackt区段,文件字节减少到3.74M。 需要练手的朋友可到这里下载原版、脱壳版。 http://www.0wei.com/viewthread.php?tid=7306&extra=page=1 |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-29 21:34 , Processed in 0.178313 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.