2016-10-24 2 views
-3

私はASMコードのセクションを持っています。これは古い実行可能ファイルからのサブルーチンです。これを共有ライブラリにするか、Cコードを使用して、ソフトウェアの新しい書き換えバージョンに組み込むことができます。私はもはや元のソースコードにアクセスすることはできません。残念なことに、これを試みたり、大規模な関数全体を最初から書き直したりします。抽出されたASMコードをコンパイルしてデコンパイルできるようにしますか?

私はIDA/Hex Raysのようなソフトウェアにアクセスできますが、バイナリを最初に逆コンパイルすることができない限り、ASMを擬似コードに変換しないという問題があります。私はバイナリを持っていません - 私はASMコードを持っています。 ASMをバイナリにコンパイルすることはできません(むしろ、その方法はわかりません)。

ASMコードのセクションをコンパイル済みバイナリに変換する簡単な方法はありますか、バイナリを最初に逆コンパイルする必要はありません。

+1

私はあなたが*アセンブラが必要だと思うですBomerangプロジェクトで見たいと思うかもしれません* – fuz

+0

どのオペレーティングシステムをあなたがオンになっていますか。?ターゲットプラットフォームとは何ですか?アセンブラ形式とは何ですか? –

+0

通常、それらをリンクする前に.objに.Cコードをコンパイルします。アセンブラを使用すると、.ASPコードを.objにコンパイルして、同じ方法でリンクすることができます。.Bjsを.Cと.ASMから混ぜ合わせても、リンカはそれが何の原因であるかを気にしません。 – Tommylee2k

答えて

1

あなたはどのプラットフォームを使用しているかは言及していませんが、Linuxにアクセスできると仮定すると、(1)(https://linux.die.net/man/1/as)としてASMをコンパイルできます。

ところで:あなたは、オープンソースの逆コンパイラhttp://boomerang.sourceforge.net/

+0

1)これはコメントであり、答えではありません。 2)同じマシンであってもアセンブラ・コードは、異なるアセンブラ・プログラム間で必ずしも互換性がありません。 HLLのような標準的な構文はありません。 – Olaf

+0

@Olaf OPの質問は、この重要な情報(彼が必要とする組み立て方)が不足しているため、悲しいかなか答えることができません。 – fuz

+1

"OPの質問は、この重要な情報が欠けているため、悲しいほど答えることができません" - 明確にするためにコメントを残して、おそらく "不明確"とCVedしていたはずです。ルールをもう一度お読みください。 – Olaf

関連する問題