test adv
,

Нашёл на GitHub дешифратор пикселизированных паролей. Он работает, но не так как надо

Закрываете пароли на скриншотах пикселизацией? А как насчёт скрытия более надёжным методом? Тестирую программу для обхода «защиты»

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

Аналоги

Ранее уже существовали подобные утилиты, про них даже писали новости на сайте. Но они были крайне неэффективны и сложны для рядовых пользователей. По этой причине рассматривать их как нечто серьёзное попросту не было смысла.

Недавно появилась ещё одна бесплатная программа с открытым исходным кодом — Unredacter. И ей я решил дать шанс, протестировав в различных сценариях.

Тестирование

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

Нашёл на GitHub дешифратор пикселизированных паролей. Он работает, но не так как надо

Для этого нужно в самом нижнем поле вписать текст и нажать Redact me. После чего нажать кнопку Start в самом верху. Как только в поле Score будет цифра 0, результат в строке Best Guess можно считать итоговым.

Расшифровка собственных скриншотов чуть сложнее — для этого требуется в редакторе изображений (например, GIMP или Photoshop) открыть текст или добавить его, а затем применить эффект мозаики. Размер блока мозаики важно учесть. Во-первых, если он будет слишком мал, то программа не сможет расшифровать текст. Во-вторых, его нужно вручную прописывать в коде программы, если он отличается от 8.

Также требуется обрезать изображение до границ пикселизированного текста, не оставляя части фона и других объектов. Размер картинки должен быть небольшим, иначе программа «сломается». Например, программа генерирует скриншоты размером около 120 на 50 пикселей. Можно взять эти параметры за основу и незначительно менять в зависимости от длины текста. Создатель приложения советует подкорректировать вдобавок общую яркость изображения.

Результаты тестирования

По итогам тестирования я получил следующие выводы.

На сгенерированных примерах точность программы удивляет, хотя иногда утилита всё же ошибается. Также Unredacter с базовыми параметрами не умеет расшифровывать заглавные буквы и нормально работает только с прописными.

Нашёл на GitHub дешифратор пикселизированных паролей. Он работает, но не так как надо

На изображениях, отредактированных в Photoshop, программа показала себя намного хуже. Даже на коротких примерах из 1-3 букв она ошибалась и прекращала работу, не дойдя до конца. Стоит отметить, что паттерн пикселей был идентичен тому, что генерировала программа. Она пытается угадывать буквы, но ни разу не было удачных попыток.

Со сгенерированным текстом из трёх букв программа справилась за 6 минут, а с более длинными текстами время работы достигало 10-20 минут.

Как запустить самостоятельно

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

Для начала на компьютер необходимо установить node.js. Среда выполнения JS-кода доступна для macOS, Windows и Linux. Процесс инсталляции прост и не требует дополнительных пояснений — достаточно скачать установочный файл с сайта, запустить его и следовать инструкциям.

Далее потребуется скачать исходный код программы с GitHub, установить зависимости (необходимые для работы модули) и запустить.

Первый шаг выполняется командой ниже. Её достаточно ввести в терминале или командной строке, сначала перейдя в директорию с загруженной утилитой.

npm install

После автоматической установки всех необходимых модулей запустите программу командой:

npm start

Вскоре откроется окно утилиты, в которой можно работать.

Нашёл на GitHub дешифратор пикселизированных паролей. Он работает, но не так как надо

Чтобы расшифровать собственное изображение, создайте его по методу, описанному во втором пункте статьи, а затем сохраните его в формате PNG с названием secret. Переместите его в корневую директорию программы, заменив уже существующий файл. В папке src откройте файл main.ts и замените значение в строке const blockSize = 8, если размер блока (в пикселях) на изображении отличается от 8. Сохраните его и только после этого запускайте программу, а затем нажимайте Start и ждите, пока не получите результат.

Если вы хотите попробовать расшифровать не только прописные символы, добавьте нужный набор знаков в файл preload.ts, находящийся в папке src. Нужная строка выглядит так:

const guessable_characters = 'abcdefghijklmnopqrstuvwxyz '

Вердикт

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

Последнее изменение:
 
Miros77
Miros77, 10 марта 2022, 00:20   #   (...)
Впервые слышу об этом
Ответить
Pavell62
Pavell62, 10 марта 2022, 09:06   #   (...)
Не так страшен чёрт, как его малюют
Ответить
Kant
Kant, 12 марта 2022, 08:46   #   (...)
Не так страшен чёрт, как Егор малюет.
Ответить

Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием