2006-08-01から1ヶ月間の記事一覧

(補足)

最初のいちばんオーソドックスな奴、一応解説としてbacktraceを貼っておきます。 % gdb ./a.out (gdb) b x if main>0 Breakpoint 1 at 0x80483ba: file iyara.c, line 1. (gdb) r Breakpoint 1, x () at iyara.c:1 1 main;__attribute((constructor,destruct…

mainを一度も呼ばないばかりか蹂躙する

GCC

shinhさんの「ふとイヤなコードを思いつきました」にインスパイヤされてみました。 % cat iyana.c #include <stdio.h> #include <stdlib.h> int main; __attribute__((constructor, destructor)) static void x() { if (main) puts("world!"); else exit(main = puts("hello"));</stdlib.h></stdio.h>…

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

GCC

小ネタ。MSの中の人のblogをなんとなく眺めていたら、 Address Space Layout Randomization in Windows Vista - Function Pointer Obfuscation http://blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx Protecting against Pointer Subterfuge…