Come recuperare i file di origine indicizzato di un file binario eseguibile

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3195907
In questo articolo viene descritto come recuperare i file di origine indicizzato di un file binario eseguibile portabile (PE) dal controllo del codice sorgente utilizzando le informazioni archiviate nel file PE file binario dell'associazione di file di programma (PDB) di database. Poiché i file di origine indicizzata hanno i valori hash incorporati nel file PDB, è possono utilizzare questi valori hash per verificare l'autenticità dei file di origine durante il recupero.

Nota Di seguito, "abc. dll" rappresenta il file PE in questione.

Passaggio 1

Utilizzo Symchk per allocare il file PDB di associazione da un server di simboli. Utilizzare l'opzione /os per ottenere il percorso completo di simbolo nel messaggio di output symchk.

Ad esempio, la riga di comando symchk /v ABC. dll /s D:\symbol-path\dll /os restituisce quanto segue:
[SYMCHK] Searching for symbols to abc.dll in path D:\symbol-path\dllDBGHELP: abc - private symbols & lines        D:\symbol-path\dll\abc.pdb[SYMCHK] SymType: SymPDB[SYMCHK] ModName: abc[SYMCHK] ImageName: abc.dll[SYMCHK] LoadedImage: abc.dll[SYMCHK] PDB: "D:\symbol-path\dll\abc.pdb"[SYMCHK] PDB7 Sig: {625880BA-C1D4-4673-BFA2-07F90AAD7EC4}[SYMCHK] Age: 1[SYMCHK] PDB Matched:  TRUESYMCHK: FAILED files = 0SYMCHK: PASSED + IGNORED files = 1
Nell'output, si noti che il percorso completo di simbolo D:\symbol-path\dll\abc.pdb.

Passaggio 2A

Se il file PE in questione è codice nativo, utilizzare cvdump nel file PDB allocato con l'opzione -if per visualizzare i singoli file e i relativi valori hash. Si sia i valori hash MD5 o SHA256.

Passaggio 2B

Se il file PE in questione è gestito il codice, utilizzare pdb2xml nel file PDB allocato per visualizzare i singoli file e i relativi valori hash. I valori hash possono essere SHA1 o SHA256.

Passaggio 3

Utilizzo srctool nel file PDB allocato con l'opzione -n per visualizzare le informazioni sulla versione di origine controllo di singoli indicizzato il file di origine.

Ad esempio, la riga di comando srctool - n D:\symbol-path\dll\abc.pdb restituisce quanto segue:

d:\publicint\sdk\inc\api_x.h <source control server URL> d:\publicint\sdk\inc\api_x.h#34d:\abc_dll\abc.c <source control server URL> d:\abc_dll\abc.c#1

Passaggio 4

Utilizzare le informazioni sulla versione di controllo di origine dal passaggio 3 per recuperare i singoli file indicizzati. È possibile salvare i file di origine recuperati in una directory di sistema del file locale.

Passaggio 5

Per ogni copia locale dei file di origine di indicizzata singoli recuperato nel passaggio 4, utilizzare certutil con il verbo - hashfile per generare e visualizzare l'hash di crittografia tramite la copia. Se il valore hash è associata al file di origine nel passaggio 2A o 2B MD5 o SHA1, SHA256, utilizzare certutil - hashfile <file_name>MD5</file_name>, <file_name>SHA1</file_name>certutil - hashfileo <file_name>SHA256</file_name> certutil - hashfile di conseguenza.

Passaggio 6

Per ogni copia locale dei file di origine di indicizzata singoli recuperato nel passaggio 4, verificare che il valore hash generato da certutil nel passaggio 5 corrisponde il valore hash corrispondente ottenuto nel passaggio 2A o 2B. Se i valori hash non corrispondono, qualcosa che hanno rispettato durante la generazione della coppia di PE/PDB o nel sistema di controllo di origine. Questo potrebbe richiedere ulteriori indagini. Se i valori hash corrispondono, fortemente indica che i file recuperati singola origine indicizzata sono stati utilizzati per compilare la coppia PE/PDB.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3195907 - Ultima revisione: 10/05/2016 23:33:00 - Revisione: 1.0

  • kbmt KB3195907 KbMtit
Feedback