码迷,mamicode.com
首页 > 其他好文 > 详细

随便写点什么吧——关于dmp的问题,只有dmp,没有目标系统环境的情况下,下载dump中对应的模块的方法

时间:2020-07-23 15:59:40      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:问题   string   模块   ati   col   sdl   pre   环境   path   

情况是这样的。

昨天,我得到了一个dump,这个dump是个full dump,

是一个系统蓝屏后的完全内存转储。

产品怀疑是我们的驱动导致出现了问题,

但是我们就不这么认为,所以就开始分析dump,

经过简单地查看调用栈,我们初步确认不是我们的问题。

但是如果要细挖细节的话,问题就来了,

我们只有dmp,没有对应的系统文件啊,

更可恶的是,实际上dmp里面没有记录目标系统文件的版本,

即,只记录了ntoskrnl、hal等模块的一些普通信息,如时间戳等,

但是没有记录属于哪个系统版本,如 18363、18362 等,

这里就导致我想拿到目标的系统文件非常困难。

怎么办,问题,还要解决,

突然我想到了一个方法。

微软其实是支持系统文件下载的,

只是下载路径需要自己拼凑出来,

而很巧,拼路径需要的三个关键信息,dmp 里面都给出了。

这里提供一段js脚本,来计算下载地址,计算出来的地址,其实是可以下载到文件的,而且是有效的。

1 var fileName = "PSHED.dll";
2 var timestamp = 0xB21F9DDA;
3 var virtualSize = 0x0001A000;
4 var vtimes = timestamp.toString(16).toUpperCase();
5 var vsizes = virtualSize.toString(16).toLowerCase();
6 var fileId = (0000000 + vtimes ).slice(-8) + vsizes;
7 var url = https://msdl.microsoft.com/download/symbols/ + fileName + / + fileId + / + fileName;
8 url;

关键元素其实就三个

filename :目标文件名

timestamp : 目标文件时间戳(这个时间戳是编译出来之后记录在文件中的那个时间戳,可能不是真正的时间戳,但是不重要)

virtualsize : 文件的体积

windbg 里面得到的模块信息如下,

10: kd> lmvm hal
Browse full module list
start             end                 module name
fffff805`0e75c000 fffff805`0e800000   hal        (pdb symbols)          d:\symbol\ms_symbol\hal.pdb\F3383972E53BCF4212FB0F57D47870AF1\hal.pdb
    Loaded symbol image file: hal.dll
    Image path: hal.dll
    Image name: hal.dll
    Browse all global symbols  functions  data
    Image was built with /Brepro flag.
    Timestamp:        5C190592 (This is a reproducible build file hash, not a timestamp)
    CheckSum:         0009F7AA
    ImageSize:        000A4000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:

挺惨的,啥都没有,

目标文件名,就是 hal.dll

目标时间戳是 Timestamp

文件体积是 ImageSize

都提供了,然后通过脚本可以算出来一个下载的路径,

我是很懒,所以没有用C#、Py 啥的改一下这个脚本,如果有时间,其实可以直接改一下这个脚本,

根据模块信息直接下载目标文件。

随便写点什么吧——关于dmp的问题,只有dmp,没有目标系统环境的情况下,下载dump中对应的模块的方法

标签:问题   string   模块   ati   col   sdl   pre   环境   path   

原文地址:https://www.cnblogs.com/suanguade/p/13365704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!