2010-07-13 59 views
7

是否有程序可以将程序集转换为C或C++? 我做了很多搜索,但找不到任何有用的东西。 有一个叫做“Boomerang”的程序。它看起来很棒,只是想要我想要的,但是当我尝试使用它时,它非常不稳定并且崩溃。 (boomerang是否有程序将程序集转换为C++?

是否有任何其他免费程序可以做到这一点?

+0

许多重复,例如[是否有反编译器将OBJ转换为C/C++代码](http://stackoverflow.com/questions/669003/is-there-a-decompiler-to-convert-a-obj-into-cc-code) – 2010-07-13 07:45:12

回答

1

这是不可能的。

它不能完成。

这是超出凡人的把握。

那么,除非C代码使用嵌入式汇编。但即使在那里也有一点点。

请注意,反编译器不会“将程序集转换为C”。反编译器尝试近似程序的原始源代码。映射不一定是完美的,并且不可能用于任意组合(再次,除非在结果C中使用内联汇编)。

+0

呃?不,这不会是完美的,但要让它至少有一个更高的水平,所以更容易处理,这仍然是一个好的开始。 – mpen 2010-07-13 05:36:05

+1

-1反编译代码的维护可能很困难,但可以完成。 – zoli2k 2010-07-13 05:40:17

+1

@ zoli2k:不,对于任意组装,无法完成。 C的功能不是汇编语言的超集。例如,假设我的程序集由“TST%r1”组成。该指令使处理器步计数器增加1,但如果我不使用结果,则没有其他影响。没有C代码等同于这个单独的指令。还有很多其他示例 - 读取处理器内部寄存器,直接写入I/O设备,甚至是HLT指令。我说的是对的。 – Borealid 2010-07-13 05:43:45

1

有能够做转换就像从ASM Regolix翻译到C和Datatek转换ASM到C/C++/COBOL/C#几个工具。但是,我认为转换代码的维护可能会有问题。

+0

是的,我看着这两个Relogix我不明白,我认为它的内置和idk如何使用它。和数据您必须支付它。我看了但我没有看到有关下载的任何内容,你必须打电话给他们谈论购买。 – blood 2010-07-13 19:36:29

2

你要找的是一个反编译器。

你最终会得到比ASM资源更好的东西,我敢肯定你最终会用C而不是C++。

+0

我不认为我想要一个反编译器,我有汇编代码,但我想它变成了C++。 – blood 2010-07-13 19:40:42