Python - Ayuda con el uso de la libreria LIEF (obtener datos de un archivo)

 
Vista:
sin imagen de perfil
Val: 48
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con el uso de la libreria LIEF (obtener datos de un archivo)

Publicado por JoAnCa (12 intervenciones) el 24/11/2020 02:13:33
Hola a todos
Estoy usando la libreria de python LIEF, que se usa para obtener informacion interna de los archivos.
En mi caso es de los .exe en windows, del que quiero obtener su nombre interno, nombre del producto y firma (signature)

Con este codigo me da toda esa información y mucha mas de la que necesito, pero no se como extraer solo la que quiero, me lo devuelve tipo diccionario, pero no se como manipularlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
import lief
import sys
 
archivo = lief.parse("usjtibdorvslscoojyaxu.exe")
# archivo = lief.parse("C:\\Windows\\explorer.exe")
 
if not archivo.has_resources:
    print("'{}' has no resources. Abort!".format(archivo.name), file=sys.stderr)
    sys.exit(1)
 
resource_manager = archivo.resources_manager.version.string_file_info
aa = resource_manager.langcode_items
print(aa)

Y esto es lo que me devuelve en aa

1
2
3
4
5
6
7
8
9
10
11
ListLangCodeItem[type:  1
key:    040904b0: (ENGLISH - ENGLISH_US - UTF_16)
Items:
    'FileDescription': 'AutoHotkey Unicode 32-bit'
    'InternalName': 'AutoHotkey'
    'OriginalFilename': 'AutoHotkey.exe'
    'FileVersion': '1.1.26.01'
    'ProductName': 'AutoHotkey'
    'LegalCopyright': 'Copyright © 2003-2013'
    'ProductVersion': '1.1.26.01'
]

Lo que quiero esta en los Items.
Probé con aa['Items'] y con aa[1], pero me dan error las dos formas

Como puedo acceder a estos datos?
'InternalName': 'AutoHotkey'
'ProductName': 'AutoHotkey'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con el uso de la libreria LIEF (obtener datos de un archivo)

Publicado por joel (901 intervenciones) el 24/11/2020 08:01:11
La verdad, no he utilizado nunca esa librería, por lo que no se que es "ListLangCodeItem", no se si es un objeto o un texto...

Puedes mirar que es con:
1
type(aa)

Si es un objeto, puedes probar a convertirlo a lista:
1
2
aa=list(aa)
print(aa["Items"])

Ya nos comentaras...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 48
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con el uso de la libreria LIEF (obtener datos de un archivo)

Publicado por JoAnCa (12 intervenciones) el 24/11/2020 15:59:07
Pues el resultado es un diccionario

Ya encontre la solucion, gracias a la ayuda de francisco en foro.recursospython.com

1
2
3
items = aa[0].items
print(items["InternalName"].decode("UTF-8"))
print(items["ProductName"].decode("UTF-8"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con el uso de la libreria LIEF (obtener datos de un archivo)

Publicado por joel (901 intervenciones) el 24/11/2020 19:01:26
Gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar