【问题标题】:use llvm to implement a arm disassembler使用llvm实现一个arm反汇编器
【发布时间】:2013-04-24 13:20:22
【问题描述】:

最近,我想分析一些在 android 中的库。 但是arm assembler很难理解,所以我想用llvm来实现一个反汇编器 我在这里找到有关此主题的文档:http://llvm.org/docs/MarkedUpDisassembly.html#instruction-annotations 和一个cpp文件在这里http://llvm.org/docs/doxygen/html/ARMDisassembler_8cpp_source.html 然后使用一些规则将汇编代码翻译成c代码。

【问题讨论】:

    标签: llvm disassembly


    【解决方案1】:

    LLVM 中没有任何东西可以帮助您将汇编转换为 C 代码。 LLVM 提供的反汇编功能可以将其支持的目标的机器代码(二进制文件)反汇编成汇编。

    此外,如果您发现程序集难以理解,我应该说您可能不会理解生成的 C 代码。由反编译工具(将汇编转换为 C 的常用名称)创建的 C 代码可读性不强,无论如何您必须具备很强的汇编语言知识才能理解它。

    【讨论】:

    • 对不起,我可能无法清楚地表达我的意见。我想使用 LLVM 反汇编 arm 二进制文件,然后使用我的规则将程序集转换为 c 代码。我有一些规则可以帮助我将程序集转换为 c 代码,只需使用 LLVM 反汇编 arm 二进制文件。
    • @tfzxyinhao:如果你想使用 LLVM 将机器代码反汇编成汇编,请使用 llvm-mc 工具(例如阅读这里的描述 - blog.llvm.org/2010/01/x86-disassembler.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2011-03-12
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多