有没有将程序集转换为C++的程序?

blo*_*ood 7 c++

是否有程序将程序集转换为C或C++?我做了很多搜索,但找不到任何有用的东西.有一个名为"Boomerang"的程序; 它看起来很棒,只是想要我想要的,但是当我尝试使用它时,它非常不稳定并且崩溃了.(回旋镖)

有没有其他免费程序可以做到这一点?

Bor*_*lid 0

这不可能。

这是不可能的。

这是凡人无法掌握的。

好吧,除非 C 代码使用嵌入式汇编。但即便如此,也还是有点不确定。

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

  • 有趣的是,对于游戏 Transport Tycoons Deluxe(又名 TTD)来说,这件事已经完成了。是的,它包含大量的“TST %r1”指令。所以?这只是意味着反编译器发出了一个宏。 (3认同)
  • @zoli2k:不,对于任意组装,这是不可能的。C 语言的功能并不是汇编语言功能的松散超集。例如,假设我的程序集由“TST %r1”组成。该指令使处理器步计数器增加 1,但如果我不使用结果,则没有其他效果。没有相当于这条单独指令的 C 代码。还有许多其他示例 - 读取处理器内部寄存器、直接写入 I/O 设备,甚至 HLT 指令。我说的是对的。 (2认同)
  • @zoli2k:一个简单的例子是一个由 10 个 HLT 指令组成的函数。这没有 C 语言的等价物。同上,由 10 个“TST %r1”组成。或者,例如,一个根本没有任何功能的程序(请参阅http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html)。仅仅因为反汇编器可以找到包含指令的“某些”代码的等效项,并不意味着它可以为指令的“所有”用途找到等效项。海报要求的是一个转换器——即可逆映射。 (2认同)