これの続きです。 GOT overwrite でも .dtors overwrite でもなんでもいいんですけど、main関数で直接メモリを4バイト書き換えるのではなくて、ちゃんと(?) format string bug を悪用した書き換えを試してみます。リハビリです。format string bug の解説は、ここが秀逸だと思います(特に4章以降)。条件は前と同じで、 NXあり ASLRあり RELROなし PIEなし です。まず、次のような関数(vuln)を準備します。 static void vuln(const char* s) { printf(s); // <-- exploitable }で、この関数をまずは次のように呼んでみます。 vuln("0x%08x\n" "0x%08x\n" "0x%08x\n" "0x%08x\n" "0x%08x\n");printf関数に