无忧启动论坛

标题: 分享读取TPM模块完整PECMD代码 [打印本页]

作者: 红毛樱木    时间: 2021-10-28 15:22
标题: 分享读取TPM模块完整PECMD代码
  1. CALL GetTPMInfos "%&SystemROOT%\System32\tbs.dll" &&HaveTPM &&TPM_VERSION &&TPM_Type
  2. MESS. <%&&HaveTPM%><%&&TPM_VERSION%><%&&TPM_Type%>
  3. _SUB GetTPMInfos
  4.     ENVI-ret %~2=UnKnown
  5.     ENVI-ret %~3=
  6.     ENVI-ret %~4=
  7.     CALL $--ret:&&htbs --cd ,-LoadLibrary,^%~1
  8.     //MESS. %&&htbs%
  9.     IFEX #%&&htbs%=0,EXIT
  10.     ENVI &&htbs=*%&&htbs%
  11.     ENVI &&TBS_SUCCESS=0    //0x0   功能成功。
  12.     ENVI &&TBS_E_BAD_PARAMETER=2150121474   //0x80284002    一个或多个参数值无效。
  13.     ENVI &&TBS_E_TPM_NOT_FOUND=2150121487   //0x8028400F    在此计算机上找不到兼容的可信平台模块 (TPM) 安全设备。
  14.     ENVI &&TPM_DEVICE_INFO.Size=16
  15.     ENVI$# &&TPM_DEVICE_INFO=*%&&TPM_DEVICE_INFO.Size% 0
  16.     CALL $--qd --ret:&&Tbsi_GetDeviceInfoRet %&&htbs%,Tbsi_GetDeviceInfo,#%&&TPM_DEVICE_INFO.Size%,*&&TPM_DEVICE_INFO
  17.     FIND *=&&Tbsi_GetDeviceInfoRet,
  18.     {*
  19.         ENVI-ret %~2=UnKnown
  20.     }!  
  21.     {*
  22.         IFEX #%&&Tbsi_GetDeviceInfoRet%=%&&TBS_SUCCESS%,
  23.         {*
  24.             ENVI-ret %~2=Exist
  25.             //MESS. %&&Tbsi_GetDeviceInfoRet%
  26.             
  27.             ENVI &&TPM_VERSION_UNKNOWN=0
  28.             ENVI &&TPM_VERSION_12=1
  29.             ENVI &&TPM_VERSION_20=2
  30.             
  31.             ENVI &&TPM_IFTYPE_UNKNOWN=0
  32.             ENVI &&TPM_IFTYPE_1=1 // for 1.2 - use I/O-port or MMIO
  33.             ENVI &&TPM_IFTYPE_TRUSTZONE=2 // 2.0: Trustzone
  34.             ENVI &&TPM_IFTYPE_HW=3 // 2.0: HW TPM
  35.             ENVI &&TPM_IFTYPE_EMULATOR=4 // 2.0: SW-emulator
  36.             ENVI &&TPM_IFTYPE_SPB=5 // 2.0: SPB attached
  37.             
  38.             ENVI?int &&TPM_DEVICE_INFO=&&structVersion
  39.             ENVI?int &&TPM_DEVICE_INFO=&&tpmVersion:~1
  40.             IFEX #%&&tpmVersion%=%&&TPM_VERSION_UNKNOWN%,
  41.             {*
  42.                 ENVI-ret %~3=UnKnownVersion
  43.             }!  
  44.             {*
  45.                 IFEX #%&&tpmVersion%=%&&TPM_VERSION_12%,
  46.                 {*
  47.                     ENVI-ret %~3=1.2
  48.                 }!  
  49.                 {*
  50.                     IFEX #%&&tpmVersion%=%&&TPM_VERSION_20%,
  51.                     {*
  52.                         ENVI-ret %~3=2.0
  53.                     }!  
  54.                     {*
  55.                         ENVI-ret %~3=%&&tpmVersion%
  56.                     }
  57.                 }
  58.             }
  59.             ENVI?int &&TPM_DEVICE_INFO=&&tpmInterfaceType:~2
  60.             IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_UNKNOWN%,
  61.             {*
  62.                 ENVI-ret %~4=UnKnownType
  63.             }!  
  64.             {*
  65.                 IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_1%,
  66.                 {*
  67.                     ENVI-ret %~4=1.2 - use I/O-port or MMIO
  68.                 }!  
  69.                 {*
  70.                     IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_TRUSTZONE%,
  71.                     {*
  72.                         ENVI-ret %~4=2.0: Trustzone
  73.                     }!  
  74.                     {*
  75.                         IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_HW%,
  76.                         {*
  77.                             ENVI-ret %~4=2.0: HW TPM
  78.                         }!  
  79.                         {*
  80.                             IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_EMULATOR%,
  81.                             {*
  82.                                 ENVI-ret %~4=2.0: SW-emulator
  83.                             }!  
  84.                             {*
  85.                                 IFEX #%&&tpmVersion%=%&&TPM_IFTYPE_SPB%,
  86.                                 {*
  87.                                     ENVI-ret %~4=2.0: SPB attached
  88.                                 }
  89.                             }
  90.                         }
  91.                     }
  92.                 }
  93.             }
  94.             ENVI?int &&TPM_DEVICE_INFO=&&tpmImpRevision:~3
  95.             //MESS. <%&structVersion%><%&tpmVersion%><%&tpmInterfaceType%><%&tpmImpRevision%>
  96.         }!  
  97.         {*
  98.             IFEX #%&&Tbsi_GetDeviceInfoRet%=%&&TBS_E_TPM_NOT_FOUND%,
  99.             {*
  100.                 ENVI-ret %~2=Not exist
  101.             }
  102.         }
  103.     }
  104. _END
复制代码



作者: caocaofff    时间: 2021-10-28 17:04
好厉害,可以做CGI的判断代码
作者: nianyueriPE    时间: 2021-10-28 18:57
谢谢分享
作者: fenly    时间: 2021-10-28 19:43
谢谢分享
作者: lily9718    时间: 2021-10-29 06:19
谢谢分享
作者: CQgaxm    时间: 2021-10-29 07:58
厉害,谢谢分享
作者: asdfgh516899    时间: 2021-10-29 08:34
谢谢分享
作者: smmxlsq    时间: 2021-10-29 21:14
谢谢分享
作者: 假大空    时间: 2021-10-30 10:27
厉害。学习下
作者: nianyueriPE    时间: 2022-3-23 19:50
谢谢分享
作者: Anson4    时间: 2023-9-17 15:09
感谢分享!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3