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

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

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

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

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

Категории

Все категории
Loading categories
debloat — Инструмент с графическим интерфейсом и CLI для удаления мусора из исполняемых файлов | Kitploit
Инструменты/GitHubGitHub/squiblydoo/debloat
Обратная инженерияАнализ вредоносных программЦифровая криминалистикаАнализ Бинарных Файлов
GitHubsquiblydoo/debloat

debloat

Инструмент с графическим интерфейсом и CLI для удаления мусора из исполняемых файлов

Репозиторий
4533723 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

debloat

Debloat

Debloat — это инструмент с графическим интерфейсом и интерфейсом командной строки для удаления лишнего мусора из «раздутых» исполняемых файлов.

Под лишним мусором я подразумеваю от 100 до 800 МБ байтов-пустышек, добавляемых в бинарный файл, чтобы не допустить его попадания в песочницу. Такой метод добавления мусора называется «раздуванием» (inflating) или «накачкой» (pumping) бинарного файла. Debloat в настоящее время обрабатывает 10 наиболее распространённых тактик раздувания.

Since it is built with Python, the application can easily be leveraged in other workflows. Currently, debloat is used by CCCS's AssemblyLine and CERT Polska's MWDB.

Since the program is written in Python, its application can be easily integrated into other workflows. Currently, debloat is used by AssemblyLine от CCCS и MWDB от CERT Polska.

Программа может быть скомпилирована для Windows, MacOS, Linux. Графический интерфейс и интерфейс командной строки имеют минимум опций: предполагается, что всё должно быть максимально просто, а логика внутри программы автоматически обрабатывает различные сценарии использования.

Готовые скомпилированные бинарные файлы уже включены в Releases.

Debloat можно установить с помощью pip install debloat. Используйте debloat для запуска CLI и debloat-gui для запуска GUI.

Для продвинутых пользователей Debloat также можно импортировать в другие скрипты и вызывать функции обработки по отдельности.

How to use the GUI?

The GUI of Debloat intends to be as intuitive as possible. When launched, you can drag and drop bloated file onto the text bar and press the "Process file" button. Some technical information will be printed to the scrolling textbox and the file without bloat will be written to the directory the file was pulled from. Sound easy? It is!

Processing files will take a few seconds.
image

Как пользоваться GUI?

Интерфейс Debloat задуман максимально интуитивным. При запуске вы можете перетащить «раздутый» файл в текстовое поле и нажать кнопку «Process file». Некоторая техническая информация будет выведена в прокручиваемое текстовое поле, а файл без «раздувания» будет записан в каталог, из которого был взят исходный файл. Звучит просто? Так и есть!

Обработка файлов займёт несколько секунд.
image

How to use the CLI?

After installing using pip install debloat use the command debloat.
debloat can take two arguments. The first argument is required: the file to debloat. The second argument is optional: the output location. When no output is provided, it will be written to the same directory as the original file.

The gui can also be launched from the CLI using the command debloat-gui.

Как пользоваться CLI?

После установки с помощью pip install debloat используйте команду debloat.
debloat принимает два аргумента. Первый аргумент обязателен: файл для деблоатинга. Второй аргумент необязателен: место вывода. Если вывод не указан, файл будет записан в тот же каталог, что и исходный.

GUI также можно запустить из CLI с помощью команды debloat-gui.

Does it always work?

Not yet. Based on my recent analysis, debloat is able to remove junk from bloated files 97.8% of the time.

In previous versions, debloat could accidentally remove too much of the binary. That is no longer the case unless you use the "--last-ditch" switch. If you ever need this switch, consider sharing the sample for additional analysis. This option has now been added to the GUI. Functionally, what the function does is it will remove the whole overlay, if there is one. In some cases this is necessary as no pattern for the junk was found---this is most commonly the case in samples that do not compress well.

Работает ли это всегда?

Пока нет. Судя по моему недавнему анализу, debloat способен удалять мусор из «раздутых» файлов в 97,8% случаев.

