当前位置: 首页 > web >正文

CRYPT32!ASN1Dec_SignedDataWithBlobs函数分析之CRYPT32!ASN1Dec_AttributesNC的作用是得到三个证书

第一部分:

static int ASN1CALL ASN1Dec_SignedDataWithBlobs(ASN1decoding_t dec, ASN1uint32_t tag, SignedDataWithBlobs *val)
{

......

    if (t == 0x80000000) {
(val)->o[0] |= 0x80;
if (!ASN1Dec_CertificatesNC(dd, 0x80000000, &(val)->certificates))//得到(val)->certificates
return 0;
}


第二部分:

1: kd> p
CRYPT32!ASN1Dec_SignedDataWithBlobs+0x92:
001b:75c7d32c e806e6ffff      call    CRYPT32!ASN1Dec_AttributesNC (75c7b937)
1: kd> t
CRYPT32!ASN1Dec_AttributesNC:
001b:75c7b937 55              push    ebp
1: kd> kc
#
00 CRYPT32!ASN1Dec_AttributesNC
01 CRYPT32!ASN1Dec_SignedDataWithBlobs
02 MSASN1!ASN1_Decode
03 CRYPT32!PkiAsn1Decode
04 CRYPT32!ICM_UpdateDecodingSignedData
05 CRYPT32!CryptMsgUpdate
06 WINTRUST!_GetMessage
07 WINTRUST!SoftpubLoadMessage
08 WINTRUST!_VerifyTrust
09 WINTRUST!WinVerifyTrust
0a sfc_os!SfcValidateFileSignature
0b sfc_os!SfcGetValidationData
0c sfc_os!SfcValidateDLL
0d sfc_os!SfcQueueValidationThread
0e kernel32!BaseThreadStart

第三部分:


1: kd> dv
dec = 0x012337d0
tag = 0x730d0
val = 0x0007ea60

1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 ((CRYPT32!SignedDataWithBlobs *)0x7ea60)
((CRYPT32!SignedDataWithBlobs *)0x7ea60)                 : 0x7ea60 [Type: SignedDataWithBlobs *]
[+0x000] bit_mask         : 0x80 [Type: unsigned short]
[+0x000] o                [Type: unsigned char [1]]
[+0x004] version          : 1 [Type: long]
[+0x008] digestAlgorithms [Type: DigestAlgorithmIdentifiersNC]
[+0x010] contentInfo      [Type: ContentInfoNC]
[+0x060] certificates     [Type: CertificatesNC]


1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 (*((CRYPT32!CertificatesNC *)0x7eac0))
(*((CRYPT32!CertificatesNC *)0x7eac0))                 [Type: CertificatesNC]
[+0x000] count            : 0x3 [Type: unsigned long]
[+0x004] value            : 0x72f18 [Type: tagASN1open_t *]
1: kd> dx -id 0,0,ffffffff89ce3d88 -r1 ((CRYPT32!tagASN1open_t *)0x72f18)
((CRYPT32!tagASN1open_t *)0x72f18)                 : 0x72f18 [Type: tagASN1open_t *]
[+0x000] length           : 0x31d [Type: unsigned long]
[+0x004] encoded          : 0x1e95784 [Type: void *]
[+0x004] value            : 0x1e95784 [Type: void *]
1: kd> dt CRYPT32!tagASN1open_t  0x72f18+8
+0x000 length           : 0x68c
+0x004 encoded          : 0x01e95aa1 Void
+0x004 value            : 0x01e95aa1 Void
1: kd> dt CRYPT32!tagASN1open_t  0x72f18+10
+0x000 length           : 0x69b
+0x004 encoded          : 0x01e9612d Void
+0x004 value            : 0x01e9612d Void

1: kd> ?0x31d
Evaluate expression: 797 = 0000031d
1: kd> ?0x68c
Evaluate expression: 1676 = 0000068c
1: kd> ?0x69b
Evaluate expression: 1691 = 0000069b


第四部分:

1: kd> ?0x1e95784-0x1e00020
Evaluate expression: 612196 = 00095764


1: kd> ?0x01e95aa1-0x1e00020
Evaluate expression: 612993 = 00095a81


1: kd> ?0x01e9612d-0x1e00020
Evaluate expression: 614669 = 0009610d

第五部分:

1: kd> ?0x1e95784-0x1e00020
Evaluate expression: 612196 = 00095764


1: kd> ?0x01e95aa1-0x1e00020
Evaluate expression: 612993 = 00095a81


1: kd> ?0x01e9612d-0x1e00020
Evaluate expression: 614669 = 0009610d

http://www.xdnf.cn/news/20343.html

相关文章:

  • 垃圾回收算法详解
  • 《sklearn机器学习——回归指标2》
  • Java内部类
  • 再读强化学习(动态规划)
  • 时隔4年麒麟重新登场!华为这8.8英寸新「手机」给我看麻了
  • 《Ceph集群数据同步异常的根因突破与恢复实践》
  • 深入剖析RocketMQ分布式消息架构:从入门到精通的技术全景解析
  • Ubuntu 文件权限管理
  • 【正则表达式】选择(Alternation)和分支 (Branching)在正则表达式中的使用
  • MySQL InnoDB 的锁机制
  • Chrome 插件开发入门:打造个性化浏览器扩展
  • 神经网络|(十八)概率论基础知识-伽马函数·下
  • Follow 幂如何刷屏?拆解淘宝闪购×杨幂的情绪共振品牌营销
  • Doris 消费kafka消息
  • 通过PXE的方式实现Ubuntu 24.04 自动安装
  • 版本管理系统与平台(权威资料核对、深入解析、行业选型与国产平台补充)
  • 50.4k Star!我用这个神器,在五分钟内搭建了一个私有 Git 服务器!
  • 小程序的project.private.config.json是无依赖文件,那可以删除吗?
  • Aspose.Words for .NET 25.7:支持自建大语言模型(LLM),实现更安全灵活的AI文档处理功能
  • 《LangChain从入门到精通》系统学习教材大纲
  • java基础学习(四):类 - 了解什么是类,类中都有什么?
  • 25年下载chromedriver.140
  • 项目必备流程图,类图,E-R图实例速通
  • 面试 TOP101 贪心专题题解汇总Java版(BM95 —— BM96)
  • 实力登榜!美创科技荣膺数说安全《2025中国网络安全企业100强》
  • IDEA中Transaction翻译插件无法使用,重新配置Transaction插件方法
  • 基于飞算JavaAI的在线图书借阅平台设计实现
  • Process Explorer 学习笔记(第三章 3.2.2):定制可显示的列与数据保存
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十七天
  • Bug排查日记:从崩溃到修复的实战记录