某外挂,PEID扫一下,啥也没有

img

一共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即可。