File tree 2 files changed +28
-0
lines changed
2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change 10
10
32位汇编后长20B
11
11
64位汇编后长22B
12
12
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
+
13
41
## Copyright
14
42
15
43
Distributed under CC BY-NC 4.0
You can’t perform that action at this time.
0 commit comments