IDA
| 按键 | 作用 |
|---|---|
| Space | 切换显示 |
| C | 转换为代码 |
| D | 转换为数据 |
| A | 转换为字符 |
| * | 转换为数组 |
| U | 未定义 |
| O | 提取偏移量 |
| H | 立即数->DEC |
| R | 立即数->STR |
| B | 立即数->BIN |
| Q | 立即数->HEX |
| N | 标签重命名 |
| ? | 计算器 |
| G | 跳转到地址 |
| : | 注释 |
| Ctrl+X | 查看参考[显示栈] |
| X | 查看参考 |
| Art+I | 搜索常量 |
| Ctrl+I | 再次搜索常量 |
| Art+B | 搜索Byte |
| Ctrl+B | 再次搜索Byte |
| Art+T | 搜索文本 |
| Ctrl+T | 搜索下一个 |
| Art+P | 编辑当前函数 |
| Enter | 跳转 |
| Esc | 返回 |
| NUM - | 收缩 |
| NUM + | 展开 |
| F5 | 以伪代码模式显示 |
OllyDBG
| 快捷键 | 作用 |
|---|---|
| F7 | 单步进入 |
| F8 | 单步步过 |
| F9 | 执行至点 |
| Ctrl+F2 | 重载程序 |
MSVC
| 选项 | 作用 |
|---|---|
| /O1 | 创建尺寸最小文件 |
| /Ob0 | 禁止内敛展开 |
| /Ox | 启用内存优化 |
| /GS- | 禁用安全检查 |
| /Fa(file) | 创建汇编文件 |
| /Zi | 生成调试信息 |
| /Zp(n) | 使封装结构体向n字节边界对齐 |
| /MD | 使可执行文件使用MSVCR*.DLL |
GCC
| 选项 | 作用 |
|---|---|
| -Os | 优化目标文件大小 |
| -O3 | 打开所有-O2的优化选项 |
| -regparm= | 设定传参的寄存器数量 |
| -o file | 制定输出文件名 |
| -g | 产生有调试信息的代码 |
| -S | 仅编译到汇编指令,不进行汇编和链接 |
| -masm=intel | 汇编指令使用intel语法 |
| -fno-inline | 禁止内联函数 |
GDB
| 选项 | 作用 |
|---|---|
| break filename.c:num | 在源程序第几行设置断点 |
| break function | 函数入口设置断点 |
| break *address | 某地址断点 |
| b | 同break |
| p variable | 显示变量的值 |
| run/r | 运行 |
| cont | 继续运行 |
| c | 同上 |
| bt | 打印当前栈所有信息 |
| set disassembly-flavor intel | 英特尔语法 |
| disas | 查看当前函数汇编指令 |
| disas function | 查看函数汇编指令 |
| disas function,+50 | 查看函数的部分汇编指令 |
| disas $eip,+0x10 | 查看函数的几条汇编指令 |
| disas/r | 查看接下来的几条 |
| info registers | 查看opcode |
| info float | 查看CPU |
| info locals | 查看FPU |
| x/w … | 列出全局变量 |
| x/w $rdi… | 读内存,word型 |
| x/10w… | 从RDI指定地址读数,word型 |
| x/s… | 读取并显示为10个word型 |
| x/i… | 读取内存,并显示为字符串 |
| x/10c… | ~,并显示为汇编 |
| x/b… | ~,并显示10个字符 |
| x/h… | ~,并显示为byte |
| x/g… | 读取并显示16位halfword型数据 |
| finish | 读取并显示giant words(64 bits) |
| next | 执行到函数退出 |
| step | 单步语句(不步入) |
| set step-mode on | 单步步入跟踪调试 |
| frame n | 打开step-mode |
| info break | 切换栈帧 |
| del n | 查看断点 |
| set args… | 删除断点 |
PEDA
| 命令 | 作用 |
|---|---|
| aslr | 显示/设定GDB的ASLR(地址空间配置随机加载) |
| checksec | [!]检查二进制文件的各种安全选项 |
| dumpargs | 函数将要被调用时,显示将要被传入函数的所有参数(默认会在反汇编代码下方自动显示) |
| dumprop | 在给定内存范围中Dump出所有ROP gadgets |
| elfsymbol | 获取elf的plt表 |
| elfheader | 获得调试的elf的头信息 |
| lookup | 搜索内存区间内的地址 |
| patch | [!]从地址[str/hex/int]开始修补内存 |
| pattern | 生成字符串模板(create size生成/offset value定位) |
| ropgadget | [!]获取ROP gadgets |
| searchmem | 内存中查找,支持正则 |
| shellcode | 生成shellcode |
| skeleton | 生成python exp模板 |
| readelf | 获取elf文件头 |
| procinfo | /proc/pid list |
| vmmap | [!]可以用来查看栈、bss段是否可以执行 |