【发布时间】:2021-07-10 10:31:21
【问题描述】:
有没有办法将*.out 可执行的Ocaml 文件完全或部分反编译成源代码?
【问题讨论】:
标签: ocaml decompiling
有没有办法将*.out 可执行的Ocaml 文件完全或部分反编译成源代码?
【问题讨论】:
标签: ocaml decompiling
OCaml 编译为本机代码,我知道没有反编译器可以将二进制文件反编译为 OCaml。所以在实践中答案是否定的。但是,当然,您可以自己编写反编译器。不过,这不是一件容易的事。
【讨论】:
简短的回答是“不”。 OCaml 没有什么比使用任何其他语言更容易做到这一点。没有标准的 OCAML 工具可以做到这一点,我也不希望有。
我不清楚您所说的*.out 是什么意思。您是在谈论本机可执行文件还是字节码可执行文件?有一个有时名为ocamldumpobj 的工具可以转储 OCaml 字节码文件的代码。这看起来不像源代码,但它至少是代码以略微抽象的形式表示。
对于本机可执行文件,您真的不能期望太多。原始源代码经过了很多很多(不可逆的)转换。您可以使用反汇编程序查看机器代码。同样,这看起来一点也不像源代码。
【讨论】:
a.out。
*?如果是这样,a.out 是一个本机可执行文件(因此,恕我直言,根本不能反编译)。