CTF-PWN入门指北
一、基础中的基础
1、C语言基础:历史比较悠久的语言,网上有许多教程可以学习,最低要求要能看懂程序
2、汇编语言基础:(PWN手的逆向分析代码功底得扎实),基本要求要与看高级语言一样大体看懂整个程序的流程,函数调用等等。
推荐 汇编语言--王爽著


3、Python
Python学习建议在对c语言一定熟练度后开始学习,要求会简单语法,初期能够写一点简单脚本。(注:比赛中的攻击脚本90%都是python写的,另外要注意python2到python3的一些变化)
编程语言的学习不在于会多少语言,哪怕只会一门高级语言但是你精通也可以找到不错的工作,好好的学一门语言(c语言)对于后面其他语言学习很有帮助(当然python不建议当作一个主语言去学习或者第一门语言去学习)
4、Linux基础
CTF的PWN题中95%以上都是linux平台下进行,所以学好linux也是基础中的基础,入门要求会linux常用命令,在linux下的编译,gdb插件的反汇编调试等等,推荐鸟叔的私房菜

7、CTF-PWN市面上最权威最详细的书籍,在2020年年底推出,PWN手必看

6、对于加密与解密的同学推荐:加密与解密(第四版)

二、视频资料推荐
Pwn
星盟安全pwn入门
https://www.bilibili.com/video/BV1Uv411j7fr?from=search&seid=4337468435415936565&spm_id_from=333.337.0.0
三、刷题与学习网站:
1、攻防世界:https://adworld.xctf.org.cn/

2、BUUCTF:https://buuoj.cn/
BUUCTF一直会更新最新的题目

3、CTF wiki:https://wiki.x10sec.org/
CTF百科(各个方向都有),可以在上面找到对应知识点

4、B站与csdn等博客网站
b站:前面大部分都是B站视频
可以看看别人的博客,分为知识点分析以及题目的复现两类
5、吾爱破解论坛(52破解)
https://www.52pojie.cn/
52破解论坛应该是全国最大的关于逆向破解的论坛,不仅仅是ctf内容,更多的是现实中的一些场景,都是硬核技术。

四、工具

1、IDA PRO一款强力静态分析工具,PWN手要掌握基本的操作(详细见各大博客)
2、linux下的gdb动态调试插件,做到堆题时候需要动态调试(详细见各大博客)
PEDA:针对gdb的python漏洞利用开发协助
pwndbg:和PEDA类似,GDB插件
pwntools:写exp和poc的利器(python库)
checksec:检查elf程序的安全性和程序的运行平台(一般来说pEDA里面自带的就够了)
objdump和readelf:可以很快的知道elf程序中的关键信息(Ubuntu自带)
ROPgadget:强大的Rop利用工具
one_gadget:可以快速的寻找libc中的调用exec('bin/sh')的位置
五、PWN知识点思维导图(摘自网络和自己汇总),仅供参考


