0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

pe文件簽名信息檢測技術(shù)

禿頭也愛科技 ? 來源:禿頭也愛科技 ? 作者:禿頭也愛科技 ? 2022-10-13 15:43 ? 次閱讀

什么是pe文件的簽名信息

以windows系統(tǒng)中NDIS.sys驅(qū)動程序?yàn)槔谠撐募挠益I屬性窗口中,若包含數(shù)字簽名屬性頁,則表示該pe文件內(nèi)嵌有簽名信息,如下圖所示:

IMG_256當(dāng)雙擊簽名列表時(shí),可以查看數(shù)字簽名信息詳情,如下圖所示:

IMG_257

在詳情中包含了__簽名者信息__以及__簽名時(shí)間戳__等重要的信息,同時(shí)查看高級屬性頁時(shí),可以看到更加豐富的簽名信息,如下圖所示:

IMG_258

其中包括__摘要算法、摘要加密算法等重要的密碼學(xué)問題相關(guān)的信息__。

同時(shí)點(diǎn)擊查看證書時(shí),可以查看到證書詳情信息,如下圖所示:

IMG_259

從中可以看到__頒發(fā)者、證書有效期、公鑰長度等重要信息__。安全工具可以通過分析以上這些重要信息來判斷是否存在安全風(fēng)險(xiǎn)。比如是否使用了不安全密碼學(xué)算法、密鑰長度是否滿足安全規(guī)范、證書有效期是否有效等等。

pe文件如何保存這些簽名信息數(shù)據(jù)的:

利用peview.exe工具來查看Ndis.sys驅(qū)動程序,可以看到簽名信息存在于__IMAGE_NT_HEADER結(jié)構(gòu)__里面,如下圖所示:

IMG_260

該簽名結(jié)構(gòu)解析后可以得到簽名信息在文件中的__偏移地址和數(shù)據(jù)長度__信息, python代碼如下

security_entry = pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
sig_off = pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[security_entry].VirtualAddress
sig_len = pe_obj.OPTIONAL_HEADER.DATA_DIRECTORY[security_entry].Size

根據(jù)偏移地址和數(shù)據(jù)長度獲取簽名數(shù)據(jù),python代碼如下:

with open(file_path, 'rb') as fh:
   fh.seek(sig_off)
   sig_raw_data = fh.read(sig_len)

# 簽名數(shù)據(jù)的結(jié)構(gòu)如下:
# DWORD   dwLength           簽名證書數(shù)據(jù)長度
# WORD    wRevision           簽名證書的版本號
# WORD    wCertificateType      簽名證書類型
# BYTE     bCertificate[dwLength] 簽名證書數(shù)據(jù)

# 簽名證書的版本號
# Version 1 is the legacy version of WIN_CERTIFICATE.WIN_CERT_REVISION_1_0 = 0x0100

# Version 2 is the current version of WIN_CERTIFICATE.WIN_CERT_REVISION_2_0 = 0x0200

# 簽名證書類型
# X.509 CertificateWIN_CERT_TYPE_X509 = 0x0001

# PKCS SignedData structureWIN_CERT_TYPE_PKCS_SIGNED_DATA = 0x0002

# ReservedWIN_CERT_TYPE_RESERVED_1 = 0x0003

# Terminal Server Protocol Stack Certificate signingWIN_CERT_TYPE_TS_STACK_SIGNED = 0x0004

使用ASN.1 Editor工具可以查看簽名證書數(shù)據(jù),如下圖所示:

IMG_261

Python中可以利用__asn1crypto組件來實(shí)現(xiàn)對簽名證書的解__析,python樣例代碼如下:

info = cms.ContentInfo.load(seq_data)
signed_data = info['content']
cert_set = signed_data["certificates"]

#通過遍歷cert_set可以獲取所有證書詳情信息for cert in cert_set:
cert_data = cert.dump()
cert = x509.Certificate.load(cert_data)
#解析cert就可以獲取證書詳情信息

#通過查找id-ct-TSTInfo content type 1.2.840.113549.1.9.16.1.4來獲取簽名時(shí)間信息
encap_content_info = signed_data['encap_content_info']
# id-ct-TSTInfo content type
tst_info = tsp.TSTInfo.load(encap_content_info['content'].parsed.dump())
signing_time = tst_info['gen_time'].native.astimezone().strftime('%Y-%m-%d %H:%M:%S')

另外在簽名數(shù)據(jù)中包含有非簽名的數(shù)據(jù)屬性,python樣例代碼如下:
signer_info = cms.SignerInfo.load(obj.contents)
attrs = signer_info['unsigned_attrs']

需要注意的是不同的簽名屬性,獲取簽名時(shí)間戳等信息的方法是不同的,常見的屬性有:

counter_signaturemicrosoft_nested_signature 、microsoft_time_stamp_token

這些屬性中嵌套有另外的簽名證書結(jié)構(gòu)數(shù)據(jù)

通過這些層層數(shù)據(jù)結(jié)構(gòu)的解析就可以獲取到所有的證書詳情信息,如下圖所示

