无pwntools时如何查看保护
作者:互联网
在很多线下比赛并且使用举办方提供的电脑时,会没有python的模块和插件,这就包括pwntools(工具人爆哭!)
众所周知,当一个小菜鸡没有pwntools没有补全(不是我)基本就废掉喽...
所以经过对大佬的取经之后准备写一些关于脱手pwntools的博客作为记录,孩子是个超级超级大菜鸡,有任何错误的地方欢迎指出!
如何分辨保护机制
pwntools是自带旧版本的checksec的,这使得查看保护易如反掌
canary
在函数刚开始执行时会设成一个标志,这个标志会入栈,当程序执行完之后,他会校验canary值是不是会发生变化,如果发生变化,说明程序被改过,发生异常,如果没改过就正常
我们可以通过ida查看有无__stack_chk_fail函数,如果有,就代表开了金丝雀
例如:
PIE
地址随机化,开启后每次加载程序都会将地址随机,但是基地址不变,分辨这个保护可以使用objdump -d命令查看各段为固定地址还是偏移地址
例如:
这个就是偏移地址
对比一下没有开PIE的
还是很明显的,敲一敲就晓得了
NX
通过redelf -a查看GNU_STACK栏,Flag列下如果是RW则是有nx,RWE则是无NX
RELRO
readelf -a 查看有无GNU_RELRO,有则有RELRO,无则无RELRO(RELRO分辨不出部分保护和全部保护的区别)
例如:
emmm....虽然没有pwntools但也不是很难,只是稍微复杂了些,相信各位小伙伴一定能快速掌握,不像我,离了pwntools就像个残废。。。
标签:查看,RELRO,保护,地址,pwntools,分辨 来源: https://www.cnblogs.com/LYMhahaha/p/15532158.html