#include<stdio.h>
#include<windows.h>
#define MAX_BYTE 16*256
void main()
{
FILE *fp,*fp2;
int j; //j用作记录当前XOR的字节位置
byte *buffer,*buffer1,*buffer2,*buffer3;//指针buffer和buffer1一组,指针buffer2和buffer3一组,buffer指针会变动,buffer指针永远指向
//buffer的第一个字节位置,buffer2和buffer3同样道理
buffer =(byte*)malloc(MAX_BYTE); //分配MAX_BYTE字节给buffer指向的位置
buffer2 =(byte*)malloc(MAX_BYTE); //分配MAX_BYTE字节给buffer2指向的位置
fp = fopen("config.ini", "rb"); //打开怀疑加密了的文件
buffer3=buffer2; //buffer3保存buffer2初始时的地址
buffer1=buffer; //buffer1保存buffer初始时的地址
fseek(fp, 0, 0); //重定位到文件的开头
fread(buffer1, MAX_BYTE, 1, fp); //读取文件的开头MAX_BYTE字节数据到buffer
for(j=0;j<MAX_BYTE;j++)
{
*buffer1=*buffer1^1; //文件的开头第一个字节和0~255之间任一个数值异或,结果保存在buffer1所指的位置上
*buffer2=*buffer1; //将buffer1所指向的数据复制到buffer2所指的位置
buffer1=buffer1+1; //buffer1指针加1,准备读取下一个数据
buffer2=buffer2+1; //buffer2指针加1,准备存储下一个数据
}
fp2 = fopen("test.ini", "wb+"); //打开一个二进制文件,准备将数据写入
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载
- 1
- 2
前往页