Como obter ficheiros de origem indexada de um ficheiro binário executável portátil

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3195907
Este artigo descreve como obter os ficheiros de origem indexada de um ficheiro binário de (PE portable executable) de controlo de origem, utilizando informações que se encontra o PE ficheiro binário do par de ficheiro de base de dados (PDB) do programa. Dado que os ficheiros de origem indexada têm os valores de hash incorporados no ficheiro PDB, estes valores hash podem ser utilizados para verificar a autenticidade dos ficheiros de origem durante a sua obtenção.

Nota Nos passos seguintes, "abc.dll" representa o ficheiro de PE em questão.

Passo 1

Utilização Symchk Para atribuir o ficheiro. pdb emparelhamento de uma localização de servidor do símbolo. Utilize a opção de /os para obter o caminho completo do símbolo na mensagem de saída symchk.

Por exemplo, a linha de comandos symchk /v abc.dll /s D:\symbol-path\dll /os devolve a seguinte:
[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
Na saída, repare que o caminho completo do símbolo é D:\symbol-path\dll\abc.pdb.

Passo 2A

Se o ficheiro de PE em questão for código nativo, utilize cvdump relativamente ao ficheiro. pdb atribuída juntamente com a opção -sf para visualizar ficheiros de origem individuais e os respectivos valores de hash. Podem ser os valores de hash MD5 ou SHA256.

Passo 2B

Se o ficheiro de PE em questão é gerido de código, utilize pdb2xml relativamente ao ficheiro. pdb atribuída para visualizar ficheiros de origem individuais e os respectivos valores de hash. Podem ser os valores de hash SHA1 ou SHA256.

Passo 3

Utilização srctool relativamente ao ficheiro. pdb atribuída juntamente com a opção -n para mostrar as informações de versão de controlo de origem do indivíduo indexar ficheiros de origem.

Por exemplo, a linha de comandos srctool - n D:\symbol-path\dll\abc.pdb devolve a seguinte:

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

Passo 4

Utilize as informações de versão de controlo de origem do passo 3 para obter ficheiros de origem indexada individuais. Pode guardar os ficheiros de origem obtido para um directório do sistema de ficheiros local.

Passo 5

Para cada cópia local dos ficheiros de origem de indexada individual obtido no passo 4, utilizar certutil em conjunto com o verbo - hashfile para gerar e apresentar hash criptográfico da cópia. Se o valor hash associado ao ficheiro de origem no passo 2A ou 2B é MD5, SHA1 ou SHA256, utilize certutil - hashfile <file_name>MD5</file_name>, certutil - hashfile <file_name>SHA1</file_name>ou certutil - hashfile <file_name>SHA256</file_name> em conformidade.

Passo 6

Para cada cópia local dos ficheiros de origem de indexada individual obtido no passo 4, certifique-se de que o valor de hash é gerado pelo certutil no passo 5 corresponde ao valor de hash correspondente obtido no passo 2A ou 2B. Se os valores de hash não coincidirem, algo poderá ter sido implementada incorrecto durante a geração do par de PE/PDB ou no sistema de controlo de origem. Isto pode justificar uma investigação. Se os valores de hash corresponderem, fortemente indica que os ficheiros de origem de indexada individuais obtidos foram utilizados para compilar o par de PE/PDB.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3195907 - Última Revisão: 10/05/2016 23:36:00 - Revisão: 1.0

  • kbmt KB3195907 KbMtpt
Comentários