今日、IDA Pro を使用して、ビジュアル C++ で記述された単純な「Hello world」プログラムを逆コンパイルすることにしました。
私の以前の知識では、実行可能エントリ ポイントで printf への即時呼び出しを見つけることはできないと確信していましたが、その通りでした。私が書いたのではなく、コンパイル プロセス中にコンパイラによって追加された多くのコードを見つけました。
コンパイル プロセス中にどのようなコードが追加されるかについて、理解を深めたいと思います。それは何をするためのものか?「メイン」をすばやく見つけて、逆アセンブルによって生成された不要なコードをすべてスキップする「トリック」はありますか?
私が見つけた最高のものは、http: //www.codeproject.com/Articles/4210/C-Reverse-Disassemblyの投稿で、Visual C++ を使用してコンパイルされた実行可能ファイルの実行順序は次のとおりであると述べています。
CrtlStartUp
主要
Crtlクリーンアップ
より詳細な回答をいただけますか?