首页 > 编程语言 >python3---signify-验证PE文件证书

python3---signify-验证PE文件证书

时间:2023-06-17 20:55:08浏览次数:53  
标签:info 00 signify signed --- PE print DigiCert data

python3---signify-验证PE文件证书

keywords: 验证签名

signify可以用来查看和验证PE文件证书
github地址: https://github.com/ralphje/signify

安装模块:

pip install signify

示例:

from signify.authenticode.signed_pe import SignedPEFile

with open("Everything.exe", "rb") as f:
    try:
        pe = SignedPEFile(f)
        for signed_data in pe.signed_datas:
            print("Included certificates:")
            for cert in signed_data.certificates:
                print(f"    Subject: {cert.subject.dn}")
                print(f"    Issuer: {cert.issuer.dn}")
                print(f"    Serial: {cert.serial_number}")
                print(f"    Valid from: {cert.valid_from}")
                print(f"    Valid to: {cert.valid_to}")

            print()
            print("Signer:")
            print(f"    Issuer: {signed_data.signer_info.issuer.dn}")
            print(f"    Serial: {signed_data.signer_info.serial_number}")
            print(f"    Program name: {signed_data.signer_info.program_name}")
            print(f"    More info: {signed_data.signer_info.more_info}")

            if signed_data.signer_info.countersigner:
                countersigner = signed_data.signer_info.countersigner
                print()
                print("Countersigner:")
                print(f"    Issuer: {countersigner.signer_info.issuer.dn}")
                print(f"    Serial: {countersigner.signer_info.serial_number}")
                print(f"    Signing time: {countersigner.signing_time}")

            print()
            try:
                signed_data.verify()
                print("Signature: valid")
            except Exception as e:
                print("Signature: invalid")
                print(f"{e}")

    except Exception as e:
        print("Error while parsing: " + str(e))

输出:

Included certificates:
    Subject: CN=voidtools, O=voidtools, L=Wilmington, ST=South Australia, C=AU
    Issuer: CN=DigiCert SHA2 Assured ID Code Signing CA, OU=www.digicert.com, O=DigiCert Inc, C=US
    Serial: 19513861298539538856767452546965809223
    Valid from: 2020-11-16 00:00:00+00:00
    Valid to: 2022-03-17 23:59:59+00:00
    Subject: CN=DigiCert SHA2 Assured ID Code Signing CA, OU=www.digicert.com, O=DigiCert Inc, C=US
    Issuer: CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
    Serial: 5364131601516814570659357524942475272
    Valid from: 2013-10-22 12:00:00+00:00
    Valid to: 2028-10-22 12:00:00+00:00

Signer:
    Issuer: CN=DigiCert SHA2 Assured ID Code Signing CA, OU=www.digicert.com, O=DigiCert Inc, C=US
    Serial: 19513861298539538856767452546965809223
    Program name: None
    More info: None

Countersigner:
    Issuer: CN=DigiCert SHA2 Assured ID Timestamping CA, OU=www.digicert.com, O=DigiCert Inc, C=US
    Serial: 17624174242159194906345698804472279261
    Signing time: 2021-01-25 06:38:24+00:00

Signature: valid

2019/12/3

标签:info,00,signify,signed,---,PE,print,DigiCert,data
From: https://www.cnblogs.com/-rvy-/p/17488228.html

相关文章

  • opencv 直方图/ 均衡化
    importcv2importnumpyasnpimportmatplotlib.pyplotasplt#若是画图像plt是RGB的与cv2不同img=cv2.imread('C:/Users/59925/Desktop/pytest/pics/eye.jpg')#把图片读取成灰度图minions-stemplate=cv2.imread('C:/Users/59925/Desktop/pytest/pics/eye.jpg')#把图片读取......
  • CF 1735 D. Meta-set
    题目链接:https://codeforces.com/contest/1735/problem/D代码链接:https://codeforces.com/contest/1735/submission/209958432给定n个长度为k的串(互不相同),求合法五元集的数量合法五元集定义为至少包含超过1个合法三元集合法三元集定义为三个串,三个串的属性要么全部相同,要么互......
  • 【技术学习】网络学习--简单tcp服务器
    这是一个用AI生成的简单的tcp服务器代码,我稍微改动了一下命名啥的。可以看到代码非常简短,不过却没什么问题,人工智能还是很强的。#include<iostream>#include<sys/socket.h>#include<netinet/in.h>#include<cstring>#include<unistd.h>#defineMAXLNE4096intmai......
  • 数据结构-枚举
    在Java中,枚举(Enumeration)是一种特殊的数据类型,用于定义一组具名的常量。枚举常量是一组预定义的值,它们在枚举类型中被列出,每个常量都有一个名称和一个关联的值。枚举类型在Java中是通过关键字enum来定义的。定义枚举类型后,可以使用枚举常量来表示具体的取值。enumSeason{......
  • 基础语法-异常
    try-catch语句块:使用try-catch语句块可以捕获和处理异常。在try块中放置可能会抛出异常的代码,然后通过catch块捕获并处理异常。catch块中指定要处理的异常类型,并提供相应的处理逻辑。try{//可能会抛出异常的代码}catch(ExceptionType1e1){//处理ExceptionT......
  • react经典面试题解析--持续更新--day01
    一、类组件和函数组件的区别(面试常考)简单理解(所有同学都要掌握)1、类组件有生命周期,函数组件没有2、类组件需要继承Class,函数组件不需要3、类组件可以获取实例化的this,并且基于this做各种操作,函数组件不行4、类组件内部可以定义并维护state,函数组件都称为无状态了,那肯定......
  • 领域驱动设计-软件核心复杂性应对之道 11-13
    11.分析模式的应用马丁分析模式:表示业务建模中的常见构造分析模式的最大作用是借鉴其他项目的经验,把那些项目中所做的广泛的设计方向讨论和实现结果的经验与当前的模型结合起来。记账:钱不会无中生有,也不会无故消失。它只能从一个账户迁移到另一个账户。当你可以幸运地使用一......
  • IOT硬件&芯片安全检测工具--BTS1002多接口精密触发故障注入仪
    注1:该软硬件产品均为湖南底网安全信息技术有限公司自主研发,已申请1个发明专利,2个实用新型专利,1个软著,转载请注明出处注2:详细内容详见产品技术手册、用户手册,官网下载地址:注3:诚招区域独家代理合作伙伴,欢迎洽谈合作,湖南底网安全竭诚为您服务1.产品背景没有网络安全,就没有国家安全,“......
  • tmux -- terminal multiplexer
    概念https://www.ruanyifeng.com/blog/2019/10/tmux.htmlSSH登录后,使用tmux可以保留回话,即使关闭终端。同一个回话可以被多个终端共享,分享屏幕,主机开启一个tmux,远程机器SSH登录主机,使用tmuxattach此回话。 命令行的典型使用方式是,打开一个终端窗口(terminalwindow,以下简......
  • threejs-初识shader
    GLSL文件: importvertexGLSLfrom'./shaders/test1-patterns/vertex.glsl?raw' uniformmat4projectionMatrix;uniformmat4viewMatrix;uniformmat4modelMatrix;uniformvec2uFrequency;uniformfloatuTime;attributevec2uv;attributevec3po......