Depix——从像素化屏幕截图中恢复密码的工具

Depix——从像素化屏幕截图中恢复密码的工具

Depix

Depix 是一种从像素化屏幕截图中恢复纯文本的技术的 PoC。

此实现适用于使用线性盒式过滤器创建的像素化图像。在本文中,我将介绍像素化和类似研究的背景信息。

例子

图像

更新

  • 27 十一月 ’23:重构并删除了所有这些 pip 内容。我喜欢可以直接运行的脚本。如果找不到包,只需安装它。还添加了tool_show_boxes.py显示框检测器有多糟糕(您必须真正精确地剪切出像素)。做了一个 TODO 来创建一个只剪切静态大小框的版本。

安装

  • 安装依赖项
  • 运行 Depix:
python3 depix.py \
    -p /path/to/your/input/image.png \
    -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png \
    -o /path/to/your/output.png

示例用法

  • 对使用 Notepad 创建并使用 Greenshot 像素化的示例图像进行去像素化。Greenshot 通过平均伽马编码的 0-255 值来取平均值,这是 Depix 的默认模式。
python3 depix.py \
    -p images/testimages/testimage3_pixels.png \
    -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png

结果:

  • 对使用 Sublime 创建并使用 Gimp 像素化的示例图像进行去像素化,其中以线性 sRGB 进行平均。backgroundcolor 选项会过滤掉编辑器的背景颜色。
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

结果:

  • (可选)您可以使用 查看盒子检测器是否找到了您的像素tool_show_boxes.py。如果看起来全是乱七八糟的,请考虑使用较小的像素批次。好看的盒子示例:
python3 tool_show_boxes.py \ 
    -p images/testimages/testimage3_pixels.png \
    -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png
  • (可选)您可以使用 创建像素化图像tool_gen_pixelated.py
python3 tool_gen_pixelated.py -i /path/to/image.png -o pixed_output.png
  • 如需详细说明,请尝试运行$ python3 depix.py -htool_gen_pixelated.py

关于

制作搜索图像

  • 将屏幕截图中的像素块剪切成单个矩形。
  • 将包含预期字符的De Bruijn 序列粘贴到编辑器中,并使用与输入图像相同的字体设置(相同的文本大小、相似的字体、相同的颜色)。
  • 对该序列进行截图。
  • 将该屏幕截图移动到类似文件夹中images/searchimages/
  • 运行 Depix,并将-s标志设置为此屏幕截图的位置。

制作像素化图像

  • 准确剪切出像素化块。参见testimages示例。
  • 它尝试检测方块,但效果并不好。tool_show_boxes.py如果方块没有被正确检测到,请使用脚本和不同的剪切图进行操作。

算法

该算法利用了线性盒式过滤器单独处理每个块的事实。对于每个块,它会对搜索图像中的所有块进行像素化,以检查直接匹配。

对于某些像素化图像,Depix 设法找到单匹配结果。它假设这些结果是正确的。然后将周围的多匹配块的匹配与像素化图像中的几何距离进行比较。匹配也被视为正确的。这个过程重复几次。

当正确块不再有几何匹配时,它将直接输出所有正确块。对于多匹配块,它将输出所有匹配的平均值。

已知限制

  • 该算法通过整数块边界进行匹配。因此,它有一个基本假设,即对于渲染的所有字符(无论是在 de Brujin 序列中还是在像素化图像中),文本定位都是在像素级别完成的。然而,一些现代文本光栅化器以亚像素精度定位文本。
  • 您需要了解字体规格,有时还需要了解截屏时的屏幕设置。但是,如果原始图片中有足够的纯文本,您可能能够将原始图片用作搜索图片。
  • 如果执行了额外的图像压缩,这种方法就不起作用,因为它会弄乱块的颜色。

国内下载链接

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享