1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
void fxor(const char *file_path)
{
FILE *f = file_open(file_path,"rb");
FILE *f_key = file_open("c:\\key","wb");
FILE *f_xor = file_open("c:\\out","wb");
char buffer[3][1];
int r_fread=0;
t_binw *random_byte = NULL;
while ((r_fread=fread(&buffer[0],sizeof(char), 1,f)) > 0)
{
random_byte = binw_create_random(8);
buffer[1][0] = bin_to_dec(random_byte->v,8);
binw_destroy(random_byte);
fwrite(&buffer[1], sizeof(char), r_fread, f_key), buffer[2][0]=buffer[0][0]^buffer[1][0];
fwrite(&buffer[2], sizeof(char), r_fread, f_xor);
}
file_close(f_key);
file_close(f_xor);
file_close(f);
}
void frox(const char *xored, const char *key)
{
FILE *f_key = file_open(key,"rb");
FILE *f_xor = file_open(xored,"rb");
FILE *f_rox = file_open("c:\\xored","wb");
char buffer[3][1];
int r_fread[2][1];
while ((r_fread[0][0]=fread(&buffer[0],sizeof(char), 1,f_xor)) > 0)
{
r_fread[1][0]=fread(&buffer[1],sizeof(char), 1,f_key);
if (r_fread[0][0]==r_fread[1][0])
{
buffer[2][0]=buffer[0][0]^buffer[1][0];
fwrite(&buffer[2], sizeof(char), 1, f_rox);
}
}
file_close(f_key);
file_close(f_xor);
file_close(f_rox);
} |