📄 insertcode.txt
字号:
PE可执行文件的镶入式程序的编写方法及示例(镶入式后门程序&原程序)
由于Microsoft公司的Windows系统是当前大部分个人电脑所使用的操作系统
主要包括win95,98,me,nt4,2000,xp等,而这些系统所使用的可执行文件的格式基
本上是PE结构的。这里的可执行文件的镶入式程序就是针对PE结构的可执行文件。
这里先简单说一下PE文件框架结构:
DOS MZ header
DOS stub//在不支持 PE文件格式的操作系统中它将简单显示一个错误提示
PE header//含了许多PE装载器用到的重要信息
Section table//每个Section的信息
Section 1
Section 2
Section 3....
由于SectionAlignment 块对齐的原因每个Section之间都会产生很多空间,
镶入式程序的代码可以放在Section之间的空位上,比较方便的方法是把代码放在
最后一个Section的末尾,然后更改Misc.VirtualSize和SizeOfRawData这两个位
于Section table的IMAGE_SECTION_HEADER结构数组的成员。如果代码十分的长,
有时候会造成镶入的代码无法被完全加载而产生错误,这时需要更改SizeOfImage
在IMAGE_NT_HEADERS 结构中。
在不同的WINDOWS版本中api调用地址也有不同,为了解决这个问题可以更改引
入表让加载器自动加载,也可以在内存中搜索KERNEL32.DLL模块地址和API函数 Ge
tProcAddress地址,然后用这个函数加载其他api函数(在绿盟中有文章详细的介绍)
在这里我使用后面一种方法。
首先用后面一种方法编写出镶入式后门程序code.exe(实现绑定cmd.exe或comma
nd.com功能)然后提取相关的代码把它做成\x00\x00的格式,拷贝到insertcode.cpp
的code[]下。由insertcode.cpp把代码镶入指定PE可执行文件中。
insertcode.exe //运行后将向指定的PE可执行文件镶入绑定cmd.exe或command.c
om功能的代码tcp 2000。使用: insertcode 文件名
insertcode.cpp //insertcode.exe的原代码
code.cpp //由搜索内存方法实现绑定cmd.exe或command.com功能的原代码
code.txt //code \x00\x00的格式
addlcode.cpp //由搜索内存方法实现加载mydll中的mybegin函数,而mybegin函
数也是实现绑定cmd.exe或command.com功能,这样做能够大大
减少镶入的代码,对于编写dll也比较容易
addlcode.txt //addlcode \x00\x00的格式
mydll.dll //开两个线程一个返回,另一个后门
mydll.cpp //mydll.dll原代码
以上是用两个步骤来实现这个功能。当然也可以一步实现这个功能,把两个程序编写
到一起。
如果有什么问题和建议可以和我联系:nongmin.cn@yeah.net
相关下载:http://home.dqt.com.cn/~nongmin/insertcode.zip
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -