1

如何从头开始为 linux 编写一个简单的反汇编程序?有什么库可以使用吗?我需要一些“正常工作”的东西。

4

4 回答 4

8

与其写一个,不如试试Objdump

根据您的评论以及您从头开始实施的愿望,我认为这是一个学校项目。您可以获取 objdump 的源代码并查看它使用了哪些库和技术。BFD库可能有用。

于 2009-07-08T22:58:55.587 回答
5

您必须先了解ELF 文件格式。然后,您可以根据您的架构的操作码开始处理代码的各个部分。

于 2009-07-08T23:00:34.853 回答
1

您可以使用 libbfd 和 libopcodes,它们是作为 binutils 的一部分分发的库。

http://www.gnu.org/software/binutils/

作为这些库的强大功能的一个示例,请查看 Online Disassembler (ODA)。

http://www.onlinedisassembler.com

ODA 支持多种架构并提供基本功能集。您可以在实时视图中输入二进制数据并在您键入时观看反汇编,或者您可以上传文件进行反汇编。该站点的一个不错的功能是您可以与其他人共享反汇编链接。

于 2013-10-05T03:17:19.733 回答
0

你可以看一下ERESI的代码

ERESI 逆向工程软件接口是一个多架构二进制分析框架,具有用于逆向工程和程序操作的定制领域特定语言。

于 2009-07-12T10:52:22.037 回答