下你所需,载你所想!
汇集开发技术源码资料

PE文件注入/可以注入文件和硬盘偏移一样

:182.225KB :1 :2019-12-27 14:10:59

部分简介

用文件注入的方式注入硬编码,硬编码内容大致为push四个空给messagebox.写在第一个节与第二个节之间的空白地方。

然后修改程序入口指向新增的代码地方,然后jmp回原来的入口点。但是最后发现个问题,就是当文件偏移和内存偏移一样的时候可用,不一样的时候不知道怎么算了。

参_可选头开始 = 参_可选头开始 + 1
参数_入口点开始地址 = 参_可选头开始 + 16
结果 = 字节集_取指定位置字节集 (文件, 参_可选头开始 + 16, 4)
文本 = 字节集_字节集到十六进制 (结果)
参数_入口点 = 位置调换 (文本)

代码开始 = 参数_文件偏移 + 参数_对齐前长度
测试 = 进制_十到十六 (代码开始)
代码内容 = 字节集_十六进制到字节集 (“6A006A006A006A00”)
long = 取字节集长度 (代码内容)
E8后 = 代码开始 + long
测试 = 进制_十到十六 (E8后)
E9后 = E8后 + 5
测试 = 进制_十到十六 (E9后)
E8_zhen = dizhi - E9后 - 4194304
测试 = 进制_十到十六 (E8_zhen)
E8转换后 = 位置调换 (测试)
E9_zhen = 进制_十六到十 (参数_原入口点) - E9后 - 5
测试 = 进制_十到十六 (E9_zhen)
E9转换后 = 取文本右边 (测试, 8)
E9转换后 = 位置调换 (E9转换后)
代码内容 = 代码内容 + 字节集_十六进制到字节集 (“E8”) + 字节集_十六进制到字节集 (E8转换后)
代码内容 = 代码内容 + 字节集_十六进制到字节集 (“E9”) + 字节集_十六进制到字节集 (E9转换后)
long = 取字节集长度 (代码内容)
文件 = 字节集_替换 (文件, 代码开始 + 1, long, 代码内容)
测试 = 位置调换 (补零 (进制_十到十六 (代码开始)))
point = 字节集_十六进制到字节集 (测试)
' =======================以下修改程序入口点
文件 = 字节集_替换 (文件, 参数_入口点开始地址, 4, point)
' 字节集_替换 (参数_原始文件, 代码开始, 取字节集长度 (代码内容), 代码内容)
写到文件 (“C:\Users\苏鹏\Desktop\test.exe”, 文件)

PE文件注入/可以注入文件和硬盘偏移一样

热门推荐

相关文章