• Windbg在应用层调试漏洞时的应用


      主要记录一些在应用层调试漏洞的技巧,不会写一些基本的命令,只记录比较有用的平时难以想到的调试方法。

      

    1、!address eax

    查看对应内存页的属性,如果poc触发异常之后就可以用这个指令看一下触发异常的内存地址的情况

    2、dc 0x4232390

    以DWORD为组织单位查看内存,比dd命令的优点是可以显示ascii码的情况。

    3、 ub 0x532930

    反汇编给定地址之前的指令,一般对于栈回溯中得到的地址使用这一条命令。因为可以看到回溯函数的调用

    4、kb、kv和kp

    都是栈回溯,但是kb只显示3个参数,而kp显示所有参数。kv则有额外的调用约定

    5、x 函数名

    匹配指定模板的符号,可以用来搜索函数

    6、断点命令之bp、bu、ba

    bp是对地址下断点、bu是对符号下断点。如果符号位置变了(比如在一个dll中),bu会随符号而改变bp不会。ba是对数据下断点,指定访问模式e执行、w写、r读,支持对1、2、4、8个字节,格式为 ba 访问模式 字节数 地址。

    bl列出断点、bc删除断点。

    7、针对模块的sxe ld:和lmm

    lmm可以搜索模块的信息,sxe ld:当模块加载后断下。

    8、dds 地址

    以地址为基准搜索附近的函数地址,如果有则显示符号和地址。

    9、设置记录断点

    bp xxxx ".echo 'Here: ';r eip ;gc"  这样断在XXXX的时候就会输出你指定的寄存器的值

    10、ln列出附近的符号

    在不知道中断处的含义时,可以用ln查看该地址或附近的地址符号。(因为虚函数表是有符号的,所以用来分析对象类型有奇效)

    11.在满足条件时中断下来

    ".if(){}.else{g;}"

    12.jscript与jscript9

    jscript9!Js::Math::Cos是jscript9的

    jscript!Cos

    !heap也有一些很好用的命令
    !heap -stat 显示进程中所有堆的信息,通过这个命令可以找到堆喷分配内存块所属的堆
    !heap -a HEAP_HANDLE 显示指定句柄的堆的情况
    !heap -stat -h HEAP_HANDLE 可以看到堆中块的分布情况
    !heap -flt s size 显示所有指定大小的块
    !heap -p -a 堆分配记录
  • 相关阅读:
    中国马的跳法
    桃子到底有多少
    Precision power (高精度幂运算)(相乘的变体)
    判断两条线段是否相交
    大菲波数
    小数保留格式
    Java 注意事项
    KMP复习整理
    printf函数精讲
    再解 KMP(初学)
  • 原文地址:https://www.cnblogs.com/Ox9A82/p/5704122.html
Copyright © 2020-2023  润新知