bkcrack: традиционный инструмент для взлома zip-файлов, основанный на известных атаках с использованием открытого текста.
bkcrack: традиционный инструмент для взлома zip-файлов, основанный на известных атаках с использованием открытого текста.

О bkcrack

ZIP-архивы могут содержать множество записей, содержимое которых может быть сжато или зашифровано с использованием алгоритма симметричного шифрования на основе пароля (так называемого традиционного шифрования PKWARE, устаревшего шифрования или ZipCrypto). Алгоритм генерирует псевдослучайный поток байтов (ключевой поток), который подвергается операции XOR с содержимым записи (открытый текст) для получения зашифрованных данных (зашифрованный текст). Состояние генератора состоит из трех 32-битных целых чисел, инициализированных паролем, а затем постоянно обновляемых открытым текстом по мере шифрования. Эли Бихам и Пол К. Кочер в исследовательской работе «Атаки с использованием известного открытого текста на поточные шифры PKZIP» показали, что этот алгоритм шифрования уязвим для атак с использованием известного открытого текста. Учитывая зашифрованный текст и соответствующий открытый текст длиной 12 или более байт, можно восстановить внутреннее состояние генератора ключевого потока. Этого внутреннего состояния достаточно для полной расшифровки зашифрованного текста, а также других записей, зашифрованных тем же паролем. Его также можно использовать для шифрования паролей сложности nl-6, где n — размер набора символов, а l — длина пароля.

bkcrack — это традиционный инструмент для взлома шифрования zip-файлов, основанный на известных атаках с использованием открытого текста. Этот инструмент реализует свои функции на основе известных атак с открытым текстом Бихама и Кохера. Этот инструмент представляет собой инструмент командной строки и реализует следующие функции:

1. Восстановить внутреннее состояние по зашифрованному и открытому тексту; 2. Используйте внутреннее состояние, чтобы изменить пароль ZIP-файла; 3. Восстановить исходный пароль из внутреннего состояния;

Установка инструмента

предварительно скомпилированный пакет

Мы можем напрямую посетить страницу «Релизы» проекта, чтобы загрузить последнюю официально выпущенную предварительно скомпилированную версию bkcrack.

Проект предоставляет предварительный скомпилированный пакет для операционных систем Ubuntu, macOS и Windows. Мы можем выбрать необходимую версию, чтобы загрузить и разархивировать ее.

На платформе Windows нам также необходимо установить и настроить библиотеку времени выполнения Microsoft. Если она не установлена, загрузите последнюю версию распространяемого пакета Microsoft Visual C++.

Компиляция исходного кода

Кроме того, мы также можем использовать следующую команду для локального клонирования исходного кода проекта:

Язык кода:javascript
копировать
git clone https://github.com/kimci86/bkcrack.git

Затем используйте CMake для ручной сборки кода проекта.

Затем выполнение следующей команды создаст установочную версию в каталоге установки проекта:

Язык кода:javascript
копировать
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release
cmake --build build --config Release --target install

(Проведите пальцем вправо, чтобы увидеть больше)

Сторонний пакет

Использование инструмента

Перечислить элементы данных

Мы можем просмотреть все имена записей и метаданные в документе с именем archive.zip с помощью следующей команды:

Язык кода:javascript
копировать
bkcrack -L archive.zip

Записи, зашифрованные с помощью ZipCrypto, не защищены от известных атак с использованием открытого текста.

Восстановить внутренний ключ

Для этой операции требуется не менее 12 байт известного открытого текста. Чем больше соседних известных открытых текстов, тем выше скорость взлома.

Загрузить данные из ZIP-архива

Предполагая, что ZIP-файл называется зашифрованным.zip, шифром записи является зашифрованный текст, а файл Plain.zip содержит запись в виде обычного открытого текста, вы можете запустить следующую команду:

Язык кода:javascript
копировать
bkcrack -C encrypted.zip -c cipher -P plain.zip -p plain

(Проведите пальцем вправо, чтобы увидеть больше)

Загрузить данные из файла

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

Язык кода:javascript
копировать
bkcrack -c cipherfile -p plainfile

компенсировать

Если открытый текст соответствует части, отличной от начала зашифрованного текста,Вы можете указать компенсацию. Если открытый текст содержит часть зашифрованного заголовка,тогда значение может быть отрицательным:

Язык кода:javascript
копировать
bkcrack -c cipherfile -p plainfile -o offset

разреженный открытый текст

Если вы знаете очень мало последовательных открытых текстов (от 8 до 11 байт),Но знайте некоторые другие известные байты компенсации,Эта информация может быть предоставлена ​​для достижения в общей сложности 12 известных байтов. с этой целью,Пожалуйста, используйте параметр -x,за которым следует компенсировать и шестнадцатеричный байт:

Язык кода:javascript
копировать
bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21

(Проведите пальцем вправо, чтобы увидеть больше)

Количество потоков

Если bkcrack собран с включенным параллельным режимом, количество используемых потоков можно установить через переменную среды OMP_NUM_threads.

дешифратор

Если атака успешна, вы можете использовать следующую команду, чтобы сохранить расшифрованные данные и связанный с ними зашифрованный текст:

Язык кода:javascript
копировать
bkcrack -c cipherfile -p plainfile -d decipheredfile

(Проведите пальцем вправо, чтобы увидеть больше)

Если вы получили ключ от предыдущей атаки, вы можете продолжить расшифровку данных, используя следующую команду:

Язык кода:javascript
копировать
bkcrack -c cipherfile -k 12345678 23456789 34567890 -d decipheredfile

Разархивировать

Язык кода:javascript
копировать
python3 tools/inflate.py < decipheredfile > decompressedfile

Разблокировать зашифрованные документы

Язык кода:javascript
копировать
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip password

восстановить пароль

Учитывая внутренний ключ, bkcrack также может попытаться выяснить исходный пароль:

Язык кода:javascript
копировать
bkcrack -k 1ded830c 24454157 7213b8c5 -r 10 ?p

Мы также можем указать минимальную длину пароля:

Язык кода:javascript
копировать
bkcrack -k 18f285c6 881f2169 b35d661d -r 11..13 ?p

Лицензионное соглашение

Разработка и выпуск этого проекта соответствуют лицензионному соглашению с открытым исходным кодом Zlib.

Адрес проекта

bkcrack

https://github.com/kimci86/bkcrack

Ссылки:

https://cmake.org/

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose