严格来说只是破坏格式,播放器不能识别而已,用于一般需求,但是超快,几百 GB文件只要秒级。重要文件请使用其他正规加密方式!!!

 

change_format.exe程序:修改某个文件的前1024字节,以达到破坏格式的目的。

参数:要修改的文件

方式:前1024字节逐个异或0x88。

恢复:重新执行一次。

 

change_format.exe程序 c++代码。

 1 #include <stdio.h>
 2 #include <string.h>
 3 using namespace std;
 4 
 5 #ifndef FILE_HEAD_SIZE
 6 #define FILE_HEAD_SIZE (1024)
 7 #endif
 8 
 9 int XOR(unsigned char *pdata,unsigned int dataSize);
10 struct file_head
11 {
12     unsigned char data[FILE_HEAD_SIZE];
13 };
14 
15 int main(int argc, char *argv[])
16 {
17     // FILE * file = fopen("./test.txt","rb+"); //这种是正确的做法
18     // FILE * file = fopen("./123.mp4","rb+"); //这种是正确的做法
19     // FILE * file = fopen("./123.rmvb","rb+"); //这种是正确的做法
20     FILE * file = fopen(argv[1],"rb+");
21     if(file!=NULL)
22     {
23         printf("fopen(%s) success;\n",argv[1]);
24         struct file_head newHead;
25         memset(&newHead,0x0,sizeof(newHead));
26         //读取
27         /*    fread(&newHead,1,sizeof(newHead)-1,file);
28             printf("%s\n", &newHead);*/
29         fread(&newHead,1,sizeof(newHead),file);
30         //数据处理
31         XOR((unsigned char *)&newHead,sizeof(newHead));
32         //写入
33         fseek(file,0,SEEK_SET);
34         fwrite(&newHead,1,sizeof(newHead),file);
35         // fread(newHead,1,sizeof(newHead),file);
36         //
37         //==============================
38         /*    char readBuff[]={0x0,0x0};
39                 fread(readBuff,1,sizeof(readBuff),file);
40                 printf("%s\n", readBuff);*/
41         //==============================
42         /*      char buffer[]={0xCC,0xDD};
43               fseek(file,4,SEEK_SET);
44               fwrite(buffer,1,sizeof(buffer),file);*/
45         //==============================
46         fclose(file);
47         printf("fclose(%s) success;\n",argv[1]);
48     }
49     return 0;
50 }
51 
52 int XOR(unsigned char *pdata,unsigned int dataSize)
53 {
54     for (unsigned int i = 0; i < dataSize; ++i)
55     {
56         *pdata ^= (0x88);
57         pdata++;
58     }
59 }

 

auto_change.bat

此bat遍历当前目录和子目录下的所有后缀匹配的文件。调用change_format.exe程序,需要在bat中设程序绝对路径。

 1 @ECHO OFF
 2 SET exe="C:\Users\yebl\Desktop\cDir\change_format.exe"
 3 
 4 del auto_change_exec.bat
 5 set count = 0
 6 ::遍历文件
 7 for /r "." %%a in (*.avi,*.wmv,*.mpeg,*.mp4,*.mov,*.asf,*.flv,*.m4v,*.mkv,*.rmvb,*.rm,*.3gp,*.vob) do (
 8 set fn=%%~na
 9 
10 set /a count += 1
11 ECHO %exe%  "%%~a%" >>auto_change_exec.bat
12 ::echo TIMEOUT /T 2 >>auto_change_exec.bat
13 echo %%~a
14 
15 )
16 echo %count%
17 PAUSE

 

自动生成auto_change_exec.bat脚本文件。双击就可执行。

1 "C:\Users\yebl\Desktop\cDir\change_format.exe"  "C:\Users\yebl\Desktop\cDir\123.mp4" 
2 "C:\Users\yebl\Desktop\cDir\change_format.exe"  "C:\Users\yebl\Desktop\cDir\6.mkv" 
3 "C:\Users\yebl\Desktop\cDir\change_format.exe"  "C:\Users\yebl\Desktop\cDir\456.rmvb" 

 

版权声明:本文为baofengc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/baofengc/p/12966245.html