質問

Cにプログラムの逆コンパイルを送ってくれた人がいます。非常に優れた逆コンパイルで、ほとんど読みやすいCコードを生成しました(変数や関数に人間が読める名前がないという事実を見逃した場合)ほとんどが実際にコンパイルされるように見えました。

しかし、1つの大きな問題がありました。彼が逆コンパイルしているプログラムがDelphiで書かれていることを偶然知っています。これはCに翻訳するのが難しい概念でいっぱいです。しかし、逆コンパイラの出力に本当に感銘を受け、不思議に思いました。 Delphiでそれを行うことができるものはありますか?

Delphiで見た中で最高の逆コンパイルツールはDeDeです。多くのことを実行できますが、出力としてObject Pascalコードを生成しようとさえしません。また、Delphi 6以降は更新されていません。

役に立ちましたか?

解決

Pascalコードを生成するマシンコードデコンパイラはないと思います。ほとんどの「Delphiデコンパイラ」フォームとRTTIデータを解析しますが、実際にはマシンコードを逆コンパイルしません。 DeDe(または同様のソフトウェア)のようなもののみを使用して抽出することをお勧めしますシンボル情報をCデコンパイラと組み合わせて、デコンパイルされたCコードをDelphiに変換します(多くのソースコードコンバーターがあります)。

他のヒント

IDR を使用できます。デルファイを逆コンパイルするのに最適なプログラムであり、現在のデルファイバージョンであり、多くの機能を備えています。

リストは次のとおりです。 http://delphi.about.com/od/ devutilities / a / decompiling_3.htm (およびこのページにはさらにいくつかの言及があります: http:// www.program-transformation.org/Transform/DelphiDecompilers

DeDeを使用したことがありますが、実際にはそれほど強力ではなく、現在のDelphiバージョン(最新バージョンはDelphi 7であると信じています)で最新ではありません

Delphi、C、C ++などの言語は、プロセッサ固有のマシンコードにコンパイルします。出力実行可能ファイルには、メタデータがほとんどまたはまったくありません。これは、メソッド名、メソッドパラメーター、クラスと名前空間、およびその他のメタデータを保持する、オブジェクト指向のプラットフォームに依存しないバイトコードにコンパイルされるJavaまたは.Netとは対照的です。

したがって、DelphiまたはCコードで実行できる有用な逆コンパイルははるかに少なくなります。 ただし、Delphiは通常、プロジェクト内のすべてのフォームのフォームデータ($ R * .dfm行で生成)を埋め込み、公開されているすべてのプロパティのメタデータも持っているため、Delphi固有のツールでこの情報を抽出できます。

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