常用术语速查手册

2021/11/29 Tools 共 1532 字,约 5 分钟

本文讲述如何在Linux下安装Nginx

PE(Portable Execute, 便携式可执行)文件

PE(Portable Execute, 便携式可执行)文件是Windows下可执行文件的总称,常见的拓展名有 DLL,EXE,OCX,SYS 等。它是微软在 UNIX 平台的 COFF(通用对象文件格式)基础上制作而成。

PE文件是指 32 位可执行文件,也称为PE32。64位的可执行文件称为 PE+PE32+,是PE(PE32)的一种扩展形式(请注意不是PE64)。

名称示意说明
ImageBase模块基址镜像一开始的地址
VAVirtual Address, 虚拟地址内存中的虚拟地址
RVARelatively Virtual Address, 相对虚拟偏移相对镜像基址的偏移;RVA=VA-ImageBase
FOA文件偏移文件中所在的地址

GDB(GNU Symbolic Debugger)的基本使用方法

  1. 使用GDB开始调试软件
     >>> gdb <可执行文件路径>
    

    eg: gdb ./makeswf: 调试当前terminal路径下的makeswf文件

  2. 设置软件启动的参数
     (gdb) set args <可执行文件的参数字符串>
    

    eg: set args -I /bin/sh -a 123: 相当于以makeswf -I /bin/sh -a 123命令调试程序

  3. 设置程序断点
    • 根据行数设置断点
         (gdb) b <(int)代码行数>
      

      eg: b 305: 在代码的305行加断点

    • 根据函数名设置断点
         (gdb) b <(str)函数名>
      

      eg: b main: 在main函数加一个断点

  4. 查看当前的所有断点
     (gdb) info br
    
  5. 运行程序/开始调试
     (gdb) r
    
  6. 在断点处打印变量值
     # 打印变量
     (gdb) p <(str)变量名>
     # 打印字符串
     (gdb) p (char*)str
    
  7. 使用display单步执行时自动打印监控内容
     (gdb) display <(str)变量名>
     # 可以设置目标显示格式
     (gdb) display/<fmt> <(str)变量名>
     # 使用info命令查看所有display的变量
     (gdb) info display
     # 使用undisplay解除监视
     (gdb) undisplay <变量标号>
    
    ”\/fmt”功能
    ”\/x”16进制打印整数
    ”\/d”有符号十进制
    ”\/u”无符号十进制
    ”\/o”8进制显示整数
    ”\/t”二进制打印整数
    ”\/f”浮点数打印
    ”\/c”字符串形式打印
  8. 查看上下文
     # 查看代码段
     (gdb) l
    
  9. 查看寄存器信息
     (gdb) info r
    
  10. 单步执行
    (gdb) next
    
  11. 进入layout模式查看上下文汇编 不推荐. shell (gdb) layout asm # 使用 Ctrl + X A 退出 layout 模式

  12. 查看函数的汇编代码
    # /m : 显示源代码与汇编代码
    (gdb) disassemble /m main
    # /r : 显示16进制代码
    (gdb) disassemble /r main
    
  13. 查看上下文汇编代码
    # $pc : 当前程序的运行地址
    # 显示当前运行的汇编指令
    (gdb) display/i $pc
    # 显示15条接下来要执行的指令
    (gdb) x/15i $pc
    
  14. 获取内存地址所在symbol相关信息
    (gdb) info symbol <内存地址>
    
  15. 查看/修改 汇编风格
    # 查看当前的汇编风格
    (gdb) show disassembly-flavor
    # 设置汇编风格
    ## 转换为 Intel 格式的汇编 
    (gdb) set disassembly-flavor intel 
    ## 转换为 AT&T 格式的汇编 
    (gdb) set disassembly-flavor att
    

参考

文档信息

搜索

    Table of Contents