Cómo recuperar archivos de origen indizado de un archivo binario ejecutable portable

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3195907
Este artículo describe cómo recuperar los archivos de origen indizado de un archivo binario ejecutable portable (PE) de control de código fuente mediante la información que se almacena en el archivo PE archivo binario del emparejamiento archivo de programa (PDB) de la base de datos. Dado que los archivos de origen indizadas tienen sus valores de hash incrustadas en el archivo PDB, estos valores hash se pueden utilizar para verificar la autenticidad de los archivos de origen durante su recuperación.

Nota: En los pasos siguientes, "abc.dll" representa el archivo PE en cuestión.

Paso 1

Uso Symchk Para asignar el archivo .pdb emparejamiento desde una ubicación de servidor de símbolos. Utilice la opción /os para obtener la ruta de acceso completa del símbolo en el mensaje de salida de symchk.

Por ejemplo, la línea de comandos de symchk/v abc.dll /s D:\symbol-path\dll /os devuelve lo siguiente:
[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
En el resultado, observe que la ruta de acceso completa del símbolo es D:\symbol-path\dll\abc.pdb.

Paso 2A

Si el archivo PE en cuestión es código nativo, utilice cvdump en el archivo .pdb asignado junto con la opción -sf para ver archivos de código fuente individuales y sus valores de hash. Los valores hash pueden ser MD5 o SHA256.

Paso 2B

Si se administra el archivo PE en cuestión de código, utilice pdb2xml en el archivo .pdb asignado para ver archivos de código fuente individuales y sus valores de hash. Pueden ser los valores hash SHA1 o SHA256.

Paso 3

Uso srctool con el archivo .pdb asignado junto con la opción -n para mostrar la información de versión del control de origen de persona indiza archivos de código fuente.

Por ejemplo, la línea de comandos srctool - n D:\symbol-path\dll\abc.pdb devuelve lo siguiente:

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

Paso 4

Utilice la información de versión de control de código fuente desde el paso 3 para recuperar los archivos de origen indizado individual. Puede guardar los archivos recuperados de origen a un directorio de sistema de archivos local.

Paso 5

Para cada copia local de los archivos de origen indizado individual recuperado en el paso 4, utilice certutil junto con el verbo - hashfile para generar y mostrar hash de cifrado en la copia. Si el valor de hash asociado con el archivo de origen en el paso 2A o 2B es MD5, SHA1 o SHA256, utilice certutil - hashfile <file_name>SHA256</file_name> , certutil - hashfile <file_name>SHA1</file_name>o <file_name>MD5</file_name>de certutil - hashfileen consecuencia.

Paso 6

Para cada copia local de los archivos de origen indizado individual recuperado en el paso 4, compruebe que el valor de hash que genera certutil en el paso 5 con el correspondiente valor de hash obtenido en el paso 2A o 2B. Si los valores hash no coinciden, algo puede salir mal durante la generación del par de PE/PDB o en el sistema de control de código fuente. Esto merece una mayor investigación. Si los valores hash coinciden, fuertemente indica que los archivos recuperados fuente indizada individuales se utilizaron para compilar el par de PE/PDB.

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 3195907 - Última revisión: 10/05/2016 23:31:00 - Revisión: 1.0

  • kbmt KB3195907 KbMtes
Comentarios