В предыдущих версиях debloat мог случайно удалить слишком большую часть бинарного файла. Теперь это исключено, если только вы не используете переключатель "--last-ditch". Если вам когда-либо понадобится этот переключатель, подумайте о том, чтобы поделиться образцом для дополнительного анализа. Эта опция теперь добавлена и в GUI. По сути, эта функция удаляет весь оверлей целиком, если он есть. В некоторых случаях это необходимо, поскольку не было найдено ни одного шаблона мусора — чаще всего это происходит с образцами, которые плохо сжимаются.

Use Cases (Images from Malcat)

Full support

  • Bloat appended to the end of a Signed PE.
    In the image below, the bloat has been appended to the end of the executable.
    Screenshot 2023-02-11 at 3 32 36 PM

  • Signed or Unsigned Packed executable.
    In the image below, the bloat has been appended to the executable after packing.
    Screenshot 2023-02-11 at 3 44 10 PM

  • Signed executable includes bloat in the .rsrc section of the PE.
    In the image below, the bloat is identified as in the .rsrc section and is removed from the PE.
    Screenshot 2023-02-11 at 3 35 21 PM

  • Cases where bloat is added inside a PE Section.
    In the image below, the bloat has been included in a PE section named [0].
    Screenshot 2023-02-11 at 3 26 52 PM

  • Cases where the executable is a Nullsoft Scriptable Installer System executable (NSIS aka Nullsoft) These exe are installers that may contain one or more files. The files contained may or may not be malicious. (Sometimes actors will add files simply for increasing the file size.) All files within the installer are extracted to a new directory. The directory also contains the script for the installer which can be consulted to determine which files may be malicious. In the image below, Malcat has identified the executable as a NSIS installer. image

Варианты использования (изображения от Malcat)

Полная поддержка

  • Мусор, добавленный в конец подписанного PE-файла.
    На изображении ниже мусор добавлен в конец исполняемого файла.
    Screenshot 2023-02-11 at 3 32 36 PM

  • Подписанный или неподписанный упакованный исполняемый файл.
    На изображении ниже мусор добавлен в исполняемый файл после упаковки.
    Screenshot 2023-02-11 at 3 44 10 PM

  • В подписанный исполняемый файл включён мусор в секции .rsrc PE.
    На изображении ниже мусор определён в секции .rsrc и удалён из PE.
    Screenshot 2023-02-11 at 3 35 21 PM

  • Случаи, когда мусор добавляется внутрь секции PE.
    На изображении ниже мусор включён в секцию PE с именем [0].
    Screenshot 2023-02-11 at 3 26 52 PM

  • Случаи, когда исполняемый файл является исполняемым файлом Nullsoft Scriptable Installer System (NSIS, также известный как Nullsoft). Эти exe-файлы являются установщиками, которые могут содержать один или несколько файлов. Содержащиеся файлы могут быть как вредоносными, так и безвредными. (Иногда злоумышленники добавляют файлы просто для увеличения размера файла.) Все файлы внутри установщика извлекаются в новый каталог. В каталоге также содержится скрипт установщика, с помощью которого можно определить, какие файлы могут быть вредоносными. На изображении ниже Malcat определил исполняемый файл как установщик NSIS.

Partial Support

  • Cases where the junk is too random and the entropy is too high. In these cases, a switch/option called "--last-ditch"

Other use cases

There are use cases where the tool does not work. However, I plan to solve for them before publishing too much about them.

Частичная поддержка

  • Случаи, когда мусор слишком случайный и энтропия слишком высока. В таких случаях используется переключатель/опция "--last-ditch"

Другие варианты использования

Существуют сценарии, в которых инструмент не работает. Однако я планирую решить их, прежде чем публиковать слишком много подробностей.

Why?

There appear to be a limited number of tools to easily process bloated executables. The two tools I have seen the most are “foremost” which is intended for recovering binaries from a disk image and “pecheck”.

Foremost works best in instances where the junk bytes are null (0x00) and it struggles when the binary has a fake or real signature. Its use in removing bloat from files is not its original purpose.

