少女祈祷中...

pwn环境建造

linux系统

我们在pwn方向,linux是必须的
我们有以下两个选择

  • wsl (windows下的linux系统子系统)
  • VM 虚拟机
    linux系统也有选择,通常情况下可以选择Ubuntu系统(出题人基本上都是Ubuntu编译)
    虽然我一直用kali
    而且对于密码手而言,Arac linux 才是最优选择 (因为装sagemath更方便)

wsl

直接在微软商店搜索自己希望下载的linux系统, 下载即可
安装好之后就是可以使用的linux命令行 (windows10以来使用的为Terminal同一管理各种控制台)
可以去自己设计控制台的样式:
kali运行界面
arch运行界面
右上角下箭头可以打开其他终端窗口,至于像我这样的界面怎么做,大家应该可以在设置里自己搞定吧
图片上网找,反正全中文
tips: 记得把常用的比如我这里就是kali设置成默认启动,这样就可以在右键打开终端时直接在该文件夹下打开。
windows命令行不是一直在文件的路径窗口直接输入cmd运行的吗(bushi)
Arch… 我把sagemath装在~目录下就好了不是吗
记得换源!
记得换源!
记得换源!

vm虚拟机

这个没什么好说的,vm的虚拟机安装我也搞不懂,自己搞超多bug
我不会呐
(等待大佬们补充)

pwn必备(linux 下安装)

pwntools (python库)
gdb (动态调试)
pwngdb (GDB插件)
ROPGadget (二进制文件查找工具)(跟着pwntools一同安装的)
patchelf (更改程序所使用的libc)
tips: 这里除了pwngdb必须从github以外, kali可以换源后apt下载
可以直接看这位师傅写的
[pwn基础]PWN环境搭建
这里需要你换源更新, 这样才能正常使用git,如果一直无法克隆,可以选择使用ssh进行克隆,当然这样可能会很麻烦,因为你需要进行相当多的配置
在Github上传你第一个项目【windows系统】(bilibili)
可以跟着这个视频来,配置完ssh的key之后基本就可以使用了

另外:

应该不会学这个连基本的命令行都不会的吧…
如果真的有可能需要恶补一下呢
主要是python跟git的部分优先掌握(git只要会克隆就可以了吧)

IDA

在做题的时候当然也需要逆向我们收到的程序附件来进行分析啦
所以我们需要IDA的帮忙
以下有两个链接:
IDA Pro 8.3 绿色版(2024.2.26更新) - 吾爱破解 - 52pojie.cn
IDA Pro 9.0 RC1 全平台安装包 及 patch脚本 - 吾爱破解 - 52pojie.cn
(好像第二个要求吾爱破解的注册吧,还挺难的,不是要钱就是要等官网开放)
re手记得去找9.0的版本的(因为可能会遇到新特性,别因为这个卡题了)
但是对于pwn手来说8.3已经足够

好用的插件

auto_re 可以将一部分简单函数的函数名进行命名,从而增加可读性,虽然也就一点点。但比你每次看到sub_123984()还要去想他是不是system的后门函数好点。
LazyIDA 提供快捷复制地址,将字节串转为列表等,可以理解为增加快捷键的
(有待大佬们补充)

python脚本用什么写?

据我个人经历看来有以下四个选择:

  1. VS Code (不错的编辑器,也有很多插件)
  2. Sublime Text (可以替代windows下的记事本,对代码自识别加着色) 这也是本人一直在用的,非常好使
  3. Vim (佬编辑器,linux系统自带,各种命令,linux使用的时候肯定会用上一点点,但个人不是很推荐。主要是学习成本高,如果能学会的话确实用着很顺手)
  4. 记事本 (我真不说假的,你都用命令行了,用记事本不比IDLE打起来快)
    这里的都是用来写脚本和小程序的,如果你要做项目请移步呐

Q&A

  • 用python什么版本比较好? 选3就可以了,虽然很多人说用python2。选2的好处在于大部分旧版的代码是2的,这时如果你要运行就需要用2,否则你需要做相当多的修改 (其实主要是print函数啦) 不过如果你的代码一直都是自己写的,那这玩意儿没啥关系 (我的代码会使用python3)