在elf文件的notes部分修改build-id
modify build-id in the notes section of the elf file
我需要在 ELF 文件的注释部分修改一个 build-id。我看到有很多工具可以读取 elf 但不能修改它们。我找到了 elfedit
,但它似乎没有满足我的需要。有可能吗?
这是readelf
的输出
$ readelf -n myelffile
Displaying notes found in: .note.ABI-tag
Owner Data size Description
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
OS: Linux, ABI: 3.14.0
Displaying notes found in: .note.gnu.build-id
Owner Data size Description
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
Build ID: d75a086c288c582036b0562908304bc3a8033235
我正在尝试修改 .note.gnu.build-id section
。
Is it even possible?
是的。这是比较容易的修改之一,因为注释中的数据完全是任意的,没有其他数据引用它。
你所要做的就是找到.note
部分,依次解码每个音符,直到找到NT_GNU_BUILD_ID
类型的音符,然后用same-length字节的数据覆盖它的数据你的选择。
您是否知道 linker --build-id 0x....
选项允许您在 link 时输入您想要的任何十六进制数据?如果你可以重新link你的二进制文件,那么你就不需要修改build-id注释,因为linker会很乐意在初始link期间将你的数据放在那里.
我需要在 ELF 文件的注释部分修改一个 build-id。我看到有很多工具可以读取 elf 但不能修改它们。我找到了 elfedit
,但它似乎没有满足我的需要。有可能吗?
这是readelf
$ readelf -n myelffile
Displaying notes found in: .note.ABI-tag
Owner Data size Description
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
OS: Linux, ABI: 3.14.0
Displaying notes found in: .note.gnu.build-id
Owner Data size Description
GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring)
Build ID: d75a086c288c582036b0562908304bc3a8033235
我正在尝试修改 .note.gnu.build-id section
。
Is it even possible?
是的。这是比较容易的修改之一,因为注释中的数据完全是任意的,没有其他数据引用它。
你所要做的就是找到.note
部分,依次解码每个音符,直到找到NT_GNU_BUILD_ID
类型的音符,然后用same-length字节的数据覆盖它的数据你的选择。
您是否知道 linker --build-id 0x....
选项允许您在 link 时输入您想要的任何十六进制数据?如果你可以重新link你的二进制文件,那么你就不需要修改build-id注释,因为linker会很乐意在初始link期间将你的数据放在那里.