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