Let*_*_Be 4 linux debugging binary macros decompiling
我需要确定二进制文件用于编译的特定宏的值。
该文件是Linux共享库文件。
可能吗?
假定宏是由预处理器处理的,即使实际的编译器也不知道它们。唯一的选择是对鳕鱼进行逆向工程,找到您知道使用宏的位置,然后从中提取值。
编辑:我刚刚检查了DWARF规范,该标准.debug_macinfo特别定义了部分来存储有关宏的调试信息,该部分包含DW_MACINFO_define每个定义的宏的记录。
因此,如果您具有该库的调试版本,则可以尝试使用dwarfdump -m或readelf --debug-dump=macro提取此信息。
但是:我已经在系统中的一些库上进行了尝试,但是它们都没有包含任何宏记录。默认情况下gcc不发出它们,必须使用该库进行编译gcc -g3(开关会增加调试信息级别)。我想这对您来说是个坏消息。