質問

毎cプログラムに変換される機コード場合、このバイナリを配布します。らの命令セットコンピュータを説明していますが、可能で、Cオリジナルプログラム?

役に立ちましたか?

解決

できませんので、正確な同源がありませんのメタデータが保存されると、コンパイルされたコードです。

がんなどにより再現することができコードの組み立て-コードです。

チェック本書はだれのもの: 逆:秘密のリバースエンジニアリングに対.

編集

一部のコンパイラ-101のこんだように定義するコンパイラを、別の単語としてではなく技術として"compiler"をしているところです。

回答: 翻訳者

コンパイラを変換し、書式を書いた他の言語は、Cコンパイラを変換し組み立てにも機械のコードです。C#コードであるILいます。

実行きは単なる翻訳のオリジナルのテキスト/書式としたい場合は"逆さま"と"翻訳で"性能に著しい変化は見られないと同じ構造だったのが始まります。

しっかり生活することができますから英語へドイツ語、ドイツの裏に、英語のsentance構造が異なって、その言葉が用いられ"おかえりなさい"というコンテキストのが変更されません。

でも同じようなことがありますコンパイラ/翻訳者だからCへのASMの論理は同じでも異なる方法を持っていないこと、そしてもちろんの最適化).

他のヒント

それはあなたが、元のCプログラムによって何を意味するかに依存します。ローカル変数名、コメントなどのようなものが...バイナリに含まれていないので、バイナリを生成するために使用されるものとまったく同じソースコードを入手する方法はありません。このよう IDA Proののなどのツールが、あなたがバイナリを逆アセンブル役立つかもしれません。

私は一日あたりのマシンコードのおよそ1キロバイトで本当に熟練したハッカーの変換率をguestimateでしょう。一般的な西洋の給与で、それはおよそ$ 25,000百キロバイトの実行可能ファイル、たとえば、の価格を置きます。その多くのお金を過ごした後、得だすべてのことは、あなたがいない、まさにCコードの塊、マイナスコメントやその他もろもろの利点があります。それはあなたがはるかに速く更新と改善をもたらすことができるでしょう、あなたのバージョンと競合方法はありません。逆にこれらの更新をエンジニアリングすることは非自明な努力も同様である。

その値札があなたを感動されない場合は、

、あなたは任意のより多くのコードを追加することにより、変換コストを上げることができます。ただ、このような大規模なプログラムに取り組むことができ、熟練ハッカーが行うにはより良いものを持っていることに注意してください。彼らは、独自のコードを記述します。

私が知っているこのトピックで最高の作品の一つは、次のとおりです。

豚のソーセージから?フェルマーを介して、アセンブラからCへのリエンジニアリング。

の主張はあなたが元のasmコードはCで書かれていなかった場合でも、合理的なCプログラムを取り戻すです!注意事項の多くが適用されます。

六角-レイズのデコンパイラ(プロIDAへの拡張)を正確にそれを行うことができます。それはまだかなり最近と今後のが、大きな期待を示したのです。それに慣れる少しかかりますが、潜在的に反転させるプロセスをスピードアップすることができます。それは、「銀の弾丸」ではありません - 。何のCデコンパイラはありませんが、それは大きな資産だ。

この手順のための共通の名前は「牛に戻すハンバーガーを回す。」されますこれは、機能的に同等のCプログラムにエンジニアバイナリコードを逆にすることも可能ですが、そのCコードがオリジナルに近い似ているかどうかは未解決の問題です。

これは研究活動で行うツールに取り組みます。つまり、(デバッグシンボルが存在しない限り、あなたは、例えば、ローカル変数名を回復しません)簡単な例で何かを取得することが可能です。プログラマがそれを困難にすることを決めていた大規模なプログラムのためかどうかは、実際にはほぼ不可能です。

可能性1つのCプログラムは、異なるコンパイラまたは異なる設定で異なる結果にコンパイルすることができる)、時にはCの二つの異なるビット - Cプログラムと、それが生成するASM /マシンコードの間の1マッピング:

があり1ではありません同じマシンコードを生成する。

あなたは間違いなく<全角> のコンパイル済みのEXEからCコードを生成することができます。あなたはちょうどそれが元のコードになりますどのように類似した構造で知ることができない - 変数/関数名が失われて離れてから、私はそれは、コードが多くのファイルの間で分割されたオリジナルの方法を知っていないと仮定

あなたはそれが99%の精度でCにアセンブリコードを逆コンパイルすることができ、本当に素敵な逆コンパイラを持って、hex-rays.comを試すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top