加解密练习(C语言)
靶场地址:https://www.mozhe.cn/bug/detail/MWYvbW0vVy9XWEJHMUxFVVF0cDJNZz09bW96aGUmozhe
1、打开页面,提示key在图片中,那么代码就是解密算法,分析代码认为是做异或运算,下载图片,重新编辑代码
2、重新编辑代码如下,先将1.jpg按照二进制格式导入到内存,再经过异或运算后按照二进制导出到res.txt文件中
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int i,j;
FILE *fin, *fout;
fin = fopen("1.jpg","rb");
fout = fopen("res.txt","wb");
fseek(fin,0,SEEK_END);
int fin_len = ftell(fin);
int l = 4 * fin_len;
char tmp[l];
fseek(fin,0,SEEK_SET);
fread(tmp,fin_len,sizeof(char),fin);
for(i=1;i<256;i++){
for(j=0;j<fin_len;j++){
fprintf(fout,"%c",tmp[j]^i);
}
}
fclose(fout);
return 0;
}
3、打开res.txt文件查找key值可找到
参考:
加解密练习(C语言)_C/C++_asd158923328的博客-CSDN博客
MU5735 R.I.P