Автоматическое дешифрование/декодирование без знания метода. Определяет и применяет сотни схем: Base64, ROT13, Caesar, XOR, JWT, хеши, URL-encoding, morse, binary и другие. Идеален для CTF и анализа захваченных данных.
pip3 install ciphey ciphey -t "aGVsbG8gd29ybGQ=" # Из файла: ciphey -f encrypted.txt # Тихий режим: ciphey -t "SGVsbG8gV29ybGQ=" --quiet # Docker: docker run -it remnux/ciphey
➡️
Discord |
Документация
⬅️
ciphey — это инструмент декодирования нового поколения, созданный теми же людьми, что привнесли вам Ciphey.
Мы полностью намерены заменить Ciphey на ciphey.
✨ Вы можете узнать больше о ciphey здесь https://skerritt.blog/introducing-ciphey/ ✨
Самый простой способ использовать ciphey — присоединиться к Discord-серверу, перейти в канал #bots и использовать ciphey с помощью $ciphey. Введите $help для получения полезной информации!
Второй лучший способ — использовать cargo install ciphey и вызывать его с помощью ciphey.
Вы также можете сделать git clone этого репозитория и запустить docker build ., чтобы получить образ.
Некоторые функции, которые могут вас заинтересовать, и которыми мы гордимся.
ciphey быстр. Очень быстр. Другие декодеры, такие как Ciphey, требуют продвинутого искусственного интеллекта для определения того, какой путь декодирования следует предпринять (пытаться ли шифр Цезаря или Base64 и т.д.).
ciphey настолько быстр, что нам пока не нужно об этом беспокоиться. На каждое 1 декодирование, которое может выполнить Ciphey, ciphey может выполнить ~7. Это увеличение скорости на 700%.
ciphey состоит из двух основных частей: библиотеки и CLI. CLI просто использует библиотеку, что означает, что вы можете строить поверх ciphey. Некоторые функции, которые мы создали: * Discord-бот * Улучшенное тестирование всей программы 💖 * Этот CLI
ciphey в настоящее время поддерживает 16 декодеров, и их количество растёт быстро. Ciphey поддерживает около ~50, и мы добавляем больше каждый день.
Одной из основных проблем Ciphey было то, что он мог работать бесконечно. Если он не мог декодировать ваш текст, вы никогда бы об этом не узнали!
ciphey имеет таймер (встроенный в библиотеку и CLI), что означает, что он в конечном итоге истечёт. CLI по умолчанию использует 5 секунд, Discord-бот по умолчанию — 10 (с учётом времени передачи сетевых сообщений).
ciphey уже имеет ~120 тестов, тесты документации (чтобы убедиться, что наша документация остаётся актуальной), и мы требуем документацию для всех наших основных компонентов. Это прекрасно.

LemmeKnow — это версия на Rust для PyWhat. Он в 33 раза быстрее, что означает, что теперь мы можем декодировать и определять, является ли что-то IP-адресом или чем-то ещё, на 3300% быстрее, чем на Python.
Ciphey не поддерживал многопоточность, он был довольно медленным. ciphey поддерживает её нативно, используя Rayon — одну из самых быстрых библиотек многопоточности.
Хотя мы не полностью видим её эффекты при всего 16 декодерах (и они довольно быстрые), по мере добавления больше декодеров (и более медленных) мы увидим, что это не так сильно повлияет на общую скорость программы.
Ciphey не поддерживал многоуровневые расшифровки, такие как путь Rot13 -> Base64 -> Rot13, потому что это было слишком медленно. ciphey достаточно быстр для этого, хотя мы планируем в конечном итоге отключить эту функцию.
ciphey теперь поддерживает настраиваемые уровни чувствительности для обнаружения бессмысленного текста, что позволяет более точно определять открытый текст для различных типов шифрования. Классические шифры, такие как Цезарь, используют низкую чувствительность для лучшей обработки результатов, похожих на английский язык, в то время как большинство других декодеров по умолчанию используют среднюю чувствительность.
Эта функция помогает снизить ложноположительные и ложноотрицательные результаты при определении открытого текста, делая ciphey более надёжным для широкого спектра закодированных текстов.
ciphey теперь предлагает улучшенное определение открытого текста с использованием модели на основе BERT из крейта gibberish-or-not. Эта функция:
- Увеличивает точность определения открытого текста примерно на 40%
- Уменьшает ложноположительные и ложноотрицательные результаты при идентификации открытого текста
- Может быть включена во время начальной настройки или позже с помощью ciphey --enable-enhanced-detection
- Требует одноразового скачивания ИИ-модели размером 500 МБ (требуется бесплатный аккаунт Hugging Face)
Теперь мы используем поиск A*. Это очень быстро.
A* работает, используя эвристику для оценки стоимости достижения цели из текущего состояния.
Сначала мы игнорируем эвристику для очень быстрых декодеров, таких как Base64, и гарантируем, что запускаем их сначала каждый раз на каждом узле.
Затем мы вычисляем эвристику для остальных декодеров с помощью cipher_identifier, который может определить вероятность того, что данная строка является определённым шифром.
Мы сохраняем предыдущие результаты в кэше, чтобы избежать повторного вычисления одного и того же пути.
Мы обрезаем дерево поиска, чтобы избежать ненужных вычислений и контролировать использование памяти, если оно становится слишком большим.
Мы также отслеживаем статистику по декодерам, чтобы динамически отдавать предпочтение тем, которые работают лучше (например: Цезарь популярный, но Бофор — нет, поэтому Цезарь будет динамически иметь приоритет над Бофором).
Наконец, мы отслеживаем популярные пары. Так base64 -> base64 очень популярный, поэтому мы отдаём приоритет этому пути (среди других).
Вы теперь можете установить пользовательскую тему для ciphey. Это полезно, если вы хотите изменить внешний вид ciphey.
Это также помогает с доступностью.
Теперь мы используем, возможно, лучший алгоритм для Виженера.
Он быстрый, точный и лучше обрабатывает неалфавитные символы, чем любой другой алгоритм.
Мы используем проверщик на основе квадриграмм / триграмм / английского словаря для вычисления вероятности того, что текст является открытым текстом.
Мы изменяем пороги в зависимости от шифра. Например, Цезарь возвращает текст, который «выглядит» как английский, тогда как base64 — нет.
Помимо этого, у нас есть база данных популярных регулярных выражений (около 500) для API-ключей, MAC-адресов и т.д.
У нас также есть функция is_password для определения того, является ли строка точным паролем, обнаруженным в утечке данных.
Теперь мы храним статистику в базе данных. Это полезно для отслеживания того, как ciphey справляется со временем.
Мы используем ИИ для 2 вещей: 1. TUI полностью создана с помощью «вибра» (автоматизированного генерирования кода). 2. Я заставил ИИ провести часы за исследованием каждого соревнования CTF. Он создал список из 15 071 CTF. Затем он прошёл через каждое CTF и искал обзоры (writeups). В этих обзорах он искал всё, связанное с кодированием / декодированием. Затем он создал тесты на основе этого. Это позволило нам увеличить покрытие тестами и убедиться, что все задачи CTF по кодированию / декодированию решаемы с помощью этого инструмента.