在很多线下比赛并且使用举办方提供的电脑时,会没有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
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。