gpt4 book ai didi

c++ - 为类似 nm 的命令编写代码 [C++]

转载 作者:太空狗 更新时间:2023-10-29 12:08:05 25 4
gpt4 key购买 nike

出于对逆向工程的好奇,我正在考虑编写一个简单的程序(使用 C++),它将可执行文件作为输入并生成作为该可执行文件源程序一部分的所有函数的名称。

关于我应该如何去做的任何指示?

将不胜感激循序渐进的方法!

编辑:
平台 linux 和我关注 a.out格式化可执行文件。

最佳答案

很大程度上取决于您的平台和您正在检查的代码的来源。如果你想从中获取函数名,你需要一个你正在反转的二进制文件的符号表。有时该表嵌入在二进制文件中(例如 DLL 中的导出查找表),但很多时候信息根本不存在。

对此没有通用的解决方案。您需要至少将问题缩小到特定平台,最好是特定目标二进制类型。

编辑:好的,根据您提供的规范,我猜测您可能实际上关心的是ELF。二进制文件而不是旧的 a.out格式,这是相当不常见的。 “a.out”仍然是 GCC 链接器的默认输出名称,但实际的 a.out 二进制格式在 Linux 中已经很长时间没有普遍使用了。

ELF structure 有许多很好的演练在线可用,一些快速搜索出现了 ready-made example of reading the ELF .symtab

希望这对您有所帮助。

关于c++ - 为类似 nm 的命令编写代码 [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570959/

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