将 ARM 汇编反编译回 C

问题描述 投票:0回答:4

几年前我编写了一个很好的 ARM 汇编程序例程,多年来它在其设计的 ARM 嵌入式系统上完美地完成了它的工作。现在,是时候将其移植到非 ARM 系统上了,我想知道是否有工具或某种方法可以获取我原始的 ARM 汇编器源代码并从中获取基本的 C 文件。我可能可以在几天内自己完成,但如果有一个起点那就太好了。如果应用程序或方法是免费的就更好了:)

有什么建议吗?

c assembly arm decompiler
4个回答
3
投票

IDA Pro 的 Hex-Rays Decompiler 插件可以反编译 ARM。它有点贵,所以如果您只需要一种常规,可能不是最好的选择。


2
投票

不幸的是我不知道这样的工具...那就太好了...; )

所以我能给出的唯一建议就是专注于逻辑。

您编写了汇编代码。所以你知道编码应该做什么。即使使用 ARM 汇编,将其转换为 C 代码也不应该那么困难。

我的意思是,将 C 移植到 ARM 汇编可能是一项艰巨的任务。但对于相反的选项,如果你知道代码逻辑,并且知道如何编写 C,应该就可以了...

创建 C 结构以简化您正在使用的内存区域。关于算法,它们不会改变。只需借助一些结构等,将您正在做的事情从汇编语言转换为 C 语言...

抱歉我能给你这样一个工具...

祝你好运:)


0
投票

您可以使用radare2反编译插件(

r2dec
),它将asm转换为伪C。但我认为手动转换非常有趣。


0
投票

有几个反编译器可以将 Arm 和 Arm 64 位代码逆向为 C。除了前面的回复中提到的之外,另外两个专业选项是:

  • JEB Pro:商业版(存在免费社区版,但仅提供 x86 反编译器),通常具有很好的效果,特别是在反混淆和清理受保护代码方面。
  • GHIDRA:免费/开源,由 NSA 开发,速度快,结果也可靠,尽管代码不一定像 JEB 那样彻底清理。
© www.soinside.com 2019 - 2024. All rights reserved.