使用道具
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
昨天 20:09
昨天 16:56
昨天 16:49
昨天 13:35
前天 08:06
中国红客联盟公众号
联系站长QQ:5520533
调试必不可少的一步操作
但是经常会忘了缩写对应的意思,今天就总结一下。
1.RELRO: RELRP会有Pratial RELRO 和FULL RELRO,如果开启FULL RELRO,意味着我们无法修改got表
2.Stack: Canary found 表示不能直接用溢出的方法覆盖栈中返回地址,而要通过改写指针与局部变量、leak canary、overwrite canary的方法来绕过
3.NX: NX enabled表示栈中的数据没有执行权限,通常用rop/构造rop链绕过
4.PIE: PIE enabled 表示开启了地址随机化,即每次程序运行的时候地址都会变化,而如果没有开PIE的话,No PIE(0x400000),括号内的数据就是程序运行的基地址
5.FORTIFY: FORTIFY_SOURCE机制对格式化字符串有两个限制:
(1)包含%n的格式化字符串不能位于程序内存中的可写地址。
(2)当使用位置参数时,必须使用范围内的所有参数。所以如果要使用%7$x,你必须同时使用1,2,3,4,5和6
当选择对栈溢出时,需要选择程序的栈未被保护的可执行文件。
c/c++语言对栈和堆溢出一直以来饱受诟病。如今,微软要换Rust语言重写内核。
https://www.sohu.com/a/671464661_163726
使用道具 举报
使用道具 举报