查看原文
其他

修改入口点免杀

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


微信公众号:计算机与网络安全

ID:Computer-network

顾名思义,入口点就是指一个程序的执行入口处,也就是最开始执行代码的地方。往往不同编译器编译出来的入口点代码不尽相同,这也是判断编译器类型及版本的标准参照点之一。


修改入口点免杀的理论意义要大于实际意义。目前大部分的主流反病毒软件都可以很好地查杀经过这种方法处理的病毒木马,不过这种修改方法在某些情况下仍然是非常有用的。


首先,如果将入口点的内容删除,并将其位移到其他地方,在物理硬盘中保存的文件的内容肯定也会发生相应的变化,如果反病毒软件恰好将特征码定位在入口点附近的话,那么黑客们的修改无疑就会收到非常理想的效果。


其次,这种方法可以和花指令很好地配合,可以使花指令的免杀效果更为明显。另外,修改入口点也会对反病毒软件的内存特征码扫描器产生一定的干扰。由此可以看出,这种方法还是有用武之地的,它的最大魅力在于可以和其他的免杀方法结合使用。

知道了利弊,下面简单地了解一下移动入口点的具体修改思想。要想使入口点移动,就必须找到一块空白区域保存被移动的那部分指令,并使用工具将原入口点指令所在的新位置修改为程序的入口点地址,也就是让程序由此处开始运行。待找到一块空白区域后再将部分入口点代码汇编到此处,既然入口点的部分代码已经被移动到了新的地方,那么原来的代码自然也就没用了,所以直接将其删除掉即可。


经过这样一番修改,程序的运行代码执行流程也就改变了,为了使程序仍然可以正常运行,则需要在新位置加一个跳转指令,使其在执行完这部分文件头代码后,可跳转到余下未执行的文件头代码处,以使程序前后连接起来。


但是为了操作方便与提高修改效率,实际的操作步骤并不是按照这个顺序来进行的,看完后面的操作示例后就会明白。可以结合图1的说明阅读下面的操作步骤,这样有利于透彻地理解其中的思想。

图1  改入口点免杀的具体思路

在打开Ollydbg后加载要修改的程序,Ollydbg会自动停在程序的入口点处,将头3句指令与第四条指令所在的地址保存到记事本中备用,如图2所示。然后选中头3条语句并单击鼠标右键,在弹出的菜单中依次选择“二进制”→“用NOP填充”,从而将文件的头3条指令删除掉。

图2  将入口点重要信息保存下来

向下拉动反汇编窗口滑块找到如图3所示的全0x00区域,选中一个地址后单击鼠标右键,在弹出的菜单中选择“汇编”(也可以直接按快捷键“空格”对本行数据进行汇编操作),别忘了将这行的地址0x0000ED26记录在文本文档中备用。

图3  全0x00的空白区域

执行完汇编操作后Ollydbg会弹出一个对话框,让我们输入相关的汇编指令。现在回到记事本中将前面保存的那3条语句依次汇编进去,如图4所示。

图4  将入口点处的3行代码汇编到空白区域

到现在为止整个流程还未完成,因为还要加一条跳转语句将其连贯起来。选中第4条空白指令并进行汇编,汇编内容为jmp 00406870,其中的地址0x00406870就是前面一开始保存的那个地址(即图2中的那个地址)。


接着选中添加的这4行代码,单击鼠标右键,在弹出的菜单中依次选择“复制到可执行文件”→“选择”,然后在弹出的新窗口中单击鼠标右键,并选择“保存文件”以便进行保存,如图5所示。

图5  保存到可执行文件

最后使用PEditor打开保存后的文件,将其入口点改为0x0000ED26,然后单击“应用更改”按钮来保存修改,如图6所示,同时双击运行修改完毕的文件以测试是否修改成功,经过测试可知,已成功将这个文件的入口点移位了。

图6  修改文件入口点地址

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存