Pecheck has been developed over 14+ years and has some confusing commandline options. The option to remove bloated content is not the primary function of the script. Pecheck has to be combined with another tool (disitool) in order to handle signed executables. In my experience, there are other times where pecheck can get confused and return an executable twice the size of the original bloated executable. All these factors seem OK if you are handling a small number of binaries, but as the number of binaries and methods increase, a tool specific to removing bloat is needed.

Binary Refinery is an amazing tool. It was written with the intention of being a CyberChef of the commandline. While both tools are amazing, they both have a shortcoming that requires the user to know what formulas should be applied.

There are good solid manual methods to remove bloat from binaries, but these methods can be tedious and not all analysts have the skills to do this. This tool removes the burden of needing to know how to manually remove bloat. Additionally, it allows for better scale. The principles used in the script allow allow for better scale if automation is desired.

Почему?

Существует, по-видимому, ограниченное число инструментов для простой обработки «раздутых» исполняемых файлов. Два инструмента, которые я встречал чаще всего, — это "foremost", предназначенный для восстановления бинарных файлов из образа диска, и "pecheck".

Foremost лучше всего работает в случаях, когда байты мусора являются нулевыми (0x00), и испытывает трудности, когда бинарный файл имеет поддельную или настоящую подпись. Его использование для удаления мусора из файлов не является его первоначальным назначением.

Pecheck разрабатывается более 14 лет и имеет несколько запутанных параметров командной строки. Опция удаления «раздутого» содержимого не является основной функцией скрипта. Pecheck необходимо комбинировать с другим инструментом (disitool) для работы с подписанными исполняемыми файлами. По моему опыту, бывают случаи, когда pecheck может запутаться и вернуть исполняемый файл вдвое больше исходного «раздутого» файла. Все эти факторы допустимы, если вы работаете с небольшим количеством бинарных файлов, но по мере увеличения числа бинарных файлов и методов возникает потребность в инструменте, специально предназначенном для удаления мусора.

Binary Refinery — потрясающий инструмент. Он был написан с намерением стать CyberChef командной строки. Оба инструмента замечательны, но у обоих есть недостаток: они требуют, чтобы пользователь знал, какие формулы следует применять.

Существуют хорошие надёжные ручные методы удаления мусора из бинарных файлов, но эти методы могут быть утомительными, и не все аналитики обладают необходимыми навыками. Этот инструмент снимает необходимость знать, как вручную удалять мусор. Кроме того, он позволяет лучше масштабироваться. Принципы, заложенные в скрипт, обеспечивают лучшую масштабируемость при необходимости автоматизации.

How to build?

Follow the build commands appropriate to your platform. The main difference between build commands is the format of the icon.
MacOS
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.icns gui.py

Windows
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.ico gui.py

Linux
pyinstaller --onefile --noconsole --icon=debloat.ico --collect-all tkinterdnd2 gui.py

Как собрать?

Следуйте командам сборки, соответствующим вашей платформе. Основное различие между командами сборки — формат значка.
MacOS
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.icns gui.py

Windows
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.ico gui.py

Linux
pyinstaller --onefile --noconsole --icon=debloat.ico --collect-all tkinterdnd2 gui.py

Want to discuss?

Consider joining the debloat Discord.

Хотите обсудить?

Загляните в Discord-сервер debloat.

Credits

Big shoutout to Jesko Hüttenhain creator of Binary Refinery. The NSIS extraction is based on his reverse engineering of the NSIS file format. Check out Binary Refinery if you have not.

Благодарности

Огромная благодарность Йеско Хюттенхайну, создателю Binary Refinery. Извлечение NSIS основано на его реверс-инжиниринге формата файлов NSIS. Загляните в Binary Refinery, если вы ещё этого не сделали.

Where is this project going next?

Batch processing: process all files in a directory and produce a report.

Better support for using processing methods outside of debloat.

Support for debloating without unzipping.

Каковы дальнейшие планы проекта?

Пакетная обработка: обработка всех файлов в каталоге и формирование отчёта.

Улучшенная поддержка использования методов обработки вне debloat.

Поддержка удаления «раздувания» без распаковки.

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