能力值:
( LV2,RANK:10 )
|
-
-
2 楼
哪位大牛说下啊,刚开始研究壳,到底不能运行是什么原因呢,无效指针怎么这么少?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
帮顶。1.49据说有脱壳机。另外,楼主确定不需要补区段?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
脱壳机脱不了,运行一半就停住了,望大牛说下
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
一百多牛人看了啊,哪位大牛说下啊给个思路或说下原因,谢谢啦
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
是IAT没找对么,盼大牛说一下
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
拖到 LoadPE 修正下OEP和IAT地址 试试
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
单步跟了一下出错的位置,对比了下,错误位置是一个跳转之后(jmp 01bb283c),跳转后正常的应该是:pushad
push dword ptr ss:[esp+0x20]
call 014A2122
popad
retn
jmp 014C9063
int3
int3这是未脱壳文件正常运行的。而脱壳后这个跳转就跳飞了,就出错了。不知什么原因,如何解决。
|
能力值:
( LV6,RANK:80 )
|
-
-
9 楼
[QUOTE=luodf;1340880]单步跟了一下出错的位置,对比了下,错误位置是一个跳转之后(jmp 01bb283c),跳转后正常的应该是:pushad
push dword ptr ss:[esp+0x20]
call 014A2122
popad
retn
jmp 014C9063
int3
int3这是未脱壳文件...[/QUOTE]
你可以跟进那个call应该是个API调用。看上图你的IAT没找对,如果有API模拟得先去掉,最后不行再补区段。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
未脱壳文件jmp 01bb283c,可以跳到pushad这段代码,而脱壳后的这个跳转之后没代码了。如何解决呢
|
能力值:
( LV6,RANK:80 )
|
-
-
11 楼
01bb283c这个内存地址很明显是VirtualAlloc出来的,脱壳后dump是不会保存下来的,所以你得补上这块内存区段,怎么补?自己去找教程。
下面10年做的一点笔记,大部分应该是对的,希望对你有用。
Zprotect IAT修复方案
Zprotect 导入的各个DLL名字和函数顺序都已经打乱了保存的。保存的格式为
4字节的DLL序号,1字节的导出方式,0为名字,1为序号。后面就是加密了的名字或序列。
解码函数为动态释放出来的代码,只是一些简单的运算。这里可以用VM模拟。
对于修复,上面的信息是没有啥用的,搜索FF15,FF25 然后判断后面的这个值,读他所在的地址值,然后判断是否是push jmp 如果是就提取一个DWORD,然后去查一个表,然后取得他的地址,最后再判断这个地址是否有效。最后按照ImportREC的方法重建输入表。对于个别名字导出的函数他没有采用push jmp的方式去加密,而是直接到动态内存去调用了,程序上不好恢复,手脱还是很好识别。可以写个ImportREC的插件。
对于序号导出的函数它不加密,可以直接搜索DLL导出表比对函数地址。序号导出的函数的FirstThunk保存在一个数组中。
形如:
00406000
000000E4
00406004
00000024
…
ZP加密调用代码的修复
ZP加密调用代码也就是加密CALL指令,CALL IMM32都变成了JMP IMM32,这个地址,JMP到的目的地址在动态内存所以需要修正一下。ZP 保存的每条指令信息的格式如下:
每条指令信息占9字节,指令总数保存在重要结构+0xFC这里。
被加密的指令信息保存在0XF8数据块这里
形如:
01 03 00 00 00 05 00 07 00
01 04 00 00 00 01 00 01 00
Memindex1,2 的值不会超过内存块数量,也就是0XF4里保存的值。
{
+0 BYTE type
+1 DWORD offset
+5 WORD memindex1
+7 WORD memindex2
}
如果是手脱,pushad后ESP定律,几步后到OEP,修复输入表,然后就补区段。
带VM,SDK也要补区段。
每个版本的重要结构的定义都不一样,1490这个结构大小是0x170。
//0x24保存着节数
//0x30 OEP
//0x56 模拟的DLL个数
//0x7e 是否有资源
//0x120 加密后的节信息指针
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
哦,确实不会补区段啊 不过zp1.49貌似不需要补区段吧
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
穿上来看下呗
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
重建PE文件试试
|
|
|