系统相关
首页 > 系统相关> > linux – 从已编译的二进制文件中获取宏值(带调试)

linux – 从已编译的二进制文件中获取宏值(带调试)

作者:互联网

我需要确定二进制编译的特定宏的值.

该文件是Linux共享库文件.

可能吗?

解决方法:

鉴于宏是由预处理器处理的,即使实际的编译器也不知道它们.唯一的选择是对鳕鱼进行反向工程,找到你知道使用宏的地方并从中提取值.

编辑:我刚刚检查了DWARF规范,标准定义了.debug_macinfo部分,尤其是存储有关宏的调试信息,此部分包含每个已定义宏的DW_MACINFO_define记录.

因此,如果您有库的调试版本,则可以尝试使用dwarfdump -m或readelf –debug-dump = macro来提取此信息.

但是:我已经在我的系统中的几个库上尝试过,并且它们都没有包含任何宏记录.默认情况下,gcc不会发出它们,必须使用gcc -g3编译库(交换机会增加调试信息级别).我想,这对你来说是个坏消息.

标签:linux,macros,debugging,binary,decompiling
来源: https://codeday.me/bug/20190621/1254777.html