文字列argv[1]
を取得し、sprintf
を使用して有限のバッファにコピーするCプログラムがあるとします。従来のスタックバッファオーバーフロー。プログラムがもっと複雑で、ROPのようなテクニックが可能だとさえ言ってみましょう。
ただし、スタックカナリア/セキュリティCookieを使用してコンパイルされ、ASLRとDEPを使用してOS上で実行されます。
その後、任意のシェルコードを実行する機会は0に近づきませんか?
場合によります。
DEPは、esp
にジャンプしてそこでコードを実行することをブロックします。 ASLRは、ここでバイパスする重要な重要事項です。
これを行うことができるかもしれないいくつかの方法があります:
shdoclc.dll
と一緒にロードされるシェルハンドラー。VirtualAlloc
パラメータが設定されたlpAddress
)