ROP利用:在.data部分写作SIGSEGV

时间:2018-05-08 13:33:56

标签: linux security x86 exploit

我正在按照本教程进行ROP开发。当我检索易受攻击的程序存储器映射时,我得到< __ data_start>是在0x0000201c,这是本教程所期望的更多的爱好者。要在此位置书写,我使用以下小工具在eax中准备地址

xor eax, eax;;      ; eax = 0
add eax, 0xd;;      ; eax = 0x0000000d
mov ah, 0x13;;      ; eax = 0x0000130d
add ah, al;;        ; eax = 0x0000200d
add eax, 0xf;;      ; eax = 0x0000201c

最后我使用mov [eax] ecx指令写入应该是RW的.data,但是我得到了一个SINSEGV分段错误。我也尝试从该地址的gdb读取,但是我收到类似“无法读取0x201c的内存”的消息。 由于.data应该在进程的地址空间中,我感到困惑...我认为它必须是gcc或操作系统的某种保护,但我不明白哪一个。任何的想法?如果是这样,你能解释它是如何工作的,是否可以禁用它?

我已禁用ASLR,我正在使用gcc版本7.3.0(Debian 7.3.0-11)执行kali 32bit(Debian 4.14.12-2kali1(2018-01-08))。

0 个答案:

没有答案