memologue - 最近のglibcではatexit関数やjmp_bufを狙った攻撃は効かない (PTR_MANGLE)

生のポインタを保存しない、保存されてるポインタを生のまま利用しないというのは、リターンアドレスの書き換えを困難にするため、バッファオーバーフローなどを本質的に防ぐことができるわけではありませんが、攻撃の成功を難しくできますね。
というか、Windows でそのための関数が用意されているとは知りませんでした。

ところで、Windows だと atexit に限らず、コールバック関数を登録するようなAPIがたくさんあるけど、あれの内部実装はどうなっているんだろう…。