9

私は Ocaml に取り組んでおり、把握する必要のあるバイナリがいくつかあります。私が行った最も近い方法は、ocamlcc.

OCaml コードを逆コンパイルできないことが確実にわかるまでは、C コードをリバース エンジニアリングしたくありません。

質問: 特に OCaml 用に ML コードを逆コンパイルする従来の方法はありますか?

(質問が抽象的でしたら申し訳ありません。)

4

2 に答える 2

8

ディストリビューションのディレクトリdumpobjからも使用できます。tools私のUbuntu Linuxに名前でインストールされocamldumpobj、バイトコードファイルに含まれる指示を次のような形式で出力します。

...
131214  APPLY1 
131215  PUSHCONST1 
131216  LTINT 
131217  BRANCHIF 131225
131219  ACC2 
131220  BRANCHIFNOT 131225
131222  ACC3 
...

さらに先に進むには、OCaml バイトコードについて学ぶ必要があります。バイトコードには十分な情報が含まれていないため、バイトコードからソース ファイルに移動するツールはありません。

于 2013-03-27T10:03:54.470 に答える
4

バイトコードまたはラムダコードを印刷しようとしましたか? -dlambdaオプションまたは-dinstrOCamlを使用できます。

バイナリ プリンターの非常に優れたプロジェクトもあります: ocamlppです。たぶん、あなたは見てみる必要があります。

于 2013-03-04T09:35:05.560 に答える