其他分享
首页 > 其他分享> > 无pwntools时如何查看保护

无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