我有一个情景,想要为我的用户提供一种实用程序来创建压缩自解压可执行文件(类似于UPX但具有其他属性)。
目前的方法是通过压缩可执行文件,然后生成包含一个字节数组的c源代码来完成的:
#include "exdata.c"
exdata.c:
const unsigned char compressedData[] = { 0x28,0xB5... }
const size_t uncompressedSize = 3697664;
问题在于我想能够更改这个字节数组,而不需要重新编译程序,以使我的用户可以使用该实用程序,而无需安装C编译器。
我可以使用“占位符”字节数组,在编译后的二进制文件中找到该值并将其替换为实际数据吗?或者我可以将数据添加到自定义“段”中,然后只修改那个部分?
编辑:我发现了一个名为lief的Python库,似乎可以修改段落内容,但是修改比已有数据更多的段落似乎非常复杂,因为所有其他段落和地址+偏移量都需要处理。