Return Oriented Programmingを使用するエクスプロイトは、常にライブラリ内のガジェットを見つけることに気づきました。実行可能ファイル(.exe)自体からガジェットを使用できるかどうか疑問に思います。
その理由は、「ライブラリは非常に一般的であり、すでにスキャンされているため、ライブラリの命令シーケンスを使用するのが最も簡単である」と考えています。
Microsoftが提供するCランタイムライブラリファイルはほんの一握りです。それらが完全な十分な命令セットを提供する場合、なぜもっと一生懸命働くのですか?
はい、もちろん、実行可能ファイル自体からのガジェットを使用することは可能です。プログラムのアドレス空間に実行可能形式でマップされている任意のコードを使用できます(つまり、コードを実行できる場合-システムがDEPを使用している場合、実行不可能なビットが設定されているものはすべて除外されます)。これには、元の実行可能ファイル、メモリにロードされるライブラリ、およびアクセス許可が実行可能に設定されているメモリ内の他のすべてのものが含まれます。