私は Ocaml に取り組んでおり、把握する必要のあるバイナリがいくつかあります。私が行った最も近い方法は、ocamlcc
.
OCaml コードを逆コンパイルできないことが確実にわかるまでは、C コードをリバース エンジニアリングしたくありません。
質問: 特に OCaml 用に ML コードを逆コンパイルする従来の方法はありますか?
(質問が抽象的でしたら申し訳ありません。)
私は Ocaml に取り組んでおり、把握する必要のあるバイナリがいくつかあります。私が行った最も近い方法は、ocamlcc
.
OCaml コードを逆コンパイルできないことが確実にわかるまでは、C コードをリバース エンジニアリングしたくありません。
質問: 特に OCaml 用に ML コードを逆コンパイルする従来の方法はありますか?
(質問が抽象的でしたら申し訳ありません。)
ディストリビューションのディレクトリdumpobj
からも使用できます。tools
私のUbuntu Linuxに名前でインストールされocamldumpobj
、バイトコードファイルに含まれる指示を次のような形式で出力します。
...
131214 APPLY1
131215 PUSHCONST1
131216 LTINT
131217 BRANCHIF 131225
131219 ACC2
131220 BRANCHIFNOT 131225
131222 ACC3
...
さらに先に進むには、OCaml バイトコードについて学ぶ必要があります。バイトコードには十分な情報が含まれていないため、バイトコードからソース ファイルに移動するツールはありません。
バイトコードまたはラムダコードを印刷しようとしましたか? -dlambda
オプションまたは-dinstr
OCamlを使用できます。
バイナリ プリンターの非常に優れたプロジェクトもあります: ocamlppです。たぶん、あなたは見てみる必要があります。