-
-
[原创]WinVerifyTrust API简单了解
-
发表于:
2020-3-5 12:40
8015
-
[原创]WinVerifyTrust API简单了解
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可以直接看源码,逻辑应该基本一致