1.获取版本号

import pythoncom
import logging
import psutil
from win32com.client import Dispatch

def get_file_version(ip_user):  # 获取版本号
    for i in range(10000000000000):
        try:
            for i in psutil.pids():
                p = psutil.Process(i)
                if "boom.exe" == p.name():
                    pythoncom.CoInitialize()
                    parser = Dispatch("Scripting.FileSystemObject")
                    version = parser.GetFileVersion(p.exe())
                    logging.info("version  user_ip:{}  version:{} path:{}  name:{}".format(ip_user, version, p.exe(), p.name()))
                    break
        except Exception as e:
            logging.error("get_file_version:{}".format(e))

2.获取数值签名(需要安装32位系统python, 然后注册capicom.dll)  # https://zhidao.baidu.com/question/2204427980464242908.html  

import win32com.client

catpath = r'C:\Program Files (x86)\Common Files\BattlEye\BEService.exe'
signedCode = win32com.client.Dispatch('capicom.signedcode')
signedCode.FileName = catpath
signedCode.Verify()
certs = signedCode.Certificates
for cert in certs:
    print(cert.Archived)
    print(cert.IssuerName)
    print(cert.SerialNumber)
    print(cert.SubjectName)
    print(cert.Thumbprint)
    print(cert.ValidFromDate)
    print(cert.ValidToDate)
    print(cert.Version)