Как я могу быстро извлечь скрипт AutoIt из двоичных файлов PE в Python

#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, я ищу альтернативный инструмент, который может извлечь его быстрее.