使用NASM安全搜索虚拟地址空间

时间:2018-11-07 20:58:06

标签: linux assembly x86 nasm

在调用“访问”系统调用后的以下代码中,EAX中存在0xfffffffe。在成功的情况下,“访问”系统调用返回0。在这里,我正在尝试访问数据部分的内存。那么,为什么“访问”返回0xfffffffe?

global _start
section .text
_start:

mov eax, 0x21 ; Access system call
mov ebx, message
mov ecx, 0 ; F_OK
int 0x80

section .data
message:dd 0,0,0,0,0,0,0

我正在关注下述论文。

http://www.hick.org/code/skape/papers/egghunt-shellcode.pdf
我要从纸张的第7页和第8页复制以下行。
最好使用“ access”系统调用,因为 “路径名指针是将用于执行 地址验证。由于路径名是第一个参数,因此意味着ebx寄存器将需要指向需要验证的地址。”

如果我们在下面的代码中看到作者使用“访问”系统调用来验证EBX寄存器。以下代码出现在论文的第8页上。

mov ebx,0x50905090
xor ecx,ecx
mul ecx
或dx,0xfff
inc edx
普什卡
lea ebx,[edx + 0x4]
电影,0x21
整数0x80
cmp al,0xf2
波帕
jz 0x9
cmp [edx],ebx
jnz 0xe
cmp [edx + 0x4],ebx
jnz 0xe
jmp edx

0 个答案:

没有答案