dump文件_dump调试案例1-未知跳转

d5740407d6856807d5b9190079052037.png

背景

自己手里有一个用duilib开发的工具在某一个用户那边高频崩溃。只要一启动就崩溃,一天崩溃几十次,很奇怪。从用户那边抓取dump文件回来,调出windbg进行调试查找原因。

过程

1. 准备好pdb及源码文件,windbg加载dump起来。命令行输入.ecxr, 然后切换看堆栈如下:

60dbf4f9dd8554ebe30779d0aafdca8e.png

报错的代码在这里:

f34043093583b618b9210f2bde1531ac.png

这个工具是用duilib做的界面,handleMessage处理消息后跳转到CWebBrowserUI::AddRef中,但是我的代码里根本就没有用到CWebBrowserUI这个类,怎么会跳转到这个类中呢?奇怪。

2. 然后查看了local,thread等信息都没有找到有用的线索。

3. 怀疑堆栈不准, 但windbg加载pdb文件又能加载起来,对应的代码也能找到,理论上来看应该是准的。但是代码里根本就没有写,但是堆栈却跳转到这个类里了,莫名其妙。

4. 问了一下组内的另一大神,分析了一下,给出了一个思路:EIP寄存器。EIP寄存器,用来存储CPU要读取指令的地址,CPU通过EIP寄存器读取即将要执行的指令。查看EIP寄存器的值,看一下它下一步要执行的动作是什么?

5. 查看EIP的值

6b550243ce92bbc6330638ace4a5a893.png

可以看见EIP的内存地址,通过windbg memory窗口可以看到对应的值

0d5fbebc3dccf8f149404dc4877cac61.png

看memory的值,竟然看见了Trojan的字样。觉得这个工具可能是中了病毒或者木马。

6. 通过抓取的dump挨个分析,发现只要是出现崩溃堆栈是这样的,exe的名字都是同一个,基本上确认是同一个exe,被病毒或木马感染导致崩溃。因为没有办法联系到用户,所以还只是猜测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值