能力值:
( LV2,RANK:10 )
|
-
-
2 楼
FSG的殼,算是壓縮殼。
OEP在這裡 004001D1 FF63 0C jmp dword ptr ds:[ebx+C]
這個call ,fsg通常都是找跨段的jmp。至少我都是這樣做。
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
[QUOTE=幻影火;994081]FSG的殼,算是壓縮殼。
OEP在這裡 004001D1 FF63 0C jmp dword ptr ds:[ebx+C]
這個call ,fsg通常都是找跨段的jmp。至少我都是這樣做。[/QUOTE]
这是OEP原始入口点???
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
004001CD ^\78 F3 js short 绘图3.004001C2 004001CF 75 03 jnz short 绘图3.004001D4 004001D1 FF63 0C jmp dword ptr ds:[ebx+C]//这里下段,F9运行 004001D4 50 push eax
然后单步一下就来到OEP;
可能你的OD是乱码;换个OD试试效果;
最后一步必须修复一下IAT;
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
为什么在这里下断啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
基本上是經驗,fsg類似的殼都是差不多類似的方法跳到OEP。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
有脱壳机和脚本脱很容易
|
能力值:
( LV6,RANK:90 )
|
-
-
8 楼
那样脱有啥意思啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
因为环绕这个jmp左右的一个循环;
而且这个循环频繁调用LoadLibrary和GetProAddress这两个函数;显然是在解密IAT;
循环最后一步就是到这个jmp;
所以这个jmp就是跳到接近OEP的地方;
|
能力值:
( LV6,RANK:90 )
|
-
-
10 楼
7C801D7D 55 push ebp
7C801D7E 8BEC mov ebp,esp
7C801D80 837D 08 00 cmp dword ptr ss:[ebp+8],0
7C801D84 53 push ebx
7C801D85 56 push esi
7C801D86 74 14 je short kernel32.7C801D9C
7C801D88 68 60E1807C push kernel32.7C80E160 ; ASCII "twain_32.dll"
7C801D8D FF75 08 push dword ptr ss:[ebp+8]
7C801D90 FF15 AC13807C call dword ptr ds:[<&ntdll._strcmpi>] ; ntdll._stricmp
7C801D96 85C0 test eax,eax
7C801D98 59 pop ecx
7C801D99 59 pop ecx
第一行是不是程序入口点啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
不是,你多跟了几步;
这里已经到系统领空了;
其实那个jmp跳过去就是入口点;
明显上面是vb得ThunMainxx;
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
樓主,建議你先去記常見compiler的開頭。
|
能力值:
( LV6,RANK:90 )
|
-
-
13 楼
再次感谢。原来我有这么几点问题:
1.单步跟踪方法木有掌握;
2.OEP的判断木有掌握
|
能力值:
( LV6,RANK:90 )
|
-
-
14 楼
嗯。谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
OD是乱码时,从模块中删除分析即可
|
|
|