Come si ottiene l'hash del file PE di un file firmato?

5

Ho un binario PE con una firma digitale. Voglio ottenere l'hash PE originale (non l'hash dell'intero file).

Non riesco a capire come leggerlo dal file. Le specifiche Authenticode suggeriscono che il blocco di firma PKCS # 7 (ad esempio la tabella dei certificati di attributo) ha un campo ContentInfo che contiene l'hash PE originale. Sfortunatamente, Microsoft non definisce una struttura ContentInfo. Né lo spec. PKCS # 7.

Il ricalcolo dell'hash non sarà di aiuto se il file è stato manomesso.

    
posta dockd 08.02.2018 - 02:00
fonte

1 risposta

1

PKCS7 (aka CMS) definisce sicuramente il generico ContentInfo . Vedi rfc2630 sezione 3 et succ, o rfc2315 sezione 7 (nessuna ancora da collegare):

  ContentInfo ::= SEQUENCE {
        contentType ContentType,
        content [0] EXPLICIT ANY DEFINED BY contentType }

  ContentType ::= OBJECT IDENTIFIER

Ma questo è volutamente così flessibile da essere inutile nell'elaborazione dei dati: può contenere qualsiasi tipo di dati finché c'è un OID per identificare quel tipo di dati.

Non sei chiaro sulla tua fonte, ma il mio primo hit da google per "Authenticode signature format" è download.microsoft.com/download/9/c/5/9c5b2167-8017.../Authenticode_PE.docx e che dice a pagina 7 che riguarda contentInfo del SignedData usato per Authenticode:

• contentType must be set to SPC_INDIRECT_DATA_OBJID (1.3.6.1.4.1.311.2.1.4).
• content must be set to an SpcIndirectDataContent structure, which is described later.

e dalla pagina 9 alla 11 (che è effettivamente successiva) contiene una definizione dettagliata che inizia con

SpcIndirectDataContent ::= SEQUENCE {
    data                    SpcAttributeTypeAndOptionalValue,
    messageDigest           DigestInfo
} --#public—

SpcAttributeTypeAndOptionalValue ::= SEQUENCE {
    type                    ObjectID,
    value                   [0] EXPLICIT ANY OPTIONAL
}

dove DigestInfo contiene l'AlgId e il valore digest per un hash canonico del file calcolato utilizzando un processo dettagliato a partire da pagina 15.

    
risposta data 17.03.2018 - 06:51
fonte

Leggi altre domande sui tag