Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
XLMMacroDeobfuscator — Извлечение и деобфускация XLM макросов (также известных как Excel 4.0 Macros) | Kitploit
Инструменты/GitHubGitHub/dissectmalware/xlmmacrodeobfuscator
Статический анализДинамический анализ (песочница)Обратная инженерияАнализ вредоносных программ
GitHubdissectmalware/xlmmacrodeobfuscator

XLMMacroDeobfuscator

Извлечение и деобфускация XLM макросов (также известных как Excel 4.0 Macros)

Репозиторий
5871184 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

XLMMacroDeobfuscator

XLMMacroDeobfuscator может быть использован для декодирования обфусцированных XLM-макросов (также известных как макросы Excel 4.0). Он использует встроенный эмулятор XLM для интерпретации макросов, не выполняя код полностью.

Инструмент поддерживает форматы xls, xlsm и xlsb.

Для извлечения ячеек и другой информации из файлов xls, xlsb и xlsm используются соответственно библиотеки xlrd2, pyxlsb2 и собственный парсер.

Грамматику XLM также можно найти в файле xlm-macro-lark.template.

Установка эмулятора

  1. Установка с помощью pip
root@kitploit:~
pip install XLMMacroDeobfuscator --force

или

root@kitploit:~
pip install xlmmacrodeobfuscator[defusedxml] --force
  1. Установка последней версии из репозитория
root@kitploit:~
pip install -U https://github.com/DissectMalware/XLMMacroDeobfuscator/archive/master.zip --force

Запуск эмулятора

Для деобфускации макросов в документах Excel:

root@kitploit:~
xlmdeobfuscator --file document.xlsm

Для извлечения только макросов из документов Excel (без деобфускации):

root@kitploit:~
xlmdeobfuscator --file document.xlsm -x

Для получения только деобфусцированных макросов без отступов:

root@kitploit:~
xlmdeobfuscator --file document.xlsm --no-indent --output-formula-format "[[INT-FORMULA]]"

Для экспорта вывода в формате JSON:

root@kitploit:~
xlmdeobfuscator --file document.xlsm --export-json result.json

Пример JSON-вывода можно посмотреть по ссылке.

Для использования файла конфигурации:

root@kitploit:~
xlmdeobfuscator --file document.xlsm -c default.config

Файл default.config должен быть корректным JSON-файлом, например:

root@kitploit:~
{
	"no-indent": true,
	"output-formula-format": "[[CELL-ADDR]] [[INT-FORMULA]]",
	"non-interactive": true,
	"output-level": 1
}

Командная строка

root@kitploit:~

          _        _______
