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

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

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

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

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

Категории

Все категории
Loading categories
cart — Python implementation of the CaRT library for (un)inerting files. | Kitploit
Инструменты/GitHubGitHub/cybercentrecanada/cart
Defensive ToolsEncryption/Decryption ToolsMalware AnalysisDigital ForensicsCryptography
GitHubcybercentrecanada/cart

cart

Python implementation of the CaRT library for (un)inerting files.

Репозиторий
5371 год назадПроверено Kitploit

Популярное

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

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

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

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

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

CaRT (сжатый транспорт на базе RC4)

Latest Stable Release

Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных. Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО не могло пометить файл CaRT как вредоносное ПО.

Преимущества

  • БЫСТРО: CaRT работает так же быстро, как и упаковка файла в ZIP
  • ПОТОКОВОСТЬ: CaRT использует zlib и RC4, что позволяет кодировать файлы в потоковом режиме
  • МЕТАДАННЫЕ: CaRT может хранить метаданные файла в том же файле, что и сам файл; метаданные можно прочитать без чтения всего файла
  • ВЫЧИСЛЕНИЕ ХЕША: CaRT вычисляет хеши файла во время его кодирования и сохраняет эту информацию в концевике
  • РАЗМЕР: файлы CaRT обычно меньше исходных файлов, поскольку используется сжатие. (За исключением случаев, когда в CaRT хранятся большие объёмы метаданных)

Использование CaRT с STIX v2

Теперь, когда STIX v2 использует JSON в качестве кодировки, вы можете упаковывать свой отчёт STIX непосредственно в формат CaRT. Когда CaRT кодирует файлы, он добавляет метаданные из файла *.cartmeta с тем же префиксом, что и у вашего файла. Поэтому, если вы сохраните свой отчёт STIX в файл .cartmeta, итоговый файл CaRT будет содержать полный отчёт STIX.

Пример:

root@kitploit:~
$ ls
  file.exe            - Файл, который я хочу закодировать
  file.exe.cartmeta   - Отчёт STIX для file.exe

$ cart file.exe
$ ls
  file.exe            - Файл, который я хочу закодировать
  file.exe.cartmeta   - Отчёт STIX для file.exe
  file.exe.cart       - Файл CaRT, содержащий и file.exe, и его отчёт STIX

Обзор формата

Обязательный заголовок (38 байт)

CaRT имеет обязательный заголовок, который выглядит так:

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

Где VERSION равен 1, а RESERVED — 0. В большинстве случаев ключ RC4, используемый для расшифровки файла, хранится в обязательном заголовке и всегда одинаков (первые 8 цифр числа пи, повторённые дважды). Однако CaRT предоставляет возможность переопределить ключ; в этом случае в обязательном заголовке сохраняются нулевые байты. Тогда вам нужно будет знать ключ, чтобы распаковать файл CaRT...

Необязательный заголовок (OPT_HEADER_LEN байт)

Необязательный заголовок CaRT — это RC4-блоб размером OPT_HEADER_LEN байт, содержащий JSON-сериализованный заголовок:

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Блок данных (N байт)

Блок данных CaRT — это блок, сначала сжатый с помощью zlib, а затем зашифрованный с помощью RC4:

root@kitploit:~
RC4(ZLIB(block encoded stream))

Необязательный концевик (OPTIONAL_FOOTER_LEN байт)

Как и необязательный заголовок, необязательный концевик CaRT — это RC4-блоб размером OPT_FOOTER_LEN байт, содержащий JSON-сериализованный концевик:

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Обязательный концевик (28 байт)

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

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

Интерфейс командной строки

Установив pip-пакет, вы получаете доступ к библиотеке CaRT, а также к CLI CaRT.

CLI CaRT имеет следующий приоритет для своих опций:

  • Для всех опций в CLI заданы значения по умолчанию
  • Значения по умолчанию переопределяются опциями в ~/.cart/cart.cfg
  • Значения в конфигурационном файле переопределяются опциями CLI

Вот какие опции доступны в CLI CaRT:

root@kitploit:~
usage: cart [options] file1 file2 ... fileN

            Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных.

            Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО
            не могло пометить файл CaRT как вредоносное ПО.


positional arguments:
  file

options:
  -h, --help            показать это справочное сообщение и выйти
  -v, --version         показать номер версии программы и выйти
  -d, --delete          удалить исходный файл после успешного выполнения операции
  -f, --force           заменить выходной файл, если он уже существует
  -i, --ignore          игнорировать ключ RC4 из конфигурационного файла
  -j JSONMETA, --jsonmeta JSONMETA
                        предоставить метаданные заголовка в виде JSON-блобa
  -k KEY, --key KEY     использовать закрытый ключ RC4 (в кодировке base64). Тот же ключ необходимо указать для распаковки CaRT.
  -m, --meta            сохранять метаданные при извлечении CaRT-файлов
  -n FILENAME, --name FILENAME
                        использовать это значение как имя файла метаданных
  -o OUTFILE, --outfile OUTFILE
                        задать выходной файл
  -s, --showmeta        показывать только метаданные файла

            CaRT достаточно умён, чтобы определить, нужно ли файл упаковать в CaRT или распаковать из CaRT.

            Чтобы упаковать в CaRT файл, не являющийся CaRT-файлом: cart file1

            Чтобы распаковать CaRT-файл: cart file1

            Это одна и та же команда!

Конфигурационный файл CaRT выглядит так:

root@kitploit:~
[global]
# rc4_key — это представление вашего ключа в base64
rc4_key: AvUzYXNkZg==
# keep_meta эквивалентен -m в CLI
keep_meta: True
# force эквивалентен -f в CLI
force: True

