• CryptSIPRetrieveSubjectGuid


    简介

      CryptSIPRetrieveSubjectGuid根据文件类型检索SubjectGUID, 用于 CryptSIPLoad

    提示

      如果检索失败可以使用通用的 CRYPT_SUBJTYPE_FLAT_IMAGE;

      GUID为{DE351A42-8E59-11D0-8C47-00C04FC295EE}

    代码

    program CryptSIPRetrieveSubjectGuid;
    
    {$APPTYPE CONSOLE}
    
    uses
      Windows, SysUtils;
    
    /// ///////////////////////////////////////////////////////////////////////////
    //
    // CryptSIPRetrieveSubjectGuid (defined in crypt32.dll)
    // ----------------------------------------------------------------------------
    // looks at the file's "Magic Number" and tries to determine which
    // SIP's object ID is right for the file type.
    //
    // Returns:
    // TRUE:                           No fatal errors
    // FALSE:                          Errors occured.  See GetLastError()
    //
    
    function _CryptSIPRetrieveSubjectGuid(
      FileName: LPCWSTR; // wide file name
      hFileIn: THandle; // or handle of open file
      pgSubject: PGUID // defined SIP's GUID
      ): BOOL; stdcall; external 'crypt32.dll' name 'CryptSIPRetrieveSubjectGuid';
    
    var
      SubjectGuid: TGUID;
    begin
      if ParamCount < 1 then
      begin
        WriteLn('1. 检索文件 "Magic Number"');
        WriteLn('2. Created 2011/12/19 by Hou');
        WriteLn('3. Command: App <filename>');
        Exit;
      end;
    
      if not _CryptSIPRetrieveSubjectGuid(PWChar(WideString(ParamStr(ParamCount))),
        0,
        @SubjectGuid) then
      begin
        WriteLn('Retrieve Fail!');
        Exit;
      end;
    
      WriteLn(GUIDToString(SubjectGuid));
    end.

    附录:

    const
      // 根据Win2k泄漏的部分源码 mscdfapi.cpp + OllyICE makecat.exe获得(2011/12/20 by Hou)
      // http://mikolajapp.appspot.com/uuid/query?q=%7Bc689aaba-8e78-11d0-8c47-00c04fc295ee%7D
      CRYPT_SUBJTYPE_PE_IMAGE:
        TGUID = '{C689AAB8-8E78-11D0-8C47-00C04FC295EE}';
      CRYPT_SUBJTYPE_JAVACLASS_IMAGE:
        TGUID = '{C689AAB9-8E78-11D0-8C47-00C04FC295EE}';
      CRYPT_SUBJTYPE_CABINET_IMAGE:
        TGUID = '{C689AABA-8E78-11D0-8C47-00C04FC295EE}';
      CRYPT_SUBJTYPE_FLAT_IMAGE:
        TGUID = '{DE351A42-8E59-11D0-8C47-00C04FC295EE}';
      CRYPT_SUBJTYPE_CATALOG_IMAGE:
        TGUID = '{DE351A43-8E59-11D0-8C47-00C04FC295EE}';
      CRYPT_SUBJTYPE_CTL_IMAGE:
        TGUID = '{9BA61D3F-E73A-11D0-8CD2-00C04FC295EE}';
    
  • 相关阅读:
    Sphinx安装流程及配合PHP使用经验
    使用HTML5视频事件示例
    Centos6.5下编译安装mysql 5.6
    AES加密
    ab参数详解 – 压力测试
    vim 常用快捷键
    telnet操作memcache
    如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
    array_map 巧替 foreach
    mac brew安装mysql
  • 原文地址:https://www.cnblogs.com/yryz/p/2294460.html
Copyright © 2020-2023  润新知