美文网首页
vsyscall返回值

vsyscall返回值

作者: clive0x | 来源:发表于2019-02-14 21:35 被阅读0次

对于one gadget,经常需要满足一些特定条件,如RAX 为NULL(0),x86_64能够利用的几个gadgets,如libc_csu_init,vsyscall等,只有vsyscall满足这个条件。

刚测试了三个vsyscall的返回值,

__NR_gettimeofday使用空参数访问情况下返回值为0,即RAX = 0

__NR_time使用空参数访问返回值为当前时间,非0

__NR_getcpu使用空参数访问返回值为0,rax 0。

所以0xffffffffff600000 和0xffffffffff600800都可用于one gadget,

0xffffffffff600400不能用于one gadget

测试代码如下:

#include <stdio.h>

#include <unistd.h>

#include <sys/time.h>

#include <sys/types.h>

#include <sys/syscall.h>

int main(void) {

int cpu,status;

    int64_t test = -1;

    status = syscall(__NR_time,NULL,NULL,NULL);

    // gettimeofday(&tv,&tz); rax=>0

    //time(&t); rax=1550144287

    //getcpu;rax=0

asm ("mov %%rax,%0\n"

:"=g"(test):

);

printf("The rax value after vsyscall is %d\n",test);

printf("The ret value is %d\n",status);

return 1;

}

相关文章

  • vsyscall返回值

    对于one gadget,经常需要满足一些特定条件,如RAX 为NULL(0),x86_64能够利用的几个gadg...

  • vsyscall

    https://alittleresearcher.blogspot.com/2017/04/linux-vdso...

  • vsyscall总结

    利用vsyscall/vsdo技术bypass PIE 我们知道,在开启了ASLR的系统上运行PIE程序,就意味着...

  • nctf2018 | pwn wp

    babystack 这道题目用到了一个 vsyscall 的点。。。 保护 : nx , pie 限制 : 输入长...

  • Rust 入门 - 方法

    函数/方法 无返回值 有返回值 语句不会返回值,表达式会返回值

  • 19-函数的返回值和参数进阶

    函数 函数根据有无参数以及有无返回值,可分为 有返回值,有参数 有返回值,无参数 无返回值,有参数 无返回值,无参...

  • Swift-函数

    函数的定义与调用 无参数函数,有返回值(返回值类型String) 多参数函数,有返回值(返回值类型String) ...

  • Day7-函数

    1、函数的返回值 1.1 函数的返回值: python 中每个函数都是有返回值的,返回值就是return 后面的值...

  • shell编程之特殊流程控制语句

    exit [返回值] 如果 exit 命令之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。...

  • ES8-async函数

    async函数返回值 await返回值 案例

网友评论

      本文标题:vsyscall返回值

      本文链接:https://www.haomeiwen.com/subject/sjgyeqtx.html