输入表免杀的问题

输入表免杀的问题,第1张

1 首先用lordpe打开,目录,导入表找到你要改的函数。比如说CommandLineA

2 记下未改前的改函数的thunkvalue 举例:00062922

3 将要修改的文件用winhex等16进制形式打开,然后找到该函数的地址,比如说00062988

4 将该函数用00填充,移动到新地址如00070000

5 保存

6 将保存后的文件用lordpe打开,打开计算器,选择16进制,00062988-00062922+00070000,计算结果修改为新的thunkvalue。保存

<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了。


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

原文地址: https://www.outofmemory.cn/bake/11741016.html

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

发表评论

登录后才能评论

评论列表(0条)

保存