Skip to content

Commit dba1988

Browse files
committed
add some illustration about exploit
1 parent 9bb7391 commit dba1988

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Readme.md

+28
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@
1010
32位汇编后长20B
1111
64位汇编后长22B
1212

13+
## 关于exp
14+
15+
除了最开始的几个新手赛的exp以外,其他的exp全都是按以下方式运行:
16+
17+
1. 运行`ipython`
18+
2. 使用`%load xxx.py`加载exp
19+
3. 运行`payload(lo)`来运行exp
20+
21+
关于`lo`有这样一些约定俗成的规律:
22+
23+
1. `lo == 0`: 打远程
24+
2. `lo != 0`: 打本地的样本
25+
3. `lo & 0b10`: 启动gdb附加调试器
26+
4. `lo & 0b100`: 输入需要爆破的地址(一般是直接从gdb中拿,避免打本地时还需要反复爆破)
27+
28+
例子: `payload(1)`是不开gdb,直接打本地;`payload(2)`是启动gdb打本地;`payload(6)`是启动gdb打本地并输入本地偏移
29+
(如果有相关代码);使用`while payload(0): pass`可以一直打远程直到爆破成功
30+
31+
实操如下:
32+
33+
![example](./assets/expnote.png)
34+
35+
这种方法的优点是适合命令行熟练并且使用tmux + vim套件的人高效运行代码,而且遇到什么错误时,往往tube还没关闭,
36+
可以很方便地使用`sh.recv()`来知晓剩下的错误信息(如果有),还可以跑一些python运算,如`hex(0x37 ^ 0x69)`
37+
38+
缺点就是调试过程中出错需要自己close对象,如果忘记,那么推出ipython的时候就会有一堆的进程结束,此外,
39+
门槛相较双击运行也稍高一番
40+
1341
## Copyright
1442

1543
Distributed under CC BY-NC 4.0

assets/expnote.png

358 KB
Loading

0 commit comments

Comments
 (0)