PWN入门指引

如果说Crypto需要强逻辑,Reverse需要沉下心,那PWN就可以简单理解为两点都需要

环境配置

Mac:
- UTM
- roderick师傅的Docker法
Win: Ubuntu WSL/VMware

上手,不要着急做题,先打基础:从 CS:APP 开始 (中文翻译:深入理解计算机系统 翻译版电子书版本) 计算机N大黑书其一

黑书
年轻人,你渴望力量吗

跟着CMU的lab做完后(尽量不要上网搜索,不要看往年lab的答案,否则实验将失去探索的意义)

根据HelloCTF从x86的栈溢出开始学习,会发现非常熟悉,因为很多手法是在CS:APP的lab中出现过的

接着,会遇到一些不太容易用objdump肉眼观测的题目,这时就需要学习一定逆向知识,建议根据roderick发布的公益课学习IDA的入门使用,以及gdb的增强配置

入门的逆向会认识程序的段(CS:APP会教)、恢复结构体(roderick师傅有讲)、认识常见的汇编语句、了解程序的底层运行流程,英文课看了晕可以看南大jyy老师的课

基础知识学的差不多了,接着就是练题,首推pwnable.kr以及pwnable.tw(我的Pwnable刷题记录在本站就能找到,以及一些分享视频在哔哩哔哩,觉得做起来没有头绪则可以看看),深入学习还可以练习pwn.collage,这部分学习就需要天分+努力;
在往后可以关注一些会议,比如C3;或是一些对于MC服务器或是游戏机的利用,例如PPPwn,这样也能提高自己学习的乐趣
到了这个地步,已经脱离了"入门指引"的范畴,相信你对PWN的知识节点也清晰许多,也便能自己寻找下一步学习的知识点~

最后提一嘴,不要丧失信心,这些往后遇到的高级利用和巧妙思路非常容易让人怀疑自己是不是真的不行,实际上只要想对自己有进步,生活开心就很好了