IMG_262

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87881
  • PE文件
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5433
  • 信息檢測
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5811
收藏 人收藏

    評論

    相關(guān)推薦

    RK3288 apk簽名方法(提供完整簽名文件

    `apk簽名方法:環(huán)境:Ubuntu系統(tǒng)需要的文件:testkey.pk8 testkey.x509.pem signapk.jar附件已經(jīng)上傳把上面幾個(gè)文件放到目標(biāo)apk文件夾中進(jìn)入
    發(fā)表于 08-12 08:22

    OpenHarmony應(yīng)用的簽名配置的流程解析

    ,具體請?jiān)L問HUAWEI DevEco Studio使用指南 (opens new window)。配置應(yīng)用簽名信息的流程如下圖所示?!  ∩擅荑€和證書請求文件  OpenHarmony應(yīng)用通過
    發(fā)表于 03-14 16:40

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-AGC分發(fā)如何配置簽名信息

    使用制作的私鑰(.p12)文件、在AGC申請的證書文件和Profile(.p7b)文件,在DevEco Studio配置工程的簽名信息,以構(gòu)
    發(fā)表于 11-23 11:06

    簽名簽名”之實(shí)現(xiàn)技術(shù)研究

    介紹“簽名簽名”,即筆跡數(shù)字簽名的概念,提出直接和需仲裁的“簽名簽名”之2種結(jié)構(gòu)模式。針對簽名
    發(fā)表于 04-20 09:30 ?15次下載

    基于PE文件格式的信息隱藏技術(shù)研究

    根據(jù)PE 文件結(jié)構(gòu)的特點(diǎn),提出了利用PE 文件結(jié)構(gòu)中的冗余空間,冗余字段和利用PE 文件中靜態(tài)分
    發(fā)表于 07-08 09:22 ?10次下載

    JPEG文件隱形信息檢測算法

    JPEG文件隱形信息檢測算法::隱秘信息分析的目的是正確分辨出文件中是否帶有隱藏的信息.自然圖像
    發(fā)表于 10-26 11:37 ?15次下載

    PE管超聲檢測試驗(yàn)

    測量了PE 管的縱橫波聲速及PE 管熱熔焊縫聲衰減系數(shù),確定了PE 管材料的聲學(xué)性能。采用小波域去噪理論去除噪聲,提高了檢測回波的信噪比。試驗(yàn)表明,超聲
    發(fā)表于 11-23 14:46 ?10次下載

    數(shù)字簽名,什么是數(shù)字簽名

    數(shù)字簽名,什么是數(shù)字簽名 在數(shù)字簽名技術(shù)出現(xiàn)之前,曾經(jīng)出現(xiàn)過一種“數(shù)字化簽名技術(shù),簡單地說就
    發(fā)表于 04-03 16:00 ?6309次閱讀

    PE_SETUP

    PE獨(dú)立安裝包文件,PE維護(hù)系統(tǒng)安裝后開機(jī)可直接選擇進(jìn)入。
    發(fā)表于 03-18 17:12 ?1次下載

    XML加密和簽名技術(shù)信息安全中的研究與應(yīng)用_歐海蕉

    XML加密和簽名技術(shù)信息安全中的研究與應(yīng)用_歐海蕉
    發(fā)表于 03-19 11:28 ?0次下載

    多重簽名技術(shù)介紹

    多重簽名技術(shù)(multisig)就是多個(gè)用戶同時(shí)對一個(gè)數(shù)字資產(chǎn)進(jìn)行簽名??梢院唵蔚睦斫鉃?,一個(gè)賬戶多個(gè)人擁有簽名權(quán)和支付權(quán)。 如果一個(gè)地址只能由一個(gè)私鑰
    發(fā)表于 06-04 10:00 ?2431次閱讀

    PE管的外徑尺寸檢測

        PE管可用于電熱熔管件、熱熔對接管件、承插管件、鋼塑轉(zhuǎn)換接頭等。用途廣泛,為了能更好的保證其質(zhì)量,在線檢測外徑是必不可少的一項(xiàng)檢測手段,在線檢測可保證產(chǎn)品外徑質(zhì)量,實(shí)時(shí)調(diào)控生產(chǎn)
    發(fā)表于 03-18 15:39 ?1383次閱讀

    Schnorr簽名和ECDSA簽名技術(shù)介紹

    Schnorr簽名是一個(gè)使BCH區(qū)塊鏈實(shí)現(xiàn)技術(shù)領(lǐng)先的強(qiáng)大功能,因?yàn)镾chnorr簽名方案直接促進(jìn)了BCH的隱私性和交易能力。Schnorr簽名算法是由著名的密碼學(xué)家Claus Schn
    發(fā)表于 05-16 10:32 ?2737次閱讀

    區(qū)塊鏈數(shù)字簽名技術(shù)的過程及原理介紹

    簽名:在現(xiàn)實(shí)社會中,簽名作為簽名者身份的一種證明,簽名代表對簽名文件的認(rèn)可,不可抵賴。理論上簽名
    發(fā)表于 06-14 14:10 ?2.1w次閱讀
    區(qū)塊鏈數(shù)字<b class='flag-5'>簽名</b><b class='flag-5'>技術(shù)</b>的過程及原理介紹

    數(shù)字簽名技術(shù)的應(yīng)用

    加密領(lǐng)域的技術(shù)來實(shí)現(xiàn)的,用于鑒別數(shù)字信息的方法。一套數(shù)字簽名通常定義兩種互補(bǔ)的運(yùn)算,一個(gè)用于簽名,另一個(gè)用于驗(yàn)證。數(shù)字簽名是非對稱密鑰加密
    的頭像 發(fā)表于 08-20 11:31 ?7631次閱讀
    數(shù)字<b class='flag-5'>簽名</b><b class='flag-5'>技術(shù)</b>的應(yīng)用