Delphi を逆コンパイルする
セクション 1 リバースエンジニアリングについて
逆コンパイルしますか?逆行する?復号化しますか? (逆コンパイル?逆変換?クラッキング?)
簡単に言うと、逆コンパイルはコンパイル プロセスの逆の処理であり、実行可能ファイルを高級言語に変換します。 Delphi プロジェクトのソース プログラムを紛失し、実行可能ファイルだけが残っている場合: ソース プログラムが利用できなくなった場合は、リバース エンジニアリング (逆コンパイル) が役立ちます。
はい、「ソース プログラムが利用できません」ということは、他のプログラマが開発した Delphi プロジェクトを逆コンパイルできるという意味ですか?まあ、正しいか間違っているか...
真の逆コンパイルは可能でしょうか? (真の逆コンパイルは可能ですか?)
いいえ、もちろんそうではありません。完全に自動化された逆コンパイルは不可能です。元のコードを正しく再構築できる逆コンパイラーはありません。
Delphi プロジェクトがコンパイルおよびリンクされてスタンドアロンの実行可能ファイルが生成されると、プログラムで使用される名前のほとんどがアドレスに変換されます。名前が失われるということは、逆コンパイラがすべての定数、変数、関数、およびプロシージャに対して一意の名前を作成する必要があることを意味します。逆コンパイルがある程度成功したとしても、結果として得られる「ソースコード」は変数名や関数名の本来の意味を欠いています。
元のプログラミング言語の構文が実行可能ファイルに存在しないことは明らかです。したがって、逆コンパイラが実行可能ファイルの連続した機械語命令を翻訳し、元の言語命令を判断することは非常に困難です。
なぜ、いつ使用するのか (なぜ、いつ使用するのか)。
リバース エンジニアリングは、次のようないくつかの理由で使用されます。
これは合法ですか? (これは合法ですか?)
リバース エンジニアリングは復号化ではありませんが、この 2 つの間に明確な線を引くことは困難です。コンピュータ プログラムは著作権法および商標法によって保護されています。国が異なれば、著作権所有者の権利の解釈も異なります。最も一般的な説明は、次の状況では逆コンパイルが問題ないというものです。
より分かりやすく説明するため、インターフェースの説明は利用できなくなりました。 エラーを修正するためでしたが、著作権所有者が修正することはできませんでした。 プログラムの一部が保護されているかどうかを判断するためでした。もちろん、特定のプログラムの実行可能ファイルを逆アセンブルできるかどうかわからない場合は、注意するか、弁護士に相談する必要があります。
注: Delphi をハッキングする方法、キー ジェネレーター、または単なるシリアル番号を探している場合は、間違った場所を探しています。ここに書いたり提示したりするものはすべて、研究と教育のみを目的としていることを確認してください。