我正在使用Python和pefile库使用PE二进制文件 . 为了从二进制文件中读取信息并重写某些字节,这个库可以很好地完成它 . 但现在我想完全删除文件中的一个部分 .
我该怎么办?我找到的关于此任务的唯一代码是http://goo.gl/YYl5Vb函数 pop_back()
. 但是这段代码只删除了最后一部分,而我需要删除任何部分 .
我想,我可以删除原始部分数据
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是我要删除的部分 .
但是,我如何修复节 Headers ?如果我自己开始使用单个头字节进行修改,我认为我不会做对 . 在pefile库中是否有一些支持?还是一些代码,比我更有能力的人写的?
提前致谢!
1 回答
你有
pop_back()
函数的源代码,只需修改它以满足你的需要:您可以按原样将该函数添加到类
SectionDoubleP
,或者只在SectionDoubleP
对象上使用显式self调用它:在后一种情况下,我会选择一个比_1334009更好的名字,但:)