Hiatus over!
I run into the same issue as with abo7: that due to how the binary is linked together there is nothing valuable to overwrite when overflowing buf.
buf is in the .bss section:
$ nm abo8 | grep buf
08049620 B buf
.bss section starts at 0x08049600
and it is 288 bytes
(gdb) p/d 0x08049720-0x08049600
$1 = 288
I start seeing some segfaults at 2528 As when it starts hitting inaccessible memory:
Also verified by nm ordered by addresses:
$ nm -n abo8
...
08049620 B buf
08049720 A _end
$
/* abo8.c *
* specially crafted to feed your brain by gera */
/* spot the difference */
char buf[256];
int main(int argv,char **argc) {
strcpy(buf,argc[1]);
}
I run into the same issue as with abo7: that due to how the binary is linked together there is nothing valuable to overwrite when overflowing buf.
buf is in the .bss section:
$ nm abo8 | grep buf
08049620 B buf
.bss section starts at 0x08049600
(gdb) maintenance info sections
...
0x08049600->0x08049720 at 0x000005e8: .bss ALLOC
0x00000000->0x0000007e at 0x000005e8: .comment READONLY HAS_CONTENTS
0x00000000->0x000000a8 at 0x00000668: .debug_aranges READONLY HAS_CONTENTS
0x00000000->0x00000048 at 0x00000710: .debug_pubnames READONLY HAS_CONTENTS
0x00000000->0x00000375 at 0x00000758: .debug_info READONLY HAS_CONTENTS
0x00000000->0x0000010a at 0x00000acd: .debug_abbrev READONLY HAS_CONTENTS
0x00000000->0x00000244 at 0x00000bd7: .debug_line READONLY HAS_CONTENTS
---Type to continue, or q to quit---
0x00000000->0x00000030 at 0x00000e1c: .debug_frame READONLY HAS_CONTENTS
0x00000000->0x000000ae at 0x00000e4c: .debug_str READONLY HAS_CONTENTS
and it is 288 bytes
(gdb) p/d 0x08049720-0x08049600
$1 = 288
I start seeing some segfaults at 2528 As when it starts hitting inaccessible memory:
(gdb) run `perl -e 'print "A"x2528';`
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/dennis/gera/abo8/abo8 `perl -e 'print "A"x2528';`
Program received signal SIGSEGV, Segmentation fault.
0xb7ea5ba6 in strcpy () from /lib/tls/libc.so.6
(gdb) x/1000x 0x08049600
...
0x8049ff0: 0x41414141 0x41414141 0x41414141 0x41414141
0x804a000: Cannot access memory at address 0x804a000
Also verified by nm ordered by addresses:
$ nm -n abo8
...
08049620 B buf
08049720 A _end
$
No comments:
Post a Comment