首页
社区
课程
招聘
[原创]ExeStealth2.exe 脱壳
2015-11-9 00:20 5192

[原创]ExeStealth2.exe 脱壳

2015-11-9 00:20
5192
本文为脱壳入门,没啥技术含量,高手略过,勿喷。
ExeStealth2.exe程序用PEiD查壳为EXEStealth 2.5x - 2.7x -> WebToolMaster
EXEStealth壳使用最后一次异常的方法就可以脱壳,只是这个程序脱完需要找一下iat。

一、找OEP
将OD调试选项中,除忽略kernel32异常外的所有勾去掉。
然后不停shift+f9,弹出提示框,30天试用。点击确定,再继续shift+f9,到最后一次异常。
00A639EC    3100             xor dword ptr ds:[eax],eax
00A639EE    64:8F05 00000000 pop dword ptr fs:[0]
00A639F5    58               pop eax

shift+f8到系统领空,alt+m打开内存镜像,在00401000段f2下断。f9到oep.
00403607    6A 00            push 0
00403609    E8 E2040000      call ExeSteal.00403AF0
0040360E    A3 02184000      mov dword ptr ds:[401802],eax
00403613    6A 00            push 0
00403615    68 2B364000      push ExeSteal.0040362B
0040361A    6A 00            push 0
0040361C    6A 64            push 64
0040361E    50               push eax
0040361F    E8 08050000      call ExeSteal.00403B2C

入口特征是masm的程序。

二、找iat
loadpe 脱壳
importrec修复,显示无效,等级1修复,但是还有1adc 1ae4 1b10 3个指针不能修复。等级2,等级3也都不行,所以这三个指针就是需要手动寻找的。
在没有加密的iat下硬件写入断点,看iat是什么时候写入的。
不知道为什么,我下硬件写入断点,断不下来,所以改为内存访问断点。
重新加载,忽略所有异常。f9执行到
00A63335    8902             mov dword ptr ds:[edx],eax                      ; kernel32.CloseHandle
00A63337    EB 09            jmp short 00A63342
00A63339    B8 A417A600      mov eax,0A617A4
00A6333E    8B17             mov edx,dword ptr ds:[edi]
00A63340    8902             mov dword ptr ds:[edx],eax
00A63342    8307 04          add dword ptr ds:[edi],4
00A63345    5F               pop edi
00A63346    5E               pop esi
00A63347    5B               pop ebx
00A63348    8BE5             mov esp,ebp
00A6334A    5D               pop ebp

00401AD0  00001B54
00401AD4  00001B62
00401AD8  00001B70
00401ADC  00001B7E
00401AE0  00001B90
00401AE4  00001B9E

查看一下 00401b54
00401B54  1A 00 43 6C 6F 73 65 48 61 6E 64 6C 65 00 30 00  .CloseHandle.0.
00401B64  43 72 65 61 74 65 46 69 6C 65 41 00 80 00 45 78  CreateFileA.€.Ex
00401B74  69 74 50 72 6F 63 65 73 73 00 C8 00 47 65 74 43  itProcess.?GetC
00401B84  6F 6D 6D 61 6E 64 4C 69 6E 65 41 00 F5 00 47 65  ommandLineA.?Ge
00401B94  74 46 69 6C 65 53 69 7A 65 00 09 01 47 65 74 4D  tFileSize..GetM
00401BA4  6F 64 75 6C 65 48 61 6E 64 6C 65 41 00 00 52 01  oduleHandleA..R
00401BB4  47 65 74 54 69 63 6B 43 6F 75 6E 74 00 00 67 01  GetTickCount..g

所以需要找的三个函数,就是GetCommandLineA GetModuleHandleA DialogBoxParamA
修复dump后的程序,运行,提示框消失。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (1)
雪    币: 2892
活跃值: (1622)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chixiaojie 2015-11-9 02:49
2
0
这壳很冷门吧,而且还是 esp 定律的壳。
游客
登录 | 注册 方可回帖
返回