zoukankan      html  css  js  c++  java
  • gdb 调试 ali3

    1. ps | grep crackme

    2. gdb --pid <pid>

      如果附加进程不成功,可以附加该进程的线程

      执行 ls /proc/<pid>/task 查看该<pid>的线程

      如果不能查看线程信息,根据经验,tid一般在 pid+2 ~ pid+15 之间

      附加上后,在gdb中执行 info proc maps 命令,查看当前进程信息,判断是否附加正确

    3. 在gdb中执行 info proc map ,查看当前进程的内存映射

    4. 在gdb中执行 dump [binary] memory ./<filename> <beginAddr> <endAddr> ,dump出 <beginAddr> ~ <endAddr> 之间的内存到<filename>

    5. 在gdb中执行  x /100xb <addr> ,以16进制格式,单字节方式,查看从<addr>开始的100个字节

    x 按十六进制格式显示变量。
    d 按十进制格式显示变量。
    u 按十进制格式显示无符号整型。
    o 按八进制格式显示变量。
    t 按二进制格式显示变量。
    a 按十六进制格式显示变量。
    i 指令地址格式
    c 按字符格式显示变量。
    f 按浮点数格式显示变量。


    b表示单字节,
    h表示双字节,
    w表示四字节,
    g表示八字节

    6. 在gdb中查看各种信息    info

    可以查看断点,寄存器等等

  • 相关阅读:
    组合模式
    数据去重
    combiner
    合并文档
    对象锁 区别 类锁
    一个简单的死锁示例
    线程安全的单例模式
    线程安全与不安全(误解)
    tf.nn.max_pool 池化
    tf.nn.depthwise_conv2d 卷积
  • 原文地址:https://www.cnblogs.com/luzhiyuan/p/4414076.html
Copyright © 2011-2022 走看看