
CyberChef v11.4.0
Кибер-швейцарский армейский нож - веб-приложение для шифрования, кодирования, сжатия и анализа данных.
CyberChef
Кибер-швейцарский армейский нож
CyberChef — это простое интуитивно понятное веб-приложение для выполнения всевозможных «кибер»-операций в веб-браузере. Эти операции включают простое кодирование, такое как XOR и Base64, более сложное шифрование, такое как AES, DES и Blowfish, создание бинарных и hex-дампов, сжатие и распаковку данных, вычисление хешей и контрольных сумм, разбор IPv6 и X.509, смену кодировок символов и многое другое.
Инструмент предназначен для того, чтобы дать возможность как техническим, так и нетехническим аналитикам манипулировать данными сложными способами, без необходимости иметь дело со сложными инструментами или алгоритмами. Он был задуман, спроектирован, создан и постепенно улучшался аналитиком в рамках его 10% времени на инновации в течение нескольких лет.
Содержание
- Официальный сайт
- Запуск локально
- Как это работает
- Возможности
- Глубокие ссылки
- Поддержка браузеров
- Поддержка Node.js
- Безопасность
- Участие в разработке
- Лицензирование
Официальный сайт
[Официальный сайт CyberChef можно найти здесь][1] — приятного использования!
Запуск локально
Вы можете запустить CyberChef с помощью Docker (без необходимости в цепочке инструментов) или собрать его из исходного кода с помощью Node.js.
С помощью Docker
Предварительные требования
- Docker
- Docker Desktop должен быть открыт и запущен на вашем компьютере
Вариант 1: соберите Docker-образ самостоятельно
- Соберите Docker-образ
docker build --tag cyberchef --ulimit nofile=10000 .
- Запустите Docker-контейнер
docker run -it -p 8080:8080 cyberchef
- Перейдите по адресу
http://localhost:8080в вашем браузере
Вариант 2: используйте готовый Docker-образ
Если вы предпочитаете пропустить процесс сборки, вы можете использовать готовый образ
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Как и раньше, перейдите по адресу http://localhost:8080 в вашем браузере.
Этот образ собирается и публикуется через наши GitHub Workflows.
Из исходного кода
Если вы хотите разрабатывать CyberChef или запускать его без Docker, вы можете собрать его напрямую с помощью Node.js.
Предварительные требования
- Node.js
v24(см. поддержку Node.js)
[!NOTE]
Вы можете использовать nvm для управления версиями Node.js и использовать текущую версию для разработки из этого проекта, чтобы избежать конфликтов с другими проектами на вашем компьютере.
Настройка
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
Типовые задачи
| Command | Описание |
|---|---|
npm start | Запускает сервер разработки с автоматической перезагрузкой по адресу http://localhost:8080. |
npm run build | Создаёт production-сборку в каталоге build/prod. |
npm test | Запускает наборы тестов для Node.js и операций. |
npm run testui | Запускает браузерные (UI) тесты. |
npm run lint | Проверяет код на соответствие правилам линтинга. |
npm run newop | Создаёт каркас новой операции с помощью интерактивного скрипта быстрого старта. |
Если при сборке больших рецептов вы столкнулись с ошибкой нехватки памяти, увеличьте размер кучи Node.js с помощью npm run setheapsize.
Как это работает
В CyberChef есть четыре основные области:
- Поле input (ввод) в правом верхнем углу, куда вы можете вставить, ввести или перетащить текст или файл, над которым хотите выполнить операции.
- Поле output (вывод) в правом нижнем углу, где будет отображаться результат обработки.
- Список operations (операции) в крайнем левом углу, где вы можете найти все операции, которые умеет CyberChef, в категоризированных списках или с помощью поиска.
- Область recipe (рецепт) в центре, куда вы можете перетаскивать нужные операции и задавать аргументы и параметры.
Вы можете использовать любое количество операций простыми или сложными способами. Вот несколько примеров:
- [Декодировать строку в кодировке Base64][2]
- [Преобразовать дату и время в другой часовой пояс][3]
- [Разобрать Teredo IPv6-адрес][4]
- [Преобразовать данные из hexdump, затем распаковать][5]
- [Расшифровать и дизассемблировать shellcode][6]
- [Отобразить несколько меток времени в виде полных дат][7]
- [Выполнять разные операции над данными разных типов][8]
- [Использовать части входных данных в качестве аргументов операций][9]
- [Выполнить расшифровку AES, извлекая IV из начала потока шифра][10]
- [Более простой способ выполнить ту же самую расшифровку AES][13]
- [Автоматически определять несколько уровней вложенной кодировки][12]