【发布时间】:2014-04-19 11:14:20
【问题描述】:
我正在使用 Python 和 pefile 库处理 PE 二进制文件。为了从二进制文件中读取信息并重写某些字节,这个库做得很好。但是现在我想从文件中完全删除一个部分。
我该怎么做?我发现的有关此任务的唯一代码在函数pop_back() 中http://goo.gl/YYl5Vb。但是这段代码只删除了最后一部分,而我需要能够删除任何部分。
我想,我可以用类似的东西删除原始部分数据
dead_sect_start = dead_sect.PointerToRawData
dead_sect_ed = dead_sect.PointerToRawData + dead_sect.SizeOfRawData
pe.__data__ = pe.__data__[:dead_sect_start] + pe.__data__[dead_sect_end:])
其中 pe 是我解析的二进制文件,而 dead_sect 是我要删除的部分。
但是,如何修复节标题?如果我开始自己处理单个标头字节,我认为我不会做对。 pefile 库中没有对此提供一些支持吗?或者一些代码,比我更有能力的人写的?
提前致谢!
【问题讨论】:
标签: python reverse-engineering portable-executable