程序脱壳后用Importerc重建程序但是输入表函数都是无效的有几个有效但是修复的程序还是打不开求大

程序脱壳后用Importerc重建程序但是输入表函数都是无效的有几个有效但是修复的程序还是打不开求大,第1张

程序被dump出来后还需要重建输入表,例如这个程序dump后运行提示:

这里以...

我们展开,右键【删除指针数据】,现在全部都是有效的了。

5,修复已脱壳的Dumped....

(Get

Impor

<1>重建输入表

常规壳(如UPX,北斗等),然后脱壳后修复时重建输入表

<2>转移输入表函数『这次要讲的重点,具有代表性』*

<3>加壳(最好是些猛壳之类的,如ASProtect等,这个很灵活,要多尝试!)

以上只是理论,要运用到实际上来还是有一定的差距,下面就利用第二种方法以一具体实例演示下,至于其它的两种呢,就留给大家自己研究吧!是的,这种方法很典型,所以本次屏幕录像就以它为重点讲解并演示。希望大家能掌握好!

首先让瑞星来查杀下,可以看到,瑞星是查杀的(提示信息为黑客工具,我们忽略)。

为了节省时间,特征码在做录像之前我已经定位好了(相信大家都会定位特征码吧)。特征处如下:

00001EAE <特征处>『目标程序是s扫描器,一款命令行下使用的扫描器,很强大!』

说下本次演示使用到的工具:

C32ASM,Lordpe,计算器(就这三样)

具体步骤:

A.使用C32ASM打开目标程序,找到特征处的输入表函数,复制下函数名(并把此处函数名用90填充掉),记录下起始地址,找到移动地址(我们把这个输入表函数向空白处移动『一般往下移动』,尽量移动远 点,这里我们移动到最底部。)。把这个输入表函数GetProcAddress名复制到移动处后,另存一份文件为exe.exe。

(注意:GetProcAddress就是这个输入表函数,不能修改字符大小写的,得转移下。)

B.使用计算器计算移动的大小,注意是16进制计算:(看C32ASM底部提示)移动『十进制』->334字节

『十六进制』->14E

用瑞星查杀看看,是不被杀的,但是不能运行,看错误提示,那是输入表函数没处理好的结果!

C.使用Lordpe打开目标程序exe.exe,找到目录,导入表,找到第一个动态链接库,修改第二个输入表函数的ThunkVaule,右键编辑就行。

原来Thunk值:0001C0A0。而我们把这个函数向下移动了14E(十六进制)字节,那么应该加上计算下

0001C0A0+14E=1C1EE则Thunk值变为:1C1EE。编辑进去!填写上API名称,即是那输入表函数名:

GetProcAddress。保存下就OK了。

一般我们碰到的输入表函数特征码往往都是内存特征码,我一般可以采用三种方式来处理这种特征码。

第一种方法就是函数位置变化发,也称输入表函数移位法,顾名思义,就是把原特征码所在的输入表函数移动到一个新位置,然后在用LordPE这个工具将函数位置重新设定,文件便不会失去原有功能,不过不一定把函数移动到任何位置都可以运行,这个地址是需要尝试的(经验很重要)。一般用这种方法修改特征码后,都要校验和,否则不能正常运行。

第二种方法就是重建输入表法,因为特征码所在位置是输入表函数上,所以我们可以给待“免杀”文件加上一个加密输入表的壳,然后我们再脱掉这个壳,紧接着重建输入表,经过重建输入表后,此处的特征码就没有了,我强烈推荐使用这种方法,因为这种方法对于多处输入表函数特征码“免杀”的效果很好,一次脱壳就可以“免杀”所有输入表函数特征码,不过使用这一方法的前提是自己要有一定的脱壳功底。

第三种方法是这三种方法中最复杂的,也是最简单的。那就是简单添加入口的方法。说这种方法是最难的是因为想要手工实现此过程及其繁琐,需要“免杀”制作人员对汇编和PE结构有较深的了解。说其简单,是因为我们可以用一个很简单的工具实现,这个工具就是大名鼎鼎的MaskPE了,MaskPE中的那个“TYPE 3”选项的意思就是简单添加入口,使用这个选项就可以实现输入表特征码的修改了。尤其是对瑞星的内存查杀,特别有效。这种方法也可以应付多处输入表函数特征码的修改,不过相比于上一种方法,我不是很推荐使用这种方法,因为用这种方法处理后,文件就不容易被其他的方法(如加壳、加花,改特征码)处理了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8129747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存