工具命令参数
2018-12-15 本文已影响0人
fantasy_learner
objdump
- -h 查看段信息
- -x 打印更多更复杂的信息
- -s 将所有段内容以16进制打印出来
- -d 将所有包含指令的段反汇编
- -t 提取库文件信息
readelf
- -h 查看文件头 (ELF header)
- -S 查看 Section Headers Table(段表)
- -s 查看符号表信息
- -l 查看Segment
- -d 查看 .dynamic (动态符号表) 信息
- -sD 查看动态符号表及其对应的哈希表
- -r 查看重定位表 (.rel.*)
gcc
- -g 编译时加上调试信息相关的段
- -c 只编译不链接
- -fno-builtin 关闭内置函数优化
- -ffunction-sections|-fdata-sections 将函数和数据保持在独立段
- -verbose 打印出链接的中间步骤
ld
- -verbose 查看详细指令,单独使用查看默认链接脚本
- -T 指定使用的链接控制脚本
- -e 指定入口函数
- -static 静态链接
- -o 指定输出文件名
- -s 禁止产生符号表
objcopy
-I 指定二进制文件
-o 指定输出文件
-B 指定架构
gdb
- r 运行
- start 运行到main处停止
- ni 下一个指令
- step 单步进入
- c continue
- finish 运行到ret
- x/wx | /s | /... 加上 地址 以不同形式查看目标地址的值
- set *addres=value 设置某地址的值
- p addres 输出某地址的值 也可以用%加寄存器输出变量的值
- disas (symbol_name(func)) 反汇编
peda
- checksec 查看保护
- elfsymbol 查看符号
- vmmap 查看内存映射
- find 查找内存中的字符串
pwngdb
- heapinfo 查看 free后的管理链表
- heapinfoall
- chunkinfo [pointer to chunk] 查看对应chunk的详细信息