首页
社区
课程
招聘
[原创]WinVerifyTrust API简单了解
发表于: 2020-3-5 12:40 8015

[原创]WinVerifyTrust API简单了解

2020-3-5 12:40
8015

WinVerifyTrust 是一个用于验证签名的API, 官方文档地址:
https://docs.microsoft.com/en-us/windows/win32/api/wintrust/nf-wintrust-winverifytrust

ReactOS是个好东西,直接看源码吧:
https://github.com/reactos/reactos/blob/d296bbebbef07e1a9eab79dd6f503e20d38fdeeb/dll/win32/wintrust/wintrust_main.c

后面的内容可以忽略。

官方只给了WinVerifyTrust API 的定义, 但内部实现并没有描述, 我们可以通过IDA看一下它的伪代码

WinVerifyTrust 在 wintrust.dll 中, windows路径为:

直接用IDA去看, 很多函数都没有名字, 有必要先把pdb文件下载好(我下的是32位dll的pdb文件)

下载pdb文件的过程比较曲折, 描述一下:

如果第3步下载成功了, 可以根据下方日志显示的本地位置拿到pdb文件, 如果没有下载成功, 也可以根据日志的下载链接手动下载. 我这里没有下载成功, 日志中的链接为:
https://msdl.microsoft.com/download/symbols/wintrust.pdb/D4263D1DBEC3B0AC2D6B03BEFC8020C51/wintrust.pdb
自己下载就可以了

用IDA打开wintrust.dll, 然后手动load下载好的wintrust.pdb, 接着IDA的F5大法, 就可以愉快地看伪代码了

如果想要调试怎么办?

微软的SysinternalsSuite工具集中有一个sigcheck.exe, 主功能就是调用WinVerifyTrust API实现的, 所以可以调试它

这样就可以调试了, 上面的pdb文件如果是手动下载的, 可以复制到日志显示的对应本地位置, 调试就很方便了

 
 
 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-13 13:15 被qux编辑 ,原因: ReactOS可以直接看源码,逻辑应该基本一致
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 83
活跃值: (1082)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
mark
2020-3-6 06:50
0
雪    币: 364
活跃值: (1641)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
已读,收藏
2020-3-6 09:22
0
游客
登录 | 注册 方可回帖
返回
//