首页
社区
课程
招聘
[原创]国庆假期很闲之针对 VS2019 + WDK10 生成驱动关不掉pdb符号文件的研究
发表于: 2022-10-2 01:32 13193

[原创]国庆假期很闲之针对 VS2019 + WDK10 生成驱动关不掉pdb符号文件的研究

2022-10-2 01:32
13193

引用自:WDK10 + VS2019 关不掉符号开关


两年前,这个问题一直就这样挂起了,本着闲来无事找事的心态,把事情的前因后果从头分析了一遍



玩过VS的应该都知道,这样一来,不管是创建dll或者exe就不会生成pdb符号文件了

但是用WDK10创建驱动就不一定了,创建sys始终会生成pdb文件,那么问题来了,pdb符号文件是生成的呢


可能有些人不知道,VS的开发工具里面有一个mspdbsrv.exe这个进程名字大概可以猜出来,就是它生成pdb符号文件的

那么继续反推,VS是如何调用这个进程的呢?



看到这里,link.exe有没有熟悉的感觉呢?没错,就是link调用的mspdbsrv,那就继续回溯,来看一下堆栈



link通过CreateProcess调用mspdbsrv,有了这条线索,那么接下来就好办了,直接用OD附加link

根据上面的截图来对比分析,来到 link.exe + 0x30d60



也就是说,判断 cmp byte ptr ds:[0x6980F9],0x0 里面的值不为0,才会调用mspdbsrv




IDA可以发现这里面的初始值就是1,那意思就是,如果不生成pdb文件,就需要调用一段代码去把这里面的值写成0,继续回溯分析



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-10-2 01:37 被luskyc编辑 ,原因:
收藏
免费 11
支持
分享
最新回复 (8)
雪    币: 950
活跃值: (9946)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
2
谢谢分享.很有用.
2022-10-2 09:13
0
雪    币: 10088
活跃值: (4491)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2022-10-2 10:39
0
雪    币: 100
活跃值: (2503)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可以
2022-10-10 18:16
0
雪    币: 377
活跃值: (5996)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
5
有趣,虽然没什么实际价值,但是这是逆向的乐趣,发现别人不在二进制不知道的,做别人做不到的
2022-10-10 18:52
0
雪    币: 6209
活跃值: (5037)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
6
mark
2023-7-24 01:00
0
雪    币: 8845
活跃值: (5341)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
5楼说的有道理
2023-7-24 08:03
0
雪    币: 3594
活跃值: (31031)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢分享
2023-7-24 13:46
1
雪    币: 1289
活跃值: (1337)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mark
2023-7-24 14:17
0
游客
登录 | 注册 方可回帖
返回
//