#python #autoit #portable-executable
#python #autoit #портативный-исполняемый
Вопрос:
У меня есть много двоичных файлов PE для анализа, некоторые из них являются вредоносными, некоторые из них нет, но мы можем знать, что есть скрипт AutoIt и другие ресурсы (например, .exe/.jpg/.dll ) в скомпилированном двоичном файле я пытаюсь извлечь этот ресурс из этих двоичных файлов.
В настоящее время я использую инструмент под названием AutoIt-Ripper, ну, он может выполнить работу, но производительность довольно низкая, некоторые двоичные файлы могут быть извлечены в течение нескольких секунд, некоторые двоичные файлы могут занять даже 20 минут.
вот несколько примеров:
часть блока кода:
from autoit_ripper import extract, AutoItVersion
def extract_autoit(path_name):
with open(path_name, 'rb') as f:
file_data = f.read()
data = extract(data=file_data, version=AutoItVersion.EA06)
output_path = f"output/{path_name.split('/')[-1]}"
if data:
output = Path(output_path)
if not output.is_dir():
log.info("The output directory doesn't exist, creating it")
output.mkdir()
for filename, content in data:
filename = basename(filename)
log.info(f"Storing result in {(output / filename).as_posix()}")
(output / filename).write_bytes(content)
AutoIt-Ripper может извлечь скрипт AutoIt в течение нескольких секунд, если двоичный файл содержит только скрипт AutoIt, но если двоичный файл содержит больше, это может занять целую вечность
Я ищу некоторую помощь, чтобы сократить время декомпиляции, ища среднее значение декомпиляции, возможно, на уровне секунд.
Комментарии:
1. Узким местом, вероятно, является скорость
autoit_ripper.extract()
выполнения, поэтому вам нужно будет ускорить его, а не ваш сценарий драйвера.2. Да, узким местом является AutoIt-Ripper, я ищу альтернативный инструмент, который может извлечь его быстрее.