某外挂,PEID扫一下,啥也没有
一共6个区段,最后俩个随机填充区段。
一开始以为是vc++6.0,后来找到了FF 55 FC 5F 5E特征码,才知道是易语言。
2.x版本入口特征
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
007FE000 > 83EC 04 sub esp,0x4
007FE003 50 push eax
007FE004 53 push ebx
007FE005 E8 01000000 call SAX2_5脱.007FE00B
007FE00A CC int3
007FE00B 58 pop eax
007FE00C 89C3 mov ebx,eax
007FE00E 40 inc eax
007FE00F 2D 00800800 sub eax,0x88000
007FE014 2D 17186000 sub eax,SAX2_5脱.00601817
007FE019 05 0C186000 add eax,SAX2_5脱.0060180C
007FE01E 803B CC cmp byte ptr ds:[ebx],0xCC
007FE021 75 19 jnz XSAX2_5脱.007FE03C
007FE023 C603 00 mov byte ptr ds:[ebx],0x0
007FE026 BB 00100000 mov ebx,0x1000
007FE02B 68 FF731D75 push 0x751D73FF
007FE030 68 68598F16 push 0x168F5968
007FE035 53 push ebx
007FE036 50 push eax
007FE037 E8 0A000000 call SAX2_5脱.007FE046
007FE03C 83C0 00 add eax,0x0
007FE03F 894424 08 mov dword ptr ss:[esp+0x8],eax
007FE043 5B pop ebx
007FE044 58 pop eax
007FE045 C3 retn
|
脱壳前准备
反调试:用Hide ollydebug这个插件以及SOD这俩个插件,能开的都开了,才勉强过了反调试。
由于程序检测硬件断点,所以脚本跑不起来,到oep,直接dump就可以。IAT没有加密,这里很不解,难道不是2.x版本的tmd克么?
到oep方法
.text段下内存写入断点,shift+F9,取消内存断点.
bp GetProcessHeap+C,F9,取消断点.
.text段下F2断点,F9到oep或者oep的第一个call里面的位置.
直接DUMP,修复IAT即可。