PE文件格式学习(七):安全表(Security)

1.介绍

如果一个应用程序有数字签名,那么它的安全表就不会为空。它位于异常表的后面。

2.安全表解析

通过数据目录表里提供的RVA,我们转换成offset,找到了安全表的位置,如下:

安全表的结构体如下:

typedef struct _WIN_CERTIFICATE
{
    DWORD dwLength;
    WORD wRevision;
    WORD wCertificateType;
    BYTE bCertificate[ANYSIZE];
}

dwLength:此结构体的长度,对应上图中的0x00003390

wRevision:在bCertificate里面保护的证书的版本号,版本号有两种,如下表,一般为0x0200,对应上图中的0x0200

信息Win32 SDK中的宏定义名
0x0100Win_Certificate的老版本WIN_CERT_REVISION_1_0
0x0200Win_Certificate的当前版本WIN_CERT_REVISION_2_0

wCertificateType:证书类型,有如下表格中的类型,对应上图中的0x0002

信息Win32 SDK中的宏定义名
0x0001X.509证书WIN_CERT_TYPE_X509
0x0002包含PKCS#7的SignedData的结构WIN_CERT_TYPE_PKCS_SIGNED_DATA
0x0003保留WIN_CERT_TYPE_RESERVED_1
0x0004终端服务器协议堆栈证书签名WIN_CERT_TYPE_TS_STACK_SIGNED

bCertificate:包含一个或多个证书,一般来说这个证书的内容一直到安全表的末尾。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值