IDA与windbg分析.dll库文件

windbg与IDA分析库文件

IDA与windbg分析.dll库文件

  • IDA打开.dll库文件
    在这里插入图片描述
  • 用windbg attach到指定某一进程(File->attach to a process),打开进程后会可在(Debug->modules)看到该进程用了那些.dll库文件
  • IDA:修改基址让.dll库的地址与windbg保持同步(IDA:Edit->segments->Rebase program,Windbg:Debug->modules查看地址)
    IDA:\可以选择隐藏函数中变量类型,使得函数看起来更简洁。
    左侧IDA, 右侧windbg
    在这里插入图片描述
  • Windbg:Debug->Event Fliter选择忽略运行调试中的指定错误。

定位

  • 当我们需要在某个地方设置断点,让windbg停在某个地址,我们有如下方法
  • 用IDA的查找字符串功能,找到windbg对应地址
  1. 比如要定位读取某个文件的代码
  2. IDA: 在view->open subviews ->strings 打开string窗口,Alt+T查找字符型,Ctrl+T查找下一个。
    在这里插入图片描述
  3. 寻找函数中的循环,找到读取RouteLR.dst的位置
    在这里插入图片描述
  4. 搜索命令s -a 000007ffd002d0000 Lfffffff "ERROR: Invalid"(000007ffd002d0000是模块librdi_device首地址,Lfffffff是搜索偏移量)
    在这里插入图片描述
  5. 可以使用上文堆栈信息 (bp address 设置断点) (bl 查看断点)
    条件断点:执行多少次中断
    r $t0 = 0
    bp XXX+0x2B8553 “r t 0 = @ t0=@ t0=@t0+1;.printf “times: %d\n”,@ t 0 ; . e c h o ; . i f ( @ t0;.echo;.if(@ t0;.echo;.if(@t0 == 0x10){}.else{gc}”
  6. 定位中断后,命令ba r8 00007ffd`01746aa8 设置读数据断点,在进程中执行特定命令触发中断
  7. windbg命令d + address显示内存信息,下面的命令可以用于打印有用的内存log信息。
    .logopen C:\Users\Administrator\Desktop\vivado\log.txt
    d 000001f5ebe3fa10 000001f5ebe40400
    .logclose
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值