快速加密视频文件
严格来说只是破坏格式,播放器不能识别而已,用于一般需求,但是超快,几百 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"