我正在尝试修改我正在使用的软件的图形资产(为了美观性,我猜很难对图形资产做一些有害的事情),但开发人员加密了它们。我不知道为什么他决定这么做,因为我使用并修改了一堆类似的软件,而那些软件的开发人员并不费心(因为我看不出为什么加密这些资产是必要的)。
总之,下面是这些加密图形资产的示例:
有办法解密吗?如果是的话,我该怎么做呢?
头“CF10”似乎是一个私人添加的签名,表示文件的其余部分是“编码的”。这是一个非常简单的异或编码:异或8dh
是我尝试的第一个值,我第一次也是正确的。尝试将其作为第一个值的原因是,值8d
在前100个字节中出现得非常频繁,在前100个字节中,它们通常可能是很多零。
因此,“解密”非常简单:如果一个文件以四个字节cf10
开头,则删除它们,并对文件的其余部分应用异或8dh
。解码文件显示第一个“jpg”实际上是一个很小的PNG映像(而且引导起来不是很有趣),第二个确实是一个PNG文件:
文件扩展名可以是原始文件扩展名,也可以不是原始文件扩展名;一个名为“.jpg”的示例实际上也是一个PNG文件,这可以从它的头签名看出。
下面的快速和脏的C源代码将对图像进行解码。同样的程序也可以调整为对它们进行编码,因为异或
操作是完全相同的。唯一需要的是添加一点逻辑流:
cf10
cf10
写入输出文件异或8dh
对图像进行编码异或8dh
来解码图像。如你所见,没有“3A”,两个“B”步骤都是一样的。
#include <stdio.h>
#include <string.h>
#ifndef MAX_PATH
#define MAX_PATH 256
#endif
#define INPUTPATH "c:\\documents"
#define OUTPUTPATH ""
int main (int argc, char **argv)
{
FILE *inp, *outp;
int i, encode_flag = 0;
char filename_buffer[MAX_PATH];
char sig[] = "CF10", *ptr;
if (argc != 3)
{
printf ("usage: decode [input] [output]\n");
return -1;
}
filename_buffer[0] = 0;
if (!strchr(argv[1], '/') && !strchr(argv[1], 92) && !strchr(argv[1], ':'))
strcpy (filename_buffer, INPUTPATH);
strcat (filename_buffer, argv[1]);
inp = fopen (filename_buffer, "rb");
if (inp == NULL)
{
printf ("bad input file '%s'\n", filename_buffer);
return -2;
}
ptr = sig;
while (*ptr)
{
i = fgetc (inp);
if (*ptr != i)
{
encode_flag = 1;
break;
}
ptr++;
}
if (encode_flag)
{
/* rewind file because we already read some bytes */
fseek (inp, 0, SEEK_SET);
printf ("encoding input file: '%s'\n", filename_buffer);
} else
printf ("decoding input file: '%s'\n", filename_buffer);
filename_buffer[0] = 0;
if (!strchr(argv[2], '/') && !strchr(argv[2], 92) && !strchr(argv[2], ':'))
strcpy (filename_buffer, OUTPUTPATH);
strcat (filename_buffer, argv[2]);
outp = fopen (filename_buffer, "wb");
if (outp == NULL)
{
printf ("bad output file '%s'\n", filename_buffer);
return -2;
}
printf ("output file: '%s'\n", filename_buffer);
if (encode_flag)
fwrite (sig, 1, 4, outp);
do
{
i = fgetc(inp);
if (i != EOF)
fputc (i ^ 0x8d, outp);
} while (i != EOF);
fclose (inp);
fclose (outp);
printf ("all done. bye bye\n");
return 0;
}
问题内容: 我环顾四周,阅读文档,没有找到任何方法或解决方案,所以我在这里问。是否有可用的软件包可用于使用Python将JPG图像转换为PNG图像? 问题答案: 为此,您始终可以使用Python图像库(PIL)。可能还会有其他包/库,但是我之前曾用过它来在格式之间进行转换。 这适用于Windows下的Python 2.7(适用于Python 2.7的Python Imaging Library 1
了解如何从 Adobe XD 中将适用于生产的资源导出为 PNG、SVG、JPG 和 PDF 文件。 您可以与开发人员共享适用于生产的资源,用于网站或移动应用程序。设计资源可以从 XD 导出为 PNG、SVG、JPG 和 PDF,并针对 iOS、Android 或 Web 部署进行优化。 您可以导出项目中的特定资源或文本、特定画板或所有画板。如果您在 Mac 上使用 XD,则还可以将资源导出到其他
本文向大家介绍对python遍历文件夹中的所有jpg文件的实例详解,包括了对python遍历文件夹中的所有jpg文件的实例详解的使用技巧和注意事项,需要的朋友参考一下 python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?
我目前正在尝试编写一个程序,将文本编码到一个png文件中,只改变我想在图片中编码的每个字母的最低有效位,例如我有一个'a',它是65,我使用8个不同的字节来编码字母a。所以01010100<-1010110<-11011010<-10101010<-1010101010<-1010101010<-10101010<-10101010<-10101010<-10101010<-10101010<-1
本文向大家介绍Android png透明图片转jpg时背景变黑的解决方法,包括了Android png透明图片转jpg时背景变黑的解决方法的使用技巧和注意事项,需要的朋友参考一下 在做view保存图片后,压缩格式转为jpg的时候出现了黑色背景,其根本原因在于透明背景时背景的情况下,转换为jpg的时候会变成黑色背景,原因是PNG支持透明图而 JPG格式不支持透明背景。 我们的解决方案如下: 总结 以
问题内容: 是否可以捕获或打印html画布中显示为图像或pdf的内容? 我想通过画布生成图像,并能够从该图像生成png。 问题答案: 原始答案是针对类似问题的。这已被修改: 使用IMG中的值,您可以将其写为新图像,如下所示: