Depix
Depix — это PoC-решение для восстановления открытого текста из пикселизированных скриншотов.
Эта реализация работает с пикселизированными изображениями, которые были созданы с помощью линейного бокс-фильтра. В этой статье я рассказываю о пикселизации и подобных исследованиях.
python3 depix.py \
-p /path/to/your/input/image.png \
-s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png \
-o /path/to/your/output.png
python3 depix.py \
-p images/testimages/testimage3_pixels.png \
-s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png
Результат:
python3 depix.py \
-p images/testimages/sublime_screenshot_pixels_gimp.png \
-s images/searchimages/debruin_sublime_Linux_small.png \
--backgroundcolor 40,41,35 \
--averagetype linear
Результат:
python3 tool_show_boxes.py \
-p images/testimages/testimage3_pixels.png \
-s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png
python3 tool_gen_pixelated.py -i /path/to/image.png -o pixed_output.png
Для подробного объяснения попробуйте запустить $ python3 depix.py -h и tool_gen_pixelated.py.
Алгоритм использует тот факт, что линейный бокс-фильтр обрабатывает каждый блок отдельно. Для каждого блока он пикселизирует все блоки в поисковом изображении, чтобы проверить наличие прямых совпадений.
Для некоторых пикселизированных изображений Depix удаётся найти результаты с одним совпадением. Предполагается, что они правильные. Затем совпадения окружающих многоэлементных блоков сравниваются, чтобы быть геометрически на том же расстоянии, что и в пикселизированном изображении. Совпадения также считаются правильными. Этот процесс повторяется несколько раз.
После того как правильные блоки больше не имеют геометрических совпадений, он выводит все правильные блоки напрямую. Для многоэлементных блоков он выводит среднее значение всех совпадений.
Алгоритм сопоставляет целые границы блоков. В результате он предполагает, что для всех отображаемых символов (как в последовательности де Брёйна, так и в пикселизированном изображении) текст... Позиционирование происходит на уровне пикселей. Однако некоторые современные растеризаторы текста позиционируют текст с точностью до субпикселей (http://agg.sourceforge.net/antigrain.com/research/font_rasterization/).
Необходимо знать характеристики шрифта и в некоторых случаях настройки экрана, с которого сделан снимок экрана. Однако если на исходном изображении достаточно обычного текста, вы можете использовать оригинал в качестве изображения для поиска.
Этот подход не работает, если выполняется дополнительное сжатие изображения, потому что оно искажает цвета блока.
Реализовать больше функций фильтрации. Создать больше усредняющих фильтров, которые работают так же, как некоторые популярные редакторы.
Создать новый инструмент, использующий HMM. После создания этой программы кто-то указал мне на исследовательский документ от 2016 года, где группе исследователей удалось создать аналогичный инструмент. Их инструмент имеет лучшую точность и работает со многими различными шрифтами. Хотя их исходный код не является общедоступным, существует реализация с открытым исходным кодом в DepixHMM (https://github.com/JonasSchatz/DepixHMM).
Редактировать 16 февраля 22: Дэн Петро (https://bishopfox.com/authors/dan-petro) создал инструмент UnRedacter (описание (https://bishopfox.com/blog/unredacter-tool-never-pixelation), источник (https://github.com/BishopFox/unredacter)), чтобы решить задачу (https://labs.jumpsec.com/can-depix-deobfuscate-your-data/), которая была создана в ответ на Depix!
Тем не менее, всем, кто увлечён таким типом депикселизации, предлагается реализовать свою собственную версию на основе HMM и поделиться ею.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )