脆弱なプロセスが、このプロセスで使用されるすべてのインポートされたモジュールに対してASLRおよびDEPでセットアップされており、aslrフリーのモジュールを見つける方法がないと仮定します。さらに、プロセスはJITによって使用されないため、JITスプレーは範囲外であり、ヒープオーバーフローを引き起こすためにヒープが使用されていません(スタックベースのバッファーオーバーフローです)。
そのscenerioをどのように倒すことができますか?
コードセグメントとも呼ばれるテキストセグメント には、ASLRによってランダム化されないアプリケーションの静的機能が含まれます。エクスプロイトはメモリのこの領域のどこにでも確実に飛び込むことができ、攻撃者は ROPガジェット のチェーンを構築することができます。 ROPチェーンの最も一般的な目標は、シェルコードを実行するための安定した環境をセットアップすることですが、それだけがROPの用途ではありません。
さらに、pwn2ownは他の多くのバイパスを考え出しました。すべてのpwn2ownの後に公開されている詳細なペーパーを読むことを強くお勧めします。 私のお気に入りのエクスプロイトの1つは、ヒープオーバーフローを使用してASLRされたメモリアドレスを読み取ります 。