gdb的使用

IDA的使用

堆栈平衡

特殊函数

mprotect函数

格式:int mprotect(const void *start,size_t len,int port)

作用:能够修改内存的权限为可读可写可执行

参数:第一个参数填写的是起始地址,第二个参数填写的是起始地址后多大的长度,第三个参数填写的是赋予的权限

参数port:1、port_read:内存段可写。2、port_write:内存段可读。3、port_exec:内存段可执行。4、port_none:内存段无法访问。5、port=7:内存段可写、可读、可执行。

要求:指定的内存区间必须包含整个内存页(4K)。区间开始的地址start必须是一个内存页的起始地址, 并且区间长度len必须是页大小的整数倍。

函数调用栈

pwntools