巧改输入表,打造免杀木马

2012-04-29 21:23万立夫
计算机应用文摘 2012年2期
关键词:服务端木马按钮

万立夫

记录输入表信息

狐狸尾巴终于露出来了,原来这小子是找我帮忙啊,这就是“文艺青年”典型的特点。我告诉他说:“现在的杀毒软件,主要还是通过特征码来进行定位。但是这个特征码定位在什么地方,每个杀毒软件都有自己的定位方式。比如有的定位在程序的入口点,而有的则定位在程序的输入表。正是由于定位在这些非常重要的地方,所以一修改就会对程序内部进行保护,这样木马服务端程序无法运行也就是很正常的事。”于是我让朋友马上到我的家里,这样才可以实地对他进行讲解。

首先配置一个全新的木马服务端程序,如果木马拥有没有配置信息的服务端文件,也可以对这个服务端文件直接进行免杀操作。接着,运行查壳工具PEiD来查看输入表的位置,点击“文件”选项后面的“...”按钮,在弹出的窗口选择配置的木马服务端程序,这样PEiD就可以自动分析出木马服务端程序的相关信息(如图1)。然后点击“子系统”旁边的选项按钮,获得木马服务端程序文件的PE信息内容。记录下“目录信息”中“导入表”这项里面“RVA”和“大小”选项中的数值,即000A8000和000033A2就可以了(如图2)。

朋友这时居然脑残的问:“记录这个有什么用啊?”我忿忿地说:“当然有用,没有用的话我操作它干嘛!”接着运行系统中的计算器程序,点击“查看”菜单中的“程序员”命令,这样计算器程序就换了一种显示方式。这里我对朋友说:“由于000033A2是一个十六进制的数值,所以首先选择窗口中的‘十六进制这个选项。再将000033A2这个信息粘贴到输入框里面,然后再选择窗口中的‘十进制这个选项(如图3)。这样这个数值就会显示为十进制的13218,这说明输入表的代码拥有13218个字节的内容。”

删除输入表信息

接下来,我下载并运行《IAT重建工具》这款软件,因为这款软件最适合朋友这样的菜鸟。点击窗口下方的“选择文件”按钮,在弹出的窗口选择服务端程序,就可以将它添加到重建工具里面。接着点击窗口下方的“导出IAT”按钮,在弹出的窗口随意设置一个名称,这样就可以将服务端程序的IAT信息进行保存。看到这里朋友有问道:“备份这个东西有什么用啊?”我头也不抬的回答说:“一会我们需要通过它来重建输入表。”

IAT信息备份完成以后,在软件界面的“DLL名称”中,选择其中的KERNEL32.DLL这项。点击窗口下方的“删除IAT”按钮,这样就可以在服务端程序里面,将原来默认的输入表信息进行删除(如图4)。现在我对朋友说到:“接下来我们还需要将服务端程序,输入表对应的那些代码进行删除才可以,不然的话杀毒软件仍然是可以进行查杀的。”首先利用编辑工具C32Asm载入,已经被删除输入表信息的服务端程序。

接着在编辑窗口中点击鼠标右键中的“跳转”命令,在弹出的“跳转到”窗口的“OFFSET”栏目里面。输入原来的输入表地址000A8000后,点击“确定”按钮即可自动跳转到该输入表的位置(如图5)。通过鼠标从这个位置上开始拖动,一边拖动一般观察状态栏中的数值大小,当发现显示为“13218字节”的时候就停止拖动(如图6)。然后点击鼠标右键并选择菜单中的“填充”命令,在弹出的窗口中选择“使用十六进制填充”选项,在填充框中输入“00”

后点击“确定”按钮即可清除旧的输入表代码(如图7)。旧的输入表代码信息被删除后,点击工具栏中的“保存”按钮即可。

重新写入输入表

这时我提醒朋友:“现在我们并不要马上退出C32Asm软件,因为我们需要寻找一处新的输入表地址。我们就在以前的输入表地址下面,找到一个全新的输入表信息的输入地址,比如我们这里就选择000B9B60这个地址。”然后重新运行“IAT重建工具”软件,同样点击窗口下方的“选择文件”按钮,在弹出的窗口选择刚刚删除了输入表代码的服务端程序。这时我们可以看到“IAT重建工具”软件中,所有选项信息的内容都是空白的。于是在“RVA转换”中的“文件地址”输入框中,设置刚刚找到的输入表的新地址信息(即000B9B60),这样重建工具就会自动将其他的选项的数值显示出来(如图8)。

这里,我指着软件自动生成的其他选项说:“我们需要记下‘RVA地址这个选项,因为以后重新写入输入表信息会用到它的。”于是我们马上点击窗口下方的“重建IAT”按钮,在弹出的窗口选择最早保存的服务端IAT信息。这时软件会自动弹出一个“重建引入表”的对话框,将刚刚记录的“RVA地址”中的信息粘贴到里面,最后再点击对话框中的“确定”按钮就可以了(如图9)。看我这么快就操作完成了,朋友半信半疑的说:“就这么几步就完成啦?”

我指着操作完成的“IAT重建工具”主界面对他说:“如果在软件界面的‘DLL名称中看到KERNEL32.DLL这项,这样就说明服务端程序的输入表已经重建完成了。如果在‘DLL名称里面显示的都是乱码,就说明服务端程序的输入表没有重建成功。既然你已经来了,我就再免费送你一条技巧。比如你在使用了其他免杀方法成功以后,最好再使用这个方法对输入表进行重建,这样就相当于对免杀的服务端程序进行了二度保护。”朋友一听赞许道:“我就知道你这个2B青年可不是白当的。”

猜你喜欢
服务端木马按钮
当你面前有个按钮
小木马
骑木马
小木马
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
旋转木马
在Windows Server 2008上创建应用
死循环
内心不能碰的按钮