总结记录一下pwn入门的一些学习资料
pwn入门学习的网站:
CTF Wiki
必备技能:
汇编语言
要搞pwn首先要懂汇编吧,毕竟是搞二进制的
建议看王爽写的那本汇编语言,将书本的实验做一遍,然后再了解一下AT&T和intel两种汇编代码风格有什么不同
可以看下这篇博客intel汇编 和 AT&T汇编 的区别编程语言(C语言和python)
C语言这门语言必须要会吧,题目大部分是用C语言写的,而且很多那些知识都要读libc的源代码,不懂C,读libc源码时就会很痛苦,虽然懂也会很痛苦
要会python吧,毕竟exp用python写的,CTF中pwn主要是用pwntools这个python库来写利用脚本,要熟悉这个库
学习python的话上菜鸟教程学吧
pwntools库的话看下面
这个库的document pwntools document
还有常见的用法 pwntools 的常见用法
3.计算机组成与原理
玩pwn,入门是栈溢出,要玩栈溢出,栈的构造要了解吧,函数的调用约定要了解吧,函数参数的在栈上的分布要知道吧,然后balbala很多知识点要刷,建议读下《深入理解计算机系统》这本书 还有(《程序员的自我修养》这个选读)
下面举下经常用到的知识
函数调用栈:
C语言函数调用栈(一)
C语言函数调用栈(二)
elf的文件结构:了解下就好了
看程序员的自我修养
PLT和GOT:
Linux中的GOT和PLT到底是个啥?
系统的防护机制了解一波:
系统防护机制
- IDA 和gdb的常见工具的操作
- linux的常见操作
pwn入门视频
可以关注一下B栈上的一个up主 (君莫笑hhhhhhhh)
下面是他的一些视频
- 环境搭建 #环境的搭建 建议初学者用peda peda的安装我另一篇博客有讲
- 逆向基础速成
- pwn入门系列-1-pwn基础知识
- pwn入门系列-2-一个简单的例子
可以看下国外的 liveOverflow系列的教程
[LiveOverflow]-binary hacking
台湾 Angelboy的教学视频 强烈推荐
视频地址
pwn入门博客
- 手把手教你栈溢出从入门到放弃(上)
- 手把手教你栈溢出从入门到放弃(下)
- 一步一步学ROP之linux_x86篇 – 蒸米
- 一步一步学ROP之linux_x64篇 – 蒸米
- 一步一步学ROP之gadgets和2free篇 – 蒸米
刷题的网站
浙大的jarvisoj平台
国外的pwnable.kr
台湾的pwnable.tw
i春秋平台上的题目
还有一个国外的Scoreboard 不过需要科学上网
先大概写这么多吧,以后再补充