小编wir*_*oul的帖子

解决mprotect()系统调用失败

我正在编写一些ROP漏洞利用代码,通过系统调用调用mprotect,调用int 0x80后eax设置为0x0表示成功.将执行转移到目标地址仍会产生SIGSEGV.我希望有人能告诉我哪里出错了.

一些细节,目标地址是.data部分,这是我将通过shellcode编写的地方: [20] 0x8146820->0x814c2b8 at 0x000fd820: .data ALLOC LOAD DATA HAS_CONTENTS

我设置eax125,ebx页面边界0x8146000,ecx0x1000(4096页大小),并edx0x7(RWX).

就在系统调用之前,寄存器看起来像这样:

eax            0x7d 125
ecx            0x1000   4096
edx            0x7  7
ebx            0x8146000    135553024
esp            0xbffff2b0   0xbffff2b0
ebp            0x8d0e0f0    0x8d0e0f0
esi            0x804fb85    134544261
edi            0x43434343   1128481603
eip            0x80c0182    0x80c0182 <mprotect+18>
eflags         0x202    [ IF ]
cs             0x73 115
ss             0x7b 123
ds             0x7b 123
es             0x7b 123
fs             0x0  0
gs             0x33 …
Run Code Online (Sandbox Code Playgroud)

linux assembly exploit system-calls mprotect

0
推荐指数
1
解决办法
1166
查看次数

标签 统计

assembly ×1

exploit ×1

linux ×1

mprotect ×1

system-calls ×1