从可执行文件手动删除.reloc
2015-12-07 23:05
344 查看
从可执行文件手动删除.reloc
#include "windows.h" int main(int argc, char* argv[]){ if (argc != 3) { return 0; } if (strncmp(argv[1], "-r", 2) == 0) { DeleteFileA(argv[2]); } return 0; }
以上代码Visual Studio编译为可执行文件Deletefile.exe。PEView查看PE如下截图:
遵照《逆向工程核心原理》以下四步操作:
1.整理reloc节区头
2.删除.reloc节区
3.修改IMAGE_FILE_HEADER
4.修改IMAGE_OPTIONAL_HEADER
如下图,通过PEView可知.reloc节区自1800开始。从用十六进制编辑器WinHex从1800开始删除到文件尾部。
修改IMAGE_FILE_HEADER主要是修改number of section
删除一个.reloc故而修改为4.
修改IMAGE_OPTIONAL_HEADER,如下截图,size of row data = 400H,而section alignment为1000,故而size of image减去1000H
修改删除之后可执行文件Deletefile_deletereloc.exe,大小较原来大小7168字节少400H(即1024字节)
相关文章推荐
- UltraISO PE V8.6.1.1985_绿色多国语言版_光盘映像制作 下载 附注册码
- linux LVM快照创建详细步骤(使用PE完成)
- Win PE下安装 Win 7
- PE文件结构(五)
- PE文件结构(六)
- 自己制作Windows PE工具盘
- 深山红叶PE工具箱嫦娥一号纪念版 V30[1115]
- 部署Vista – 第10部分:理解Windows预安装环境
- 部署Vista – 第11部分:使用Windows PE
- PE文件捆绑原理及源码
- 解决pe安装win7系统出现的不能安装问题
- pe背景图片修改工具
- kb953700:使用单个CPU改善windowsPE2.x性能
- 2015-08-17
- PE格式
- <MEMORY>Project Euler NO.12
- <MEMORY>Project Euler NO13
- <MEMORY>Project Euler NO14
- <MEMORY>Project Euler NO15
- <MEMORY>Project Euler NO16