我一直在搜索很多,但还没有找到一种方法从ELF可执行文件中提取函数原型,至少是参数类型和返回类型。使用GNU BinUtils或任何其他方法。
我尝试在readelf,nm和objdump中使用不同的选项,它们列出符号和函数名称,但是如何知道函数的参数类型和返回类型?
我有一种直觉,应该有办法去做,有人可以对此有所了解吗?
主机:Windows 7
目标:用于PowerPC架构的精灵
答案 0 :(得分:10)
假设您的二进制文件是使用调试信息构建的,您可以通过读取readelf -wi
将转储的DWARF调试格式来获取函数类型,参数类型等。
如果你的二进制文件是由IBM的编译器生成的,那么它可能有(较旧的)STABS调试信息,你可以使用objdump -g
进行转储。
如果您的二进制文件不有调试信息,那么您无法获取您正在寻找的信息 - 它就不存在了。