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

[原创]WinVerifyTrust API简单了解

2020-3-5 12:40
8587

WinVerifyTrust 是一个用于验证签名的API, 官方文档地址:
a74K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3V1k6%4K9h3^5K6x3W2)9J5c8X3q4H3K9g2)9J5c8Y4N6A6L8Y4c8J5N6i4y4@1i4K6u0r3L8X3k6Q4x3X3c8%4K9h3&6@1M7Y4g2K6N6q4)9J5k6s2N6A6L8Y4k6W2M7X3W2X3P5i4c8J5N6i4y4@1

ReactOS是个好东西,直接看源码吧:
4caK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5k6h3q4U0N6r3!0K6i4K6u0r3M7X3g2S2j5%4c8G2M7#2)9J5c8X3u0D9L8$3u0Q4x3V1k6V1x3U0V1$3j5X3u0W2j5X3u0W2k6U0l9%4k6e0q4S2z5h3g2S2j5U0M7&6k6r3b7$3k6U0f1H3x3$3f1J5x3r3b7K6z5r3k6V1k6h3g2T1i4K6u0r3k6r3I4D9i4K6u0r3N6$3W2F1x3K6u0Q4x3V1k6%4K9h3&6@1M7Y4g2K6N6q4)9J5c8Y4N6A6L8Y4c8J5N6i4y4@1i4K6g2X3L8h3q4A6L8W2)9J5k6h3x3`.

后面的内容可以忽略。

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

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

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

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

如果第3步下载成功了, 可以根据下方日志显示的本地位置拿到pdb文件, 如果没有下载成功, 也可以根据日志的下载链接手动下载. 我这里没有下载成功, 日志中的链接为:
a2dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7$3c8D9i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6K6P5h3#2T1L8$3I4K6i4K6u0r3N6$3W2F1N6s2u0#2M7%4c8Q4x3X3g2H3k6r3u0Q4x3V1k6p5y4o6t1$3x3@1b7I4c8p5u0q4b7K6y4n7x3p5q4o6x3V1b7$3b7U0l9K6b7V1g2r3b7K6R3H3x3U0m8o6y4e0q4Q4x3V1k6%4K9h3&6@1M7Y4g2K6N6q4)9J5k6i4m8V1j5R3`.`.
自己下载就可以了

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

如果想要调试怎么办?

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

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

 
 
 

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

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