我需要在已编译的ELF文件中更改几个变量。为了清楚地解释这一点,我将使用一个简单的C结构作为示例。
单个源文件被编译并从MyFile.c链接(@ 0x1000)到MyFile.elf:
typedef struct {
uint32_t SerialNumber; /* Increments for every time it's programmed */
uint32_t PartNumber; /* Always the same */
char ProdDateTime[32]; /* "YYYY-MM-DD HH:MM:SS" date/time when programmed */
uint32_t CalcCrc32; /* Checksum of the above data */
} MyData_T;
const MyData_T MyData = {
/* SerialNumber */ 0x11111111,
/* PartNumber */ 0x12345678,
/* ProdDateTime[32] */ "2013-11-10 12:49:30",
/* CalcCrc32 */ 0xC0CAC01A
};
现在,我需要一个“控制台工具”(无需编译):
我还没有找到可以完成第一个(1)任务的工具(objcopy等?)。似乎这应该是一个相当普遍的情况?我现在已经编写了自己的工具,但是希望使用开源工具或类似工具。
任何建议/想法/评论/批评都非常感激:D谢谢!!
“ gdb --write / your / application / binary”应该能够更改初始化数据的值并将其写回到可执行文件。
添加“ -batch”和“ -x command_file”,您应该能够使它执行所需的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句