pwn学习(一)
实战前的准备
pwn在ctf中算是一个门槛较高的分支,而且这方面的资料也相对较少,所以学习pwn的人也是相对较少的。我本人呢,是一个菜鸟,本科不是计算机系的,学习这个完全是出于兴趣。写这些东西,一来是记录自己的学习状况,二来呢,就是希望给正准备踏上pwn这条路的朋友们,提供一点思路。
废话不多说,开始进入正题:
1. 学习pwn所需要的基础知识:
- c语言
- 汇编语言
- python
- 操作系统的一些知识
- linux操作基础
关于这几方面的学习呢,我根据自己的经历,提几点建议:如果你是从0开始学的,我建议你先开始学习c,学习的话,可以去网易云课堂看视频,等你有了一点基础了,就可以去看一些书了。学完c后,其他的编程语言,你会非常好理解,学习的当然就很快了。
中期学习,我推荐几本非常不错的书籍:
c语言:C Primer Plus(第五版)中文版
百度网盘:链接:https://pan.baidu.com/s/1sk8y9z5eLQtjsmKeb1ziDQ 密码:eycf
汇编语言:《汇编语言(第3版) 》王爽著
百度网盘:链接:https://pan.baidu.com/s/1sSEUt-PBmlko8XbB49_wqA 密码:kcvi
Python:Python学习手册(第4版) 中文版
百度网盘:链接:https://pan.baidu.com/s/1f_tqoYzEwdgGJk8HUfSL7g 密码:7kvo
操作系统:深入理解计算机系统
百度网盘:链接:https://pan.baidu.com/s/1k8tO-t-Fs_FWrMpCegiMww 密码:7jf6
linux:鸟哥的Linux私房菜 基础学习篇(第三版)
百度云:链接:https://pan.baidu.com/s/1-rDyovYJH5uojOaem3rcKw 密码:8d2s
知识很多,你也不可能每本书都掌握,对语言的语法和计算机的架构有个大致的掌握就行,当然,在c学习到中期的时候,你可以选择几本书并行学习,根据你自己的能力来。
2.工具
由于pwn主要是针对Linux系统来说的,所以有一个Linux系统是必须的。
我用的是ubuntu18.04虚拟机。
ubuntu18.04 iso镜像
百度网盘:链接:https://pan.baidu.com/s/14aIyU-lqOiQFKWw3TX2gYA 密码:vqo7
Vmware虚拟机可以去官网下载,安装秘钥百度就行,网上多得是。
快速的exp开发工具:
pwntools
直接用pip安装即可:
sudo pip install pwntools
peda GDB的一款很实用的插件:
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
ida Pro,强大的反汇编工具
下载地址:https://tools.pediy.com/win/Disassemblers/ida/ida6.1/ida61.rar
论坛
看雪论坛bbs.pediy.com
学破解论坛:www.xuepojie.com
结语
上面的是学习pwn的所需知识,和一些帮助我们学习成长的非常好的技术论坛和工具,当然,学的这些知识不是只用在pwn上面,毕竟pwn只是解题,不是真正的实战。这些知识是我们成为一个大黑阔或者是一个软件安全工程师所必须练就的内功。
勿以浮沙筑高台
我是dmzlingyin,下节再见。