malware / test.py
cheikhdeme's picture
Upload folder using huggingface_hub
ec35913 verified
import pefile
import tkinter as tk
from tkinter import filedialog
def extract_pe_info(file_path):
try:
pe = pefile.PE(file_path)
info = {
'AddressOfEntryPoint': hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint),
'MajorLinkerVersion': pe.OPTIONAL_HEADER.MajorLinkerVersion,
'MajorImageVersion': pe.OPTIONAL_HEADER.MajorImageVersion,
'MajorOperatingSystemVersion': pe.OPTIONAL_HEADER.MajorOperatingSystemVersion,
'DllCharacteristics': hex(pe.OPTIONAL_HEADER.DllCharacteristics),
'SizeOfStackReserve': pe.OPTIONAL_HEADER.SizeOfStackReserve,
'NumberOfSections': pe.FILE_HEADER.NumberOfSections,
'SizeOfImage': pe.OPTIONAL_HEADER.SizeOfImage,
'SizeOfHeaders': pe.OPTIONAL_HEADER.SizeOfHeaders,
'Subsystem': pe.OPTIONAL_HEADER.Subsystem,
'Magic': pe.FILE_HEADER.Machine,
'Characteristics': hex(pe.FILE_HEADER.Characteristics),
'TimeDateStamp': pe.FILE_HEADER.TimeDateStamp,
'ImageBase': hex(pe.OPTIONAL_HEADER.ImageBase),
'CheckSum': pe.OPTIONAL_HEADER.CheckSum,
'SizeOfCode': pe.OPTIONAL_HEADER.SizeOfCode,
'SizeOfInitializedData': pe.OPTIONAL_HEADER.SizeOfInitializedData,
'SizeOfUninitializedData': pe.OPTIONAL_HEADER.SizeOfUninitializedData,
'AddressOfEntryPoint': hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint),
'ImageBase': hex(pe.OPTIONAL_HEADER.ImageBase),
'MajorImageVersion': pe.OPTIONAL_HEADER.MajorImageVersion,
'MajorSubsystemVersion': pe.OPTIONAL_HEADER.MajorSubsystemVersion,
'SizeOfImage': pe.OPTIONAL_HEADER.SizeOfImage,
'SizeOfHeaders': pe.OPTIONAL_HEADER.SizeOfHeaders,
'Subsystem': pe.OPTIONAL_HEADER.Subsystem,
'SizeOfHeapReserve': pe.OPTIONAL_HEADER.SizeOfHeapReserve,
'NumberOfRvaAndSizes': pe.OPTIONAL_HEADER.NumberOfRvaAndSizes,
'DataDirectory': pe.OPTIONAL_HEADER.DATA_DIRECTORY,
}
return info
except Exception as e:
return str(e)
def inspect_pe_attributes(file_path):
try:
pe = pefile.PE(file_path)
# Récupérer la liste des entrées DATA_DIRECTORY
data_directory_entries = pe.OPTIONAL_HEADER.DATA_DIRECTORY
# Parcourir la liste pour trouver l'entrée du répertoire des ressources
for entry in data_directory_entries:
if entry.name == "IMAGE_DIRECTORY_ENTRY_RESOURCE":
resource_size = entry.Size
return resource_size
except Exception as e:
return f"Erreur d'inspection du fichier {file_path}: {str(e)}"
def upload_file():
file_path = filedialog.askopenfilename()
if file_path:
pe_info = extract_pe_info(file_path)
print(pe_info)
# Création de l'interface graphique
root = tk.Tk()
root.title("PE File Info Extractor")
upload_button = tk.Button(root, text="Upload PE File", command=upload_file)
upload_button.pack(pady=20)
root.mainloop()