[记录] Ida Pro Command “LoadPdbFile” failed | 祭夜博客
  • 欢迎光临,这个博客颜色有点多

[记录] Ida Pro Command “LoadPdbFile” failed

其它笔记 msojocs 2周前 (11-19) 67次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

前言

前段时间重装了系统,然后上周准备用ida去分析NTQQ的文件修改检测;但是我发现ida在加载pdb文件时会保存崩溃或者卡死。

就像这样:

分析

其实,重装前是能正常使用的;但是,我不可能为了ida再去做一次重装系统。

我尝试去搜索引擎寻找资料并没有找到直接可用的解决方案;不过,有一篇解决IDA报错的博文给出了一个方法:使用ProcessMonitor去记录IDA的行为,根据行为判断异常点。

确定文件正常

我将ida软件扔到沙盒与虚拟机中,都能够正常运行使用;那说明要么我装的软件与它产生冲突,或者我系统坏了。

对比行为

我认为最快的方法就是记录程序在虚拟机的行为以及宿主中的行为,然后去比较行为记录,找到有问题的地方。

以下就是程序在宿主与虚拟机中的行为比对。可以发现,虚拟机中并没有特别多的行为,而是很快就进行pdb的读取;(我也在宿主中测试过,随便输个路径,报错是一样的;也就是还没到加载文件那一步就挂了)左边是宿主,进行了大量注册表读取。

[记录] Ida Pro Command

往下翻,发现它跑去找VisualStudio玩了,太怪了。

[记录] Ida Pro Command

又去看了一下崩溃前的行为,加载了VS的一个文件,然后挂掉;

于是,我严重怀疑是VS搞的鬼。

[记录] Ida Pro Command

ida是通过注册表找到vs的,那我禁止它读取注册表中VS数据能不能阻止它去调用VS的文件呢。

这是我在火绒中的配置:
[记录] Ida Pro Command

解决1

应用火绒的配置后,重新使用ida去加载pdb文件,成功了。

[记录] Ida Pro Command

解决2

在VS中安装C++组件,勾选“C++桌面开发”即可

[记录] Ida Pro Command

使用VS的SDK加载的pdb结果会比自带的简洁明了。

总结

文章写的很顺利,其实中间我以为系统问题,还尝试使用修复命令,也怀疑系统组件有问题,想通过系统更新看有没有什么修复补丁;但实际上都没解决,都是盲目尝试。

在ProcessMonitor中看到VS时,我就觉得很可能是它的问题,因为我虚拟机没有VS;

为此,我还专门把VS卸载了,卸载后发现确实有用,然后才去想共存的方法,就是通过火绒去“隔断”它俩之间的联系。

在“解决”中可以看到 It appears that MS DIA SDK is not installed.

所以,深层原因应该是ida识别到VS,就以为DIA SDK已经安装了,就去加载,失败了;

实际上这个SDK需要在VS中安装C++组件,但是我没有装。


祭夜の咖啡馆 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[记录] Ida Pro Command “LoadPdbFile” failed
喜欢 (0)
[1690127128@qq.com]
分享 (0)
发表我的评论
取消评论
OwO表情
贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址