问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

XOR算法加密的文件可以破解吗

发布网友 发布时间:2022-04-29 23:29

我来回答

4个回答

热心网友 时间:2022-06-25 22:36

面来试一下使用穷举法破解以这种方式加密的文件,假设现在有一个怀疑加密了的文件animation.cfg,使用Winhex打开这个文件,如图6-1所示。 (点击查看大图)图6-1 用Winhex打开怀疑加密了的文件animation.cfg观察图6-1中的十六进制数据,以及十六进制数据右边显示的ASCII值,初步推断这个文件存放了UNICODE编码的中国汉字,因为第一行的16个十六进制数据按照UNICODE编码,两个字节解析一个汉字得出"行邽憱挒嫋悜邷悜",但根据文件名"animation.cfg"猜测这是一个动画配置文件,因为"animation"可以翻译为动画,"cfg"多数是"config"的缩写,翻译为配置。那么动画配置文件里面应该存放和动画数据相关的数据才对,怎么会存放中国汉字呢?难道加密了?如果是加密了那么使用了哪种加密方式呢?从最简单的XOR加密入手吧,编写一个程序,这个程序的功能是这样的,读取animation.cfg文件中前16字节的内容,然后使用0~255之间任一个数值和从animation.cfg文件中提取出来的这16个字节(实际可以提取更多字节作比较,这里只提取文件前16字节)作XOR运算,最后将这256组经过XOR运算的数据放在一起作比较,看哪组数据XOR运算后看上去比较有意义而不是垃圾数据。按照上面的思路编写出如下C语言代码:#include<stdio.h>
#include<windows.h>
main()
{
FILE *fp,*fp2;
int i,j; //i用作记录0到255之间任一个数,j用作记录当前XOR的字节位置
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,制作buffer2
//和buffer3
//一组,buffer指针会变动,buffer制作永远指向
//buffer的第一个字节位置,buffer2和buffer3同样道
//理
buffer =(byte*)malloc(16); //分配16个字节给buffer指向的位置
buffer2 =(byte*)malloc(16*256); //分配16*256个字节给buffer2指向的位置
fp = fopen("animation.cfg", "rb");//打开怀疑加密了的文件
buffer3=buffer2; //buffer3保存buffer2初始时的地址
for (i=0;i<=255;i++)
{
buffer1=buffer; //buffer1保存buffer初始时的地址
fseek(fp, 0, 0); //重定位到animation.cfg文件的开头
fread(buffer1, 16, 1, fp); //读取animation.cfg文件的开头16字节数据到buffer
for(j=0;j<16;j++)
{
*buffer1=*buffer1^i; //animation.cfg文件的开头第一个字节和0~255之间
//任一个数值异或,结果保存在buffer1所指的位置上
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
}
}
fp2 = fopen("test", "wb+"); //打开一个二进制文件,准备将数据写入
fwrite(buffer3, 16*256, 1, fp2);//buffer3保存buffer2初始时的地址,这个语句将
//buffer2初始时的地址所指的数据,用二进制方式写入
//16×256字节
fclose(fp2); //关闭文件句柄
fclose(fp);

}

热心网友 时间:2022-06-25 22:36

可以~XOR规则有点太简单了~

热心网友 时间:2022-06-25 22:37

xor有一个特性
1,a^key = b, a与key异或得到b
2,b^key =a,b与key再次异或又得到了a
所以能够破解的关键在于别人能不能获得你的key

热心网友 时间:2022-06-25 22:37

如果你不把密码内置在加密后的文件中,那xor算法是不能解密的,用任何密码都可以进行逆操作。

上面那么多人说能破解,你们给个破解方法出来?难道用统计?
搞安全的那个,按理说你们应该清楚点,你说能你能给个方法出来么?

我如果用密钥文件作为依据进行加密呢?

不知道的请说不知道。(包括搞安全的)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我梦见一条蛇,谁能解梦? ...战地3港版,多人联网要求ea账号,于是用电脑注册了一个,用ps3登入提... 谁给推荐几个不花钱的好玩的游戏啊!无聊中... 天气潮汐预报app哪个好用 涨潮有什么软件 墨迹天气怎么看潮汐时间 墨迹天气潮汐预报设置教程 哪种天气预报能看潮汐 小米手机开发者模式在哪里关闭?小米手机开发者模式 上海行迈企业管理咨询有限公司讲师介绍 赵继红培训课程 永恒之塔目录下有个system.cfg文件,用Notepad++软件怎么解密啊? offzip解密文件怎么再加密 我跟朋友语音聊天微信它说对方暂时无法接通是什么意思,而且那个微信响声是已_百度问一问 微信红包封了怎么办 cs怎么破解密码 新版的240W 配置文件ctce8_I-240W-Q.cfg 被加密,求解密方法 请问红米手机应用锁忘记了,在不清除手机数据的前提下怎么可以解开应 微信好友给我发微信红包,但我的封了怎么办 那位大侠知道中兴路由器cfg文件的密文是用什么解密嘛? 加密/解密Android现有的数据库使用SQLCipher问题,怎么解决 微信好友给我发微信红包,但我的封了怎么办 cfg格式文件如何破译 小米应用锁怎么取消 已添加好,在用语音聊天就会出现无法接通,是怎么回事? 我的一个只要群里有人发红包,最多两个晚上就会被封掉请问这是什么原因呢 注册阿里巴巴国际站需要什么手续?- 问一问 dai文件解密后变成cfg文件如何打开 手机版wps便签怎么换字体大小 红米5plus手机应用锁设置了,但是进入应用时,没有要求输入密码,现在我想取消应用锁,该怎么办? 微信玩红包封了,怎么解封? 如何解密ctce8 hg522.cfg,找出超级用户名和密码 微信语音通话对方暂时无法接通是什么意思?- 问一问 华为HG8245 CFG格式文件如何打开? 不要用记事本打开的,全是乱码 希望破解出这样的明码 ...同主体的,在你们公司办理公众号迁移需要什么资料呢? 楼梯的正面怎么画? 《原神》卡死不动是什么原因? 速写正面的楼梯怎么画 Steam上的游戏显示运行中 然后没反应怎么办 怎么画简单好看的楼梯 以后手机游戏画面完全卡住是怎么回事 为什么steam游戏运行中然后就没了之后就没有反应了 qq黄钻是什么? 绝地求生为什么在steam点开始没反应,但是显示运行中,过一会就又自己变成准备就绪 steam游戏点击运行没反应怎么办 楼梯正面怎么画 怎么画楼梯? qq黄钻有什么用 楼梯怎么定义和绘制 画面总是定住(死机),有没有同样遭遇的 为什么我双击steam图标之后steam只在进程之中运行?不出现登陆界面和程序界面,再双击也没反应,但是进程中有