
rop
文章平均质量分 66
TTYflag
ctf pwn菜鸡选手
qq 1617889365
展开
-
通过mmap&mprotect来绕过nx
mmapmmap函数的用法mmap将一个文档或者其它对象映射进内存。文档被映射到多个页上,如果文档的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。头文档 <sys/mman.h>void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset);第一个参数:分配新内存的地址第二个参数:新内存的长度(0x1000的倍数),长度单位是字节,不足一原创 2021-03-24 11:04:38 · 1598 阅读 · 5 评论 -
ret2dl_runtime_resolve(64位)
先把相关结构体和宏都列一下把(也懒得一个一个解释了)typedef struct{ Elf64_Sxword d_tag; /* Dynamic entry type */ union { Elf64_Xword d_val; /* Integer value */ Elf64_Addr d_ptr; /* Address value */ } d_un;} Elf64_Dyn;typedef struct{ Elf64_Word s原创 2021-03-07 12:00:06 · 643 阅读 · 1 评论 -
Ret2dlresolvePayload使用
对于Ret2dlresolve,payload构造特别麻烦,但pwntools有相应的工具,其payload构造可以由Ret2dlresolvePayload来完成。(真香)help(pwnlib.rop.ret2dlresolve.Ret2dlresolvePayload)Help on class Ret2dlresolvePayload in module pwnlib.rop.ret2dlresolve:class Ret2dlresolvePayload(__builtin__.objec原创 2021-03-05 10:30:24 · 1033 阅读 · 1 评论 -
ret2dlresolve(32位)
穿插例题XDCTF2015 bofELF程序的基本相关结构节区中包含目标文件的所有信息。节的相关结构体。typedef struct{ Elf32_Word sh_name; /* Section name (string tbl index) 节区头部字符串节区的索引*/ Elf32_Word sh_type; /* Section type 节区类型*/ Elf32_Word sh_flags; /* Section flags 节区标志,用于描述属性*/ Elf32_原创 2021-03-03 20:24:37 · 270 阅读 · 1 评论 -
SROP简单介绍和例题
SROP本质是 sigreturn 这个系统调用,主要是将所有寄存器压入栈中,以及压入 signal 信息,以及指向 sigreturn 的系统调用地址。对于 signal Frame 来说,会因为架构的不同而有所区别,这里给出分别给出 x86 以及 x64 的 sigcontext 。x86struct sigcontext{ unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh;原创 2021-03-02 10:48:17 · 4231 阅读 · 0 评论 -
ROP gadget的一些遇到的问题和思考
发个好久之前写的把。(现在一看那时候可真呆,滑稽.jpg)今天总算搞明白了之前没懂的疑问看过64位的rop应该知道一般的rop都会调用下面的gadgets因为正常编译出来的都会有这两个函数正常的思路都是利用puts函数和write函数来泄露别的函数的真实地址,然后去连libc当利用write函数做泄露的时候因为要传3个参数,所以肯定会用到这一整段gadgets然后一般第一段payload就一般是payload=‘A’offset+p64(ppppppr)+p64(0)+p64(1)+p原创 2020-12-06 22:02:28 · 870 阅读 · 0 评论