Ich arbeite an einer renditeorientierten Programmierausnutzung unter einem x86_64-Linux. Meine Forschung führt jedoch dazu, dass die ROP-Ausnutzung auf einem 64-Bit-Linux-Computer unmöglich ist, da alle Codesegmente in führenden Null-Byte-Adressen geladen sind. Stimmt das?
Gdb, Abschnitte: (gdb) i-Datei `/ home / ****** / Desktop / BOF / lib64 ', Dateityp elf64-x86-64. Einstieg: 0x400ffc 0x0000000000400190 - 0x00000000004001b0 ist .note.ABI-tag 0x00000000004001b0 - 0x00000000004001d4 ist .note.gnu.build-ID 0x00000000004001d8 - 0x00000000004002f8 ist .rela.plt 0x00000000004002f8 - 0x0000000000400312 ist .init 0x0000000000400320 - 0x00000000004003e0 ist .plt 0x00000000004003e0 - 0x0000000000494808 ist .text 0x0000000000494810 - 0x000000000049614c ist __libc_freeres_fn 0x0000000000496150 - 0x00000000004961f8 ist __libc_thread_freeres_fn 0x00000000004961f8 - 0x0000000000496201 .fini ist 0x0000000000496220 - 0x00000000004b6224 .rodata ist 0x00000000004b6228 - 0x00000000004b6230 ist __libc_atexit 0x00000000004b6230 - 0x00000000004b6288 ist __libc_subfreeres 0x00000000004b6288 - 0x00000000004b6290 ist __libc_thread_subfreeres 0x00000000004b6290 - 0x00000000004c32ac ist .eh_frame 0x00000000004c32ac - 0x00000000004c33b9 ist. gcc_except_table 0x00000000006c3ea0 - 0x00000000006c3ec0 ist .tdata 0x00000000006c3ec0 - 0x0000000 0006c3ef8 ist .tbss 0x00000000006c3ec0 - 0x00000000006c3ed0 .init_array 0x00000000006c3ed0 ist - 0x00000000006c3ee0 ist .fini_array 0x00000000006c3ee0 - 0x00000000006c3ee8 ist .jcr 0x00000000006c3f00 - 0x00000000006c3ff0 .data.rel.ro 0x00000000006c3ff0 ist - 0x00000000006c4000 ist .got 0x00000000006c4000 - 0x00000000006c4078 ist .got.plt 0x00000000006c4080 - 0x00000000006c56f0 ist .data 0x00000000006c5700 - 0x00000000006c8308 ist .bss 0x00000000006c8308 - 0x00000000006c8338 ist __libc_freeres_ptrs 0x0000000000400190 - 0x00000000004001b0 ist .note.0000000000004001b0 ist
0x00000000004001d8 - 0x00000000004002f8 ist .rela.plt 0x00000000004002f8 - 0x0000000000400312 0x0000000000400320 .init ist - 0x00000000004003e0 ist .plt 0x00000000004003e0 - 0x0000000000494808 .text 0x0000000000494810 ist - 0x000000000049614c ist __libc_freeres_fn 0x0000000000496150 - 0x00000000004961f8 ist __libc_thread_freeres_fn 0x00000000004961f8 - 0x0000000000496201 .fini ist 0x0000000000496220 - 0x00000000004b6224 ist .rodata 0x00000000004b6228 - 0x00000000004b6230 ist __libc_atexit 0x00000000004b6230 - 0x00000000004b6288 __libc_subfreeres ist 0x00000000004b6288 - 0x00000000004b6290 ist __libc_thread_subfreeres 0x00000000004b6290 - 0x00000000004c32ac ist .eh_frame 0x00000000004c32ac - 0x00000000004c33b9 ist .gcc_except_table 0x00000000006c3ea0 - 0x00000000006c3ec0 .tdata 0x00000000006c3ec0 ist - 0x00000000006c3ef8 ist .tbss 0x00000000006c3ec0 - 0x00000000006c3ed0 ist .init_array 0x00000000006c3ed0 - 0x00000000006c3ee0 .fini_array 0x0000000000 ist 6c3ee0 - 0x00000000006c3ee8 ist .jcr 0x00000000006c3f00 - 0x00000000006c3ff0 ist .data.rel.ro 0x00000000006c3ff0 - 0x00000000006c4000 ist .got 0x00000000006c4000 - 0x00000000006c4078 ist .got.plt 0x00000000006c4080 - 0x00000000006c56f0 .data ist 0x00000000006c5700 - 0x00000000006c8308 ist .bss 0x00000000006c8308 - 0x00000000006c8338 ist __libc_freeres_ptrs