# default_header — это пара данных «ключ/значение», добавляемая в CaRT в необязательный заголовок
[default_header]
poc: Ваше имя
poc_email: [email protected]

Другие библиотеки CaRT

Существуют также реализации CaRT на Rust и Java. Ознакомьтесь с ними ниже:

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java

CaRT (сжатый транспорт на базе RC4)

Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных. Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО не могло пометить файл CaRT как вредоносное ПО.

Преимущества

  • БЫСТРО: CaRT работает так же быстро, как и упаковка файла в ZIP
  • ПОТОКОВОСТЬ: CaRT использует zlib и RC4, что позволяет кодировать файлы в потоковом режиме
  • МЕТАДАННЫЕ: CaRT может хранить метаданные файла в том же файле, что и сам файл; метаданные можно прочитать без чтения всего файла
  • ВЫЧИСЛЕНИЕ ХЕША: CaRT вычисляет хеши файла во время его кодирования и сохраняет эту информацию в концевике
  • РАЗМЕР: файлы CaRT обычно меньше исходных файлов, поскольку используется сжатие. (За исключением случаев, когда в CaRT хранятся большие объёмы метаданных)

Использование CaRT с STIX v2

Теперь, когда STIX v2 использует JSON в качестве кодировки, вы можете упаковывать свой отчёт STIX непосредственно в формат CaRT. Когда CaRT кодирует файлы, он добавляет метаданные из файла *.cartmeta с тем же префиксом, что и у вашего файла. Поэтому, если вы сохраните свой отчёт STIX в файл .cartmeta, итоговый файл CaRT будет содержать полный отчёт STIX.

Пример:

root@kitploit:~
$ ls
  file.exe            - Файл, который я хочу закодировать
  file.exe.cartmeta   - Отчёт STIX для file.exe

$ cart file.exe
$ ls
  file.exe            - Файл, который я хочу закодировать
  file.exe.cartmeta   - Отчёт STIX для file.exe
  file.exe.cart       - Файл CaRT, содержащий и file.exe, и его отчёт STIX

Обзор формата

Обязательный заголовок (38 байт)

CaRT имеет обязательный заголовок, который выглядит так:

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

Где VERSION равен 1, а RESERVED — 0. В большинстве случаев ключ RC4, используемый для расшифровки файла, хранится в обязательном заголовке и всегда одинаков (первые 8 цифр числа пи, повторённые дважды). Однако CaRT предоставляет возможность переопределить ключ; в этом случае в обязательном заголовке сохраняются нулевые байты. Тогда вам нужно будет знать ключ, чтобы распаковать файл CaRT...

Необязательный заголовок (OPT_HEADER_LEN байт)

Необязательный заголовок CaRT — это RC4-блоб размером OPT_HEADER_LEN байт, содержащий JSON-сериализованный заголовок:

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Блок данных (N байт)

Блок данных CaRT — это блок, сначала сжатый с помощью zlib, а затем зашифрованный с помощью RC4:

root@kitploit:~
RC4(ZLIB(block encoded stream))

Необязательный концевик (OPTIONAL_FOOTER_LEN байт)

Как и необязательный заголовок, необязательный концевик CaRT — это RC4-блоб размером OPT_FOOTER_LEN байт, содержащий JSON-сериализованный концевик:

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Обязательный концевик (28 байт)

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

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

Интерфейс командной строки

Установив pip-пакет, вы получаете доступ к библиотеке CaRT, а также к CLI CaRT.

CLI CaRT имеет следующий приоритет для своих опций:

  • Для всех опций в CLI заданы значения по умолчанию
  • Значения по умолчанию переопределяются опциями в ~/.cart/cart.cfg
  • Значения в конфигурационном файле переопределяются опциями CLI

Вот какие опции доступны в CLI CaRT:

root@kitploit:~
usage: cart [options] file1 file2 ... fileN

            Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных.

            Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО
            не могло пометить файл CaRT как вредоносное ПО.


positional arguments:
  file

options:
  -h, --help            показать это справочное сообщение и выйти
  -v, --version         показать номер версии программы и выйти
  -d, --delete          удалить исходный файл после успешного выполнения операции
  -f, --force           заменить выходной файл, если он уже существует
  -i, --ignore          игнорировать ключ RC4 из конфигурационного файла
  -j JSONMETA, --jsonmeta JSONMETA
                        предоставить метаданные заголовка в виде JSON-блобa
  -k KEY, --key KEY     использовать закрытый ключ RC4 (в кодировке base64). Тот же ключ необходимо указать для распаковки CaRT.
  -m, --meta            сохранять метаданные при извлечении CaRT-файлов
  -n FILENAME, --name FILENAME
                        использовать это значение как имя файла метаданных
  -o OUTFILE, --outfile OUTFILE
                        задать выходной файл
  -s, --showmeta        показывать только метаданные файла

            CaRT достаточно умён, чтобы определить, нужно ли файл упаковать в CaRT или распаковать из CaRT.

            Чтобы упаковать в CaRT файл, не являющийся CaRT-файлом: cart file1

            Чтобы распаковать CaRT-файл: cart file1

            Это одна и та же команда!

Конфигурационный файл CaRT выглядит так:

root@kitploit:~
[global]
# rc4_key — это представление вашего ключа в base64
rc4_key: AvUzYXNkZg==
# keep_meta эквивалентен -m в CLI
keep_meta: True
# force эквивалентен -f в CLI
force: True

# default_header — это пара данных «ключ/значение», добавляемая в CaRT в необязательный заголовок
[default_header]
poc: Ваше имя
poc_email: [email protected]

Другие библиотеки CaRT

Существуют также реализации CaRT на Rust и Java. Ознакомьтесь с ними ниже:

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java
Скачать инструмент