mirror of
https://github.com/nganhkhoa/CTF-All-In-One.git
synced 2024-12-25 11:41:16 +07:00
fix
This commit is contained in:
parent
7cf313ebec
commit
bc2c306c73
@ -214,6 +214,10 @@ GitHub 地址:https://github.com/firmianay/CTF-All-In-One
|
|||||||
* [8.23 Evaluating the Effectiveness of Current Anti-ROP Defenses](doc/8.23_current_anti-rop.md)
|
* [8.23 Evaluating the Effectiveness of Current Anti-ROP Defenses](doc/8.23_current_anti-rop.md)
|
||||||
* [8.24 How to Make ASLR Win the Clone Wars: Runtime Re-Randomization](doc/8.24_runtime_re-randomization.md)
|
* [8.24 How to Make ASLR Win the Clone Wars: Runtime Re-Randomization](doc/8.24_runtime_re-randomization.md)
|
||||||
* [8.25 (State of) The Art of War: Offensive Techniques in Binary Analysis](doc/8.25_offsensive_techniques.md)
|
* [8.25 (State of) The Art of War: Offensive Techniques in Binary Analysis](doc/8.25_offsensive_techniques.md)
|
||||||
|
* [8.26 Driller: Augmenting Fuzzing Through Selective Symbolic Execution](doc/8.26_driller_fuzzing.md)
|
||||||
|
* [8.27 Firmalice - Automatic Detection of Authentication Bypass Vulnerabilities in Binary Firmware](doc/8.27_firmalice_bypass.md)
|
||||||
|
* [8.28 Cross-Architecture Bug Search in Binary Executables](doc/8.28_cross_arch_bug_search.md)
|
||||||
|
* [8.29 Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data](doc/8.29_dynamic_hooks.md)
|
||||||
* [九、附录](doc/9_appendix.md)
|
* [九、附录](doc/9_appendix.md)
|
||||||
* [9.1 更多 Linux 工具](doc/9.1_Linuxtools.md)
|
* [9.1 更多 Linux 工具](doc/9.1_Linuxtools.md)
|
||||||
* [9.2 更多 Windows 工具](doc/9.2_wintools.md)
|
* [9.2 更多 Windows 工具](doc/9.2_wintools.md)
|
||||||
|
@ -59,7 +59,7 @@ $ make -j4 && sudo make install
|
|||||||
|
|
||||||
如果我们想要在编译程序时指定 libc,可以像这样:
|
如果我们想要在编译程序时指定 libc,可以像这样:
|
||||||
```
|
```
|
||||||
$ gcc test.c -L/usr/local/glibc-2.23/lib -Wl,--rpath=/usr/local/glibc-2.23/lib -Wl,-I/usr/local/glibc-2.23/lib/ld-2.23.so
|
$ gcc -L/usr/local/glibc-2.23/lib -Wl,--rpath=/usr/local/glibc-2.23/lib -Wl,-I/usr/local/glibc-2.23/lib/ld-2.23.so test.c
|
||||||
$ ldd a.out
|
$ ldd a.out
|
||||||
linux-vdso.so.1 (0x00007ffcc76b0000)
|
linux-vdso.so.1 (0x00007ffcc76b0000)
|
||||||
libc.so.6 => /usr/local/glibc-2.23/lib/libc.so.6 (0x00007f6abd578000)
|
libc.so.6 => /usr/local/glibc-2.23/lib/libc.so.6 (0x00007f6abd578000)
|
||||||
|
@ -6,17 +6,68 @@
|
|||||||
|
|
||||||
|
|
||||||
## 快捷键
|
## 快捷键
|
||||||
- F2:在光标选定位置按 F2 键设置或取消断点。
|
- `Ctrl`+`F1`:打开与所选行内符号相关的 API 帮助文档。
|
||||||
- F4:运行到光标选定位置处暂停。
|
- `F2`:在光标选定位置按 F2 键设置或取消断点。
|
||||||
- F7:单步步入:每次执行一条指令,遇到 call 等子程序时进入其中。
|
- `Shift`+`F2`:在首个选择命令设置条件断点。
|
||||||
- Shift+F7:与 F7 相同,但当调试程序发生异常而中止时,调试器首先尝试步入
|
- `Ctrl`+`F2`:重新启动被调试程序。
|
||||||
- F8:单步步过,每次执行一条指令,遇到 call 等子程序时不进入其中。
|
- `F4`:运行到光标选定位置处暂停。
|
||||||
- F9:运行,被调试软件继续运行,直到遇到下一个断点。
|
- `Shift`+`F4`:设置记录断点。
|
||||||
- Ctrl+F2:重新启动被调试程序。
|
- `F5`:最大化当前窗口。
|
||||||
- Ctrl+F9:执行到返回,在执行到一个 ret 指令时暂停,常用于从当前函数快速返回到上一个函数。
|
- `Ctrl`+`F5`:打开与首个选择的命令相对应的源文件。
|
||||||
- Ctrl+G:查看任意地址的数据。
|
- `Alt`+`F5`:让 OllyDbg 窗口总在最前面。
|
||||||
- Alt+F9:执行到用户代码,可用于从系统部分快速返回到被调试程序部分。
|
- `F6`:切换到下一个窗口。
|
||||||
- Alt+F5:让 OllyDbg 窗口总在最前面。
|
- `Shift`+`F6`:切换到前一个窗口。
|
||||||
|
- `F7`:单步步入:每次执行一条指令,遇到 call 等子程序时进入其中。
|
||||||
|
- `Shift`+`F7`:与 F7 相同,但当被调试程序发生异常而中止时,调试器首先尝试步入被调试程序指定的异常处理。
|
||||||
|
- `Ctrl`+`F7`:自动步入,在所有的函数调用中一条一条地执行命令。
|
||||||
|
- `Alt`+`F7`:转到上一个找到的参考。
|
||||||
|
- `F8`:单步步过,每次执行一条指令,遇到 call 等子程序时不进入其中。
|
||||||
|
- `Shift`+`F8`:与 F8 相同,但当被调试程序发生异常而中止时,调试器首先尝试步过被调试程序指定的异常处理。
|
||||||
|
- `Ctrl`+`F8`:自动步过,一条一条执行命令,但不进入函数内部调用。
|
||||||
|
- `Alt`+`F8`:转到下一个找到的参考。
|
||||||
|
- `F9`:运行,被调试软件继续运行,直到遇到下一个断点。
|
||||||
|
- `Shift`+`F9`:与 F9 相同,但当被调试程序发生异常而中止时,调试器首先尝试执行被调试程序指定的异常处理。
|
||||||
|
- `Ctrl`+`F9`:执行到返回,在执行到一个 ret 指令时暂停,常用于从当前函数快速返回到上一个函数。
|
||||||
|
- `Alt`+`F9`:执行到用户代码,可用于从系统部分快速返回到被调试程序部分。
|
||||||
|
- `F10`:打开与当前窗口或面板相关的快捷菜单。
|
||||||
|
- `Ctrl`+`F11`:Run 跟踪步入,一条一条执行命令,进入子函数调用,并把寄存器信息加入到 Run 跟踪的存储数据中。
|
||||||
|
- `F12`:停止执行,暂停所有线程。
|
||||||
|
- `Ctrl`+`F12`:Run 跟踪步过,一条一条执行命令,不进入子函数调用,并把寄存器信息加入到 Run 跟踪的存储数据中。
|
||||||
|
- `Alt`+`F3`:关闭当前窗口。
|
||||||
|
- `Alt`+`B`:显示断点窗口。
|
||||||
|
- `Alt`+`C`:显示 CPU 窗口。
|
||||||
|
- `Alt`+`E`:显示模块列表。
|
||||||
|
- `Alt`+`K`:显示调用栈。
|
||||||
|
- `Alt`+`L`:显示日志窗口。
|
||||||
|
- `Alt`+`M`:显示内存窗口。
|
||||||
|
- `Alt`+`O`:显示选项对话框。
|
||||||
|
- `Alt`+`Backspace`:撤销对所选部分的修改。
|
||||||
|
- `Ctrl`+`A`:分析当前模块的代码段。
|
||||||
|
- `Ctrl`+`B`:开始二进制搜索。
|
||||||
|
- `Ctrl`+`E`:以十六进制格式编辑所选内容。
|
||||||
|
- `Ctrl`+`F`:开始命令搜索。
|
||||||
|
- `Ctrl`+`G`:转到某地址。
|
||||||
|
- `Ctrl`+`J`:列出所有的涉及到该位置的调用和跳转。
|
||||||
|
- `Ctrl`+`K`:查看与当前函数相关的调用树。
|
||||||
|
- `Ctrl`+`L`:搜索下一个。
|
||||||
|
- `Ctrl`+`N`:打开当前模块的名称列表。
|
||||||
|
- `Ctrl`+`O`:扫描对象文件。
|
||||||
|
- `Ctrl`+`P`:显示补丁窗口。
|
||||||
|
- `Ctrl`+`R`:搜索所选命令的参考。
|
||||||
|
- `Ctrl`+`S`:命令搜索。
|
||||||
|
- `Ctrl`+`T`:打开“暂停Run跟踪”对话框。
|
||||||
|
- `Esc`:停止自动执行或跟踪。
|
||||||
|
- `Enter`:将选中的命令添加到命令历史,如果当前命令是一个跳转或者函数,则进入到目的地址。
|
||||||
|
- `Backspace`:如果分析器将代码误识为数据,可以将选中部分的自动分析信息移除。
|
||||||
|
- *:转到原始位置
|
||||||
|
- `Ctrl`+`*`:指定新的起始位置。
|
||||||
|
- `+`:如果 Run 跟踪没有激活,则根据历史命令跳到下一条运行过命令的地方;否则跳到 Run 跟踪的下一个记录。
|
||||||
|
- `Ctrl`+`+`:跳到前一个函数的开始处。
|
||||||
|
- `-`:如果 Run 跟踪没有激活,则根据历史命令跳到前一条运行过命令的地方;否则跳到 Run 跟踪的前一个记录。
|
||||||
|
- `Ctrl`+`-`:跳到下一个函数的开始处。
|
||||||
|
- `Space`:修改命令。
|
||||||
|
- `:`:添加标签。
|
||||||
|
- `;`:添加注释。
|
||||||
|
|
||||||
|
|
||||||
## 命令行插件
|
## 命令行插件
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
- [程序状态](#程序状态)
|
- [程序状态](#程序状态)
|
||||||
- [模拟管理器](#模拟管理器)
|
- [模拟管理器](#模拟管理器)
|
||||||
- [VEX IR 翻译器](#vex-ir-翻译)
|
- [VEX IR 翻译器](#vex-ir-翻译)
|
||||||
|
- [扩展工具](#扩展工具)
|
||||||
- [CTF 实例](#ctf-实例)
|
- [CTF 实例](#ctf-实例)
|
||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
@ -47,6 +48,8 @@ $ sudo python setup.py install
|
|||||||
```
|
```
|
||||||
安装过程中可能会有一些奇怪的错误,可以到官方文档中查看。
|
安装过程中可能会有一些奇怪的错误,可以到官方文档中查看。
|
||||||
|
|
||||||
|
另外 angr 还有一个 GUI 可以用,查看 [angr Management](https://github.com/angr/angr-management)。
|
||||||
|
|
||||||
|
|
||||||
## 使用方法
|
## 使用方法
|
||||||
#### 快速入门
|
#### 快速入门
|
||||||
@ -783,6 +786,14 @@ t1
|
|||||||
到这里 angr 的核心概念就介绍得差不多了,更多更详细的内容还是推荐查看官方教程和 API 文档。
|
到这里 angr 的核心概念就介绍得差不多了,更多更详细的内容还是推荐查看官方教程和 API 文档。
|
||||||
|
|
||||||
|
|
||||||
|
## 扩展工具
|
||||||
|
由于 angr 强大的静态分析和符号执行能力,我们可以在 angr 之上开发其他的一些工:
|
||||||
|
- [angrop](https://github.com/salls/angrop):rop 链自动化生成器
|
||||||
|
- [Patcherex](https://github.com/shellphish/patcherex):二进制文件自动化 patch 引擎
|
||||||
|
- [Driller](https://github.com/shellphish/driller):用符号执行增强 AFL 的下一代 fuzzer
|
||||||
|
- [Rex](https://github.com/shellphish/rex):自动化漏洞利用引擎
|
||||||
|
|
||||||
|
|
||||||
## CTF 实例
|
## CTF 实例
|
||||||
查看章节 6.2.3、6.2.8。
|
查看章节 6.2.3、6.2.8。
|
||||||
|
|
||||||
|
1
doc/8.26_driller_fuzzing.md
Normal file
1
doc/8.26_driller_fuzzing.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# 8.26 Driller: Augmenting Fuzzing Through Selective Symbolic Execution
|
1
doc/8.27_firmalice_bypass.md
Normal file
1
doc/8.27_firmalice_bypass.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# 8.27 Firmalice - Automatic Detection of Authentication Bypass Vulnerabilities in Binary Firmware
|
1
doc/8.28_cross_arch_bug_search.md
Normal file
1
doc/8.28_cross_arch_bug_search.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# 8.28 Cross-Architecture Bug Search in Binary Executables
|
1
doc/8.29_dynamic_hooks.md
Normal file
1
doc/8.29_dynamic_hooks.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# 8.29 Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data
|
@ -28,3 +28,7 @@
|
|||||||
* [8.23 Evaluating the Effectiveness of Current Anti-ROP Defenses](8.23_current_anti-rop.md)
|
* [8.23 Evaluating the Effectiveness of Current Anti-ROP Defenses](8.23_current_anti-rop.md)
|
||||||
* [8.24 How to Make ASLR Win the Clone Wars: Runtime Re-Randomization](8.24_runtime_re-randomization.md)
|
* [8.24 How to Make ASLR Win the Clone Wars: Runtime Re-Randomization](8.24_runtime_re-randomization.md)
|
||||||
* [8.25 (State of) The Art of War: Offensive Techniques in Binary Analysis](8.25_offsensive_techniques.md)
|
* [8.25 (State of) The Art of War: Offensive Techniques in Binary Analysis](8.25_offsensive_techniques.md)
|
||||||
|
* [8.26 Driller: Augmenting Fuzzing Through Selective Symbolic Execution](8.26_driller_fuzzing.md)
|
||||||
|
* [8.27 Firmalice - Automatic Detection of Authentication Bypass Vulnerabilities in Binary Firmware](8.27_firmalice_bypass.md)
|
||||||
|
* [8.28 Cross-Architecture Bug Search in Binary Executables](8.28_cross_arch_bug_search.md)
|
||||||
|
* [8.29 Dynamic Hooks: Hiding Control Flow Changes within Non-Control Data](8.29_dynamic_hooks.md)
|
||||||
|
Loading…
Reference in New Issue
Block a user