将二进制文件转换为 PNG 图像,然后将其解密回二进制。
二进制文件的每个字节都会转换为数字 (0-255),然后定义像素颜色。每个字节都将是最终 PNG 图像中的一个灰度像素。 PNG 图像的像素可以多于二进制文件的字节数。多余的像素将具有 RGB(255, 0, 0) 颜色(红色),并且在解密文件时将被忽略。
当解密 PNG 文件以创建相应的二进制文件时,我们获取图像的每个像素并获取它们的颜色。如果 R 和 G 颜色不同,我们会跳过该像素。它不是灰度的,多余的像素也是如此。如果是灰度,我们取 R 的颜色数,然后将其转换为其二进制表示形式。我们用所有解密的像素二进制数据构造一个 unsigned char 数组,然后将其保存回二进制文件。
您可以直接从这里下载exe文件:https://github.com/leeroybrun/Bin2PNG/releases/download/v1.1/Bin2PNG.exe
或者您可以使用 Visual Studio 或任何其他 C 编译器来构建它。
然后将要转换的二进制文件放置在与Bin2PNG.exe
文件相同的文件夹中,并将其重命名为in.exe
。
然后您可以将其加密为 PNG 图像:
Bin2PNG.exe 加密
如果成功,它将生成一个image.png
文件。
然后您可以将此文件解密回二进制文件,如下所示:
Bin2PNG.exe解密
它将解密image.png
文件并创建一个新的二进制文件out.exe
。
添加参数来定义二进制文件和图像文件的名称
也许找到更好的方法将字节转换为数字
查找为什么解密后的exe比原始文件大一点
(麻省理工学院许可证)
版权所有 (C) 2013 Leeroy Brun,www.leeroy.me
特此免费授予获得本软件和相关文档文件(“软件”)副本的任何人不受限制地使用本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或销售软件的副本,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对因本软件或本软件中的使用或其他交易而产生或与之相关的任何索赔、损害或其他责任负责,无论是合同、侵权行为还是其他行为。软件。