これの続き。 前に書いたGOT overwriteとほぼ同じ手口なんですが、.dtorsセクションに登録されている(関数の)アドレスを書き換えて、お好きな関数を呼ぶという攻撃方法があります。.dtor overwrite とか呼ばれてます。この手口を、 NXあり ASLRあり RELROなし PIEなし という条件下で試してみます。 #include <stdio.h> #include <stdlib.h> __attribute__((destructor)) static void dtor_fn() { puts("good bye!"); } static void my_dtor_fn(void) { puts("HEHE"); } int main(int argc, char** argv) { if (argc > 1) { unsigned int* got_addr