import ctypes import struct import windows from windows.generated_def.winstructs import * IID_PACK = "".format(repr(filename))) file_data = WINTRUST_FILE_INFO() file_data.cbStruct = ctypes.sizeof(WINTRUST_FILE_INFO) file_data.pcwszFilePath = filename file_data.hFile = None file_data.pgKnownSubject = None WVTPolicyGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2 win_trust_data = WINTRUST_DATA() win_trust_data.cbStruct = ctypes.sizeof(WINTRUST_DATA) win_trust_data.pPolicyCallbackData = None win_trust_data.pSIPClientData = None win_trust_data.dwUIChoice = WTD_UI_NONE win_trust_data.fdwRevocationChecks = WTD_REVOKE_NONE win_trust_data.dwUnionChoice = WTD_CHOICE_FILE win_trust_data.dwStateAction = WTD_STATEACTION_VERIFY win_trust_data.hWVTStateData = None win_trust_data.pwszURLReference = None win_trust_data.dwUIContext = 0 win_trust_data.tmp_union.pFile = ctypes.pointer(file_data) WinVerifyTrust = ctypes.WinDLL("wintrust").WinVerifyTrust x = WinVerifyTrust(None, ctypes.byref(WVTPolicyGUID), ctypes.byref(win_trust_data)) win_trust_data.dwStateAction = WTD_STATEACTION_CLOSE WinVerifyTrust(None, ctypes.byref(WVTPolicyGUID), ctypes.byref(win_trust_data)) return x & 0xffffffff