写入COFF对象文件
cough的Python项目详细描述
用于生成COFF对象文件的库。
教程
从objectmodule类开始:
module = ObjectModule()
现在,让我们创建一个“.text”部分:
section = Section(b'.text', SectionFlags.MEM_EXECUTE)
添加一点代码:
section.data = b'\x29\xC0\xC3' # return 0 section.size_of_raw_data = len(section.data)
很好,我们将其添加到我们的模块中:
module.sections.append(section)
要使用该位代码,我们需要一个导出的符号:
main = SymbolRecord(b'main', section_number=1, storage_class=StorageClass.EXTERNAL)
将值设置为节中的偏移量:
main.value = 0
并将其添加到我们的模块中:
module.symbols.append(main)
够了,我们将模块写入一个文件:
with open('test.obj', 'wb') as obj_file: obj_file.write(module.get_buffer())