バッファーオーバーフローで関数を実行してしまう実験
次のプログラムを見てください。
これを実行すると不思議なことが起こります。
#define pos 4 int WINAPI BufferOverFlow(char *p) { char y[pos]; memcpy(y,p,pos+32); } void WINAPI funcs() { MessageBoxA(0,"脆弱性テスト","test",0); } int WINAPI WinMain( HINSTANCE, HINSTANCE,LPTSTR,int) { char c[pos+32]; *((DWORD *)(c+pos+4))=(DWORD)&funcs; BufferOverFlow(c); return 0; } |
赤文字の個所でバッファーオーバーフローが起こっている以外は、何もしないコードです。
しかし、このコードを実行すると、関数 funcs が実行されて、ダイアログが出てしまいます。
1ヶ月ほど前にサイトを見つけお世話になっています。windows2000が終わりかけているという話をみて、ubuntuをもうひとつのパソコンにインストールしました。黒翼猫さんの成果をいろいろ使わせていただいています。ありがとうございます。この記事へのコメントということですがほかに入力するところがないのでここにかかせていただきます。
数日前まで何ともなかったのですが、このhpの左に出ていたlivedoorプロフィールなどがまんなかの下にでるようになりました。当方の設定が悪いのか、黒翼さんが設定を変えられたのかわかりませんがご教示をお願いします。
1ヶ月ほど前にサイトを見つけお世話になっています。windows2000が終わりかけているという話をみて、ubuntuをもうひとつのパソコンにインストールしました。黒翼猫さんの成果をいろいろ使わせていただいています。ありがとうございます。この記事へのコメントということですがほかに入力するところがないのでここにかかせていただきます。
数日前まで何ともなかったのですが、このhpの左に出ていたlivedoorプロフィールなどがまんなかの下にでるようになりました。当方の設定が悪いのか、黒翼さんが設定を変えられたのかわかりませんがご教示をお願いします。
ありがとうございます。
カテゴリの文字数が長すぎてIEだと表示が乱れるようになっていたようでした。
ありがとうございます。
カテゴリの文字数が長すぎてIEだと表示が乱れるようになっていたようでした。
おはようございます。早速のご対応ありがとうございました。当方来年還暦になろうとするのに不勉強で、今後とも勉強させていただきます。よろしくお願いします。
八木
おはようございます。早速のご対応ありがとうございました。当方来年還暦になろうとするのに不勉強で、今後とも勉強させていただきます。よろしくお願いします。
八木