手动修改PE文件:添加自定义代码

本文介绍了如何手动修改PE文件,通过在Dos头和Nt头之间、节末尾的Padding以及新增节添加代码来感染PE文件。步骤包括准备、设置导入表和数据、编写代码、重建或添加重定位表以及修改跳转,以确保自定义代码的执行。
摘要由CSDN通过智能技术生成

在PE文件里有很多位置可以添加自己的代码(其实就是感染PE),凡是用不到的地方都能加。想到的位置有(在文件中不是在内存中):Dos头和Nt头之间、每个节末尾的Padding(间隙)、新增节分配在文件末尾的空间;其它覆盖数据的方法不安全容易引起错误还是算了。添加后还要在程序中设置跳转以执行自己的代码,有用跳转和改入口点的方法。总之方法很多,下面举个例子:


1. 准备


在这里我要加的代码功能为:弹出一个对话框,关掉对话框后就运行一个计算器。这个需要涉及到的问题是,弹出对话框和运行程序的函数未导入,对话框显示的字符串和运行计算器的路径放的位置。对于不设置导入表和不设置数据段的方法,看了一下我测试用的程序,PE头是够写这些的。不过现在要说到写Shellcode就有点跑题了,以后再说,在这里先记一下,虽然在这里用那个会比较简单(前面的内容都可以跳过了),不过相对简单的东西另有自己的一个复杂度,还是换一篇来说比较好。现在用的是设置导入表并把数据放到数据段的方法,这个方法需要设置重定位,有可能需要新建重定位表。那么现在先开始写代码。
测试程序的情况是这样:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值