加解密练习(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博客 

奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
原文地址:https://www.cnblogs.com/jasy/p/12653587.html