|\     /|( \      (       )
( \   / )| (      | () () |
 \ (_) / | |      | || || |
  ) _ (  | |      | |(_)| |
 / ( ) \ | |      | |   | |
( /   \ )| (____/\| )   ( |
|/     \|(_______/|/     \|
   ______   _______  _______  ______   _______           _______  _______  _______ _________ _______  _______
  (  __  \ (  ____ \(  ___  )(  ___ \ (  ____ \|\     /|(  ____ \(  ____ \(  ___  )\__   __/(  ___  )(  ____ )
  | (  \  )| (    \/| (   ) || (   ) )| (    \/| )   ( || (    \/| (    \/| (   ) |   ) (   | (   ) || (    )|
  | |   ) || (__    | |   | || (__/ / | (__    | |   | || (_____ | |      | (___) |   | |   | |   | || (____)|
  | |   | ||  __)   | |   | ||  __ (  |  __)   | |   | |(_____  )| |      |  ___  |   | |   | |   | ||     __)
  | |   ) || (      | |   | || (  \ \ | (      | |   | |      ) || |      | (   ) |   | |   | |   | || (\ (
  | (__/  )| (____/\| (___) || )___) )| )      | (___) |/\____) || (____/\| )   ( |   | |   | (___) || ) \ \__
  (______/ (_______/(_______)|/ \___/ |/       (_______)\_______)(_______/|/     \|   )_(   (_______)|/   \__/

    
XLMMacroDeobfuscator(v0.2.0) - https://github.com/DissectMalware/XLMMacroDeobfuscator

Error: --file is missing

usage: deobfuscator.py [-h] [-c FILE_PATH] [-f FILE_PATH] [-n] [-x]
                       [--sort-formulas] [--defined-names] [-2]
                       [--with-ms-excel] [-s] [-d DAY]
                       [--output-formula-format OUTPUT_FORMULA_FORMAT]
                       [--extract-formula-format EXTRACT_FORMULA_FORMAT]
                       [--no-indent] [--silent] [--export-json FILE_PATH]
                       [--start-point CELL_ADDR] [-p PASSWORD]
                       [-o OUTPUT_LEVEL] [--timeout N]

optional arguments:
  -h, --help            show this help message and exit
  -c FILE_PATH, --config-file FILE_PATH
                        Specify a config file (must be a valid JSON file)
  -f FILE_PATH, --file FILE_PATH
                        The path of a XLSM file
  -n, --noninteractive  Disable interactive shell
  -x, --extract-only    Only extract cells without any emulation
  --sort-formulas       Sort extracted formulas based on their cell address
                        (requires -x)
  --defined-names       Extract all defined names
  -2, --no-ms-excel     [Deprecated] Do not use MS Excel to process XLS files
  --with-ms-excel       Use MS Excel to process XLS files
  -s, --start-with-shell
                        Open an XLM shell before interpreting the macros in
                        the input
  -d DAY, --day DAY     Specify the day of month
  --output-formula-format OUTPUT_FORMULA_FORMAT
                        Specify the format for output formulas ([[CELL-ADDR]],
                        [[INT-FORMULA]], and [[STATUS]]
  --extract-formula-format EXTRACT_FORMULA_FORMAT
                        Specify the format for extracted formulas ([[CELL-
                        ADDR]], [[CELL-FORMULA]], and [[CELL-VALUE]]
  --no-indent           Do not show indent before formulas
  --silent              Do not print output
  --export-json FILE_PATH
                        Export the output to JSON
  --start-point CELL_ADDR
                        Start interpretation from a specific cell address
  -p PASSWORD, --password PASSWORD
                        Password to decrypt the protected document
  -o OUTPUT_LEVEL, --output-level OUTPUT_LEVEL
                        Set the level of details to be shown (0:all commands,
                        1: commands no jump 2:important commands 3:strings in
                        important commands).
  --timeout N           stop emulation after N seconds (0: not interruption
                        N>0: stop emulation after N seconds)

Библиотека

В следующем примере показано, как использовать XLMMacroDeobfuscator в проекте на Python для деобфускации XLM-макросов:

root@kitploit:~
from XLMMacroDeobfuscator.deobfuscator import process_file

result = process_file(file='path/to/an/excel/file', 
            noninteractive= True, 
            noindent= True, 
            output_formula_format='[[CELL-ADDR]], [[INT-FORMULA]]',
            return_deobfuscated= True,
            timeout= 30)

for record in result:
    print(record)
  • Примечание: логотип xlmdeobfuscator не отображается при использовании в качестве библиотеки.

Требования

Пожалуйста, ознакомьтесь с файлом requirements.txt, чтобы получить список библиотек Python, от которых зависит XLMMacroDeobfuscator.

xlmdeobfuscator может быть запущен в любой операционной системе для извлечения и деобфускации макросов в файлах xls, xlsm и xlsb. Устанавливать MS Excel не требуется.

Примечание: если вы хотите использовать MS Excel (в Windows), необходимо установить библиотеку pywin32 и использовать переключатель --with-ms-excel. Если используется --with-ms-excel, xlmdeobfuscator сначала пытается загрузить файлы xls с помощью MS Excel, и в случае неудачи использует библиотеку xlrd2.

Проекты, использующие XLMMacroDeobfuscator

XLMMacroDeobfuscator используется в следующих проектах:

  • CAPE Sandbox
  • FAME
  • REMNUX
  • IntelOwl
  • Assemblyline 4 от Канадского центра кибербезопасности
  • oletools от @decalage2

Пожалуйста, свяжитесь со мной, если вы включили XLMMacroDeobfuscator в свой проект.

Как внести вклад

Если вы нашли ошибку или хотите предложить улучшение, создайте новую задачу на странице issues.

Не стесняйтесь вносить свой вклад в проект, сделав форк и отправив pull request.

Вы можете связаться со мной (@DissectMalware в Twitter) через личное сообщение.

Скачать инструмент