gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:19:10 26 4
gpt4 key购买 nike

我需要确定二进制文件编译时使用的特定宏的值。

该文件是一个 Linux 共享库文件。

这可能吗?

最佳答案

鉴于宏是由预处理器处理的,即使是实际的编译器也不知道它们。唯一的选择是对 cod 进行逆向工程,找到您知道使用宏的位置并从那里提取值。

编辑: 我刚刚检查了 DWARF 规范,该标准定义了 .debug_macinfo 部分,专门用于存储有关宏的调试信息,该部分包含一个 DW_MACINFO_define 为每个定义的宏记录。

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

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

关于linux - 从已编译的二进制文件中获取宏值(带调试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com