【20231127更新】IDA 8.3 PDB插件修复增强
转自kanxue 作者sonyps修复了以下问题:
1.pdb所在路径包含了中文或者Unicode特殊字符,IDA会无法自动打开该pdb。
如下图所示:
2.VS2015及以上生成的某些带PDB的发布版的程序,使用IDA打开会报错并崩溃,即使切换到PDB_PROVIDER_MSDIA也依然报错崩溃。
如下图(切换到PDB_PROVIDER_MSDIA前):
如下图(切换到PDB_PROVIDER_MSDIA后):
切换后依然崩溃是因为IDA目前最高只能使用VS2008的MSDIA动态链接库,即图中红色圈出来的"C:\Program Files\Common Files\Microsoft Shared\VC\msdia90.dll",而这个版本的库太老了,并不能保证完美兼容后面版本的VC生成的各种PDB文件。切换前报错是因为IDA的BUG,对PDB文件的解析并不完美。
3.VS2015及之后版本中使用/DEBUG:FASTLINK(也即Partial PDB)链接的程序无法识别显示用户定义的类型变量。
注意:从VS2017开始调试版默认的/DEBUG就是/DEBUG:FASTLINK了。
安装本修复增强插件后的效果图:
4.修复了无法下载压缩格式的PDB的文件的问题
如Mozilla Firefox的PDB文件都是压缩格式的,IDA当前最新版本安装本修复插件前下载会报错。
加入了以下增强特性:
1.在安装了Internet Download Manager(以下简称IDM)的机器上支持自动调用IDM进行多线程高速下载PDB。
2.使用MSDIA内建下载时(通过symsrv.dll)也支持了显示下载进度百分比。
3.使用MSDIA内建下载时(通过symsrv.dll)也支持了立刻取消下载。
源代码开源在:https://github.com/sonyps5201314/pdb
如果坛里有正版用户,可以将代码发送给官方,希望官方能吸纳进去,那样就免得用户手动去修复了,省去了麻烦。
编译好的程序在附件,用户也可以自己编译源码。
使用方法是:解压压缩包中的几个文件到你的IDA7.5 SP3的根目录。注意解压会替换掉插件plugins目录下的pdb.dll和pdb64.dll。建议先将这两个原始文件压缩备份好。
【20210228】修复了不支持识别显示函数内部的局部变量的问题
【20210324】SDK升级到7.6,因此修复了之前加载Mozilla Firefox及Google Chrome的某些符号文件时会报“Failed to calculate struct member alignments”的问题
【20210516】修复在没安装VS2017或者VS2019的机器上可能导致无法加载pdb文件的问题
【20210526】修复一个会导致无法调用起IDM进行下载的问题
【20210803】使用IDA7.6的SDK进行编译,因此支持了IDA7.6SP1
【20210828】修复_NT_SYMBOL_PATH中指定了多个符号服务器地址时,下载符号文件完成后可能会卡一段时间的问题
【20210926】修复附加到进程调试时会导致卡一段时间的问题
【20220207】使用IDA7.7 SP1的SDK进行编译,因此支持了IDA7.7SP1
【20220612】使用IDA7.7 SP1最新的SDK(20220218)进行编译
【20231127】使用IDA8.3最新的SDK进行编译
【注意】WIN7下请自行确保已经安装好了最新系统补丁或者安装好了VS2017或2019。 还是默认的好点,有很多都没pdb给你看吧,7.7默认的会让你选择pdb文件 @风吹屁屁凉
二进制忍者引用中文字符串无法识别
给修复一下吧,大神!
@微笑一刀 按照这个思路试试 谢谢分享{:1_919:} 感谢分享,试试怎么样。 谢谢分享谢谢分享 学习了,感谢分享
学习了,感谢分享 感谢分享,学习试试