filter support
This commit is contained in:
61
cmd/crc.c
61
cmd/crc.c
@@ -72,17 +72,60 @@ int update_file_crc(unsigned char *addr, unsigned long offset , unsigned int crc
|
|||||||
|
|
||||||
static void random_window_bit_change(unsigned char *data, int width, int rounds, int color_range, size_t length, size_t offset) {
|
static void random_window_bit_change(unsigned char *data, int width, int rounds, int color_range, size_t length, size_t offset) {
|
||||||
size_t random_num = 0;
|
size_t random_num = 0;
|
||||||
|
size_t filter_chunk_byte = 0;
|
||||||
|
size_t change_num = 0;
|
||||||
for (int i = 0; i < rounds; i++) {
|
for (int i = 0; i < rounds; i++) {
|
||||||
|
random_num = 0;
|
||||||
do {
|
do {
|
||||||
random_num = randombytes_uniform(length) + offset;
|
random_num = randombytes_uniform(length) + offset;
|
||||||
|
filter_chunk_byte = (random_num - (random_num % ((width * color_range) + 1)));
|
||||||
} while((random_num % ((width * color_range) + 1)) == 0);
|
} while((random_num % ((width * color_range) + 1)) == 0);
|
||||||
|
|
||||||
|
if(data[filter_chunk_byte] == 0) {
|
||||||
|
// None Filter Type Change
|
||||||
if(data[random_num] == 255) {
|
if(data[random_num] == 255) {
|
||||||
data[random_num]--;
|
data[random_num]--;
|
||||||
} else {
|
} else {
|
||||||
data[random_num]++;
|
data[random_num]++;
|
||||||
}
|
}
|
||||||
|
} else if(data[filter_chunk_byte] == 1) {
|
||||||
|
// Sub Filter Type Change
|
||||||
|
if(data[random_num] == 255) {
|
||||||
|
data[random_num]--;
|
||||||
|
change_num = 1;
|
||||||
|
} else {
|
||||||
|
data[random_num]++;
|
||||||
|
change_num = -1;
|
||||||
|
}
|
||||||
|
// Starting after random change
|
||||||
|
for(int j = 1; j < 2; j++) {
|
||||||
|
data[random_num+(color_range * j)] = (data[random_num+(color_range * j)] + change_num) % 256;
|
||||||
|
}
|
||||||
|
} else if(data[filter_chunk_byte] == 2) {
|
||||||
|
printf("2\n");
|
||||||
|
if(data[random_num] == 255) {
|
||||||
|
data[random_num]--;
|
||||||
|
} else {
|
||||||
|
data[random_num]++;
|
||||||
|
}
|
||||||
|
} else if(data[filter_chunk_byte] == 3) {
|
||||||
|
printf("3\n");
|
||||||
|
if(data[random_num] == 255) {
|
||||||
|
data[random_num]--;
|
||||||
|
} else {
|
||||||
|
data[random_num]++;
|
||||||
|
}
|
||||||
|
} else if(data[filter_chunk_byte] == 4) {
|
||||||
|
printf("4\n");
|
||||||
|
if(data[random_num] == 255) {
|
||||||
|
data[random_num]--;
|
||||||
|
} else {
|
||||||
|
data[random_num]++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf("ERROR ;( %ld\n", filter_chunk_byte);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -177,11 +220,6 @@ void *random_data_change_thread_call(void *w) {
|
|||||||
if (searching == 0 && *data->searching == 1) {
|
if (searching == 0 && *data->searching == 1) {
|
||||||
*data->searching = searching;
|
*data->searching = searching;
|
||||||
printf("CUR MESSAGE: %c\n", cur_message);
|
printf("CUR MESSAGE: %c\n", cur_message);
|
||||||
for(size_t i = 0; i < data->uncom_data_len; i++) {
|
|
||||||
if (temp_color_data[i] != data->data[i]) {
|
|
||||||
printf("LEN: %zu\nDIFF: %zu\nNEW: %02X\nOLD: %02X\n", data->uncom_data_len, i, temp_color_data[i], data->data[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
memcpy(data->data, temp_color_data, data->uncom_data_len);
|
memcpy(data->data, temp_color_data, data->uncom_data_len);
|
||||||
pthread_mutex_unlock(&data->mutex_lock);
|
pthread_mutex_unlock(&data->mutex_lock);
|
||||||
break;
|
break;
|
||||||
@@ -213,7 +251,7 @@ size_t generate_offset(unsigned char *data, size_t data_len, size_t iteration) {
|
|||||||
|
|
||||||
void random_data_change(unsigned char *color_data, unsigned char *width, size_t length, char *message) {
|
void random_data_change(unsigned char *color_data, unsigned char *width, size_t length, char *message) {
|
||||||
int searching = 1;
|
int searching = 1;
|
||||||
int core_count = 1;
|
int core_count = 24;
|
||||||
unsigned int sliding_window = 0;
|
unsigned int sliding_window = 0;
|
||||||
unsigned int compress_data_length = 0;
|
unsigned int compress_data_length = 0;
|
||||||
// Needs to be turned into a variable
|
// Needs to be turned into a variable
|
||||||
@@ -535,6 +573,15 @@ int main(int argc, char **argv) {
|
|||||||
printf("%02X ", uncom_data_buff[i]);
|
printf("%02X ", uncom_data_buff[i]);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
//for(int k=0;k<20;k++) {
|
||||||
|
// printf("%d: %d\n", (0+k), uncom_data_buff[0+k]);
|
||||||
|
//}
|
||||||
|
//printf("\n");
|
||||||
|
//printf("\n");
|
||||||
|
//for(int k=0;k<20;k++) {
|
||||||
|
// printf("%d: %d\n", (24000+k), uncom_data_buff[24000+k]);
|
||||||
|
//}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
free(idat_data);
|
free(idat_data);
|
||||||
free(file_data);
|
free(file_data);
|
||||||
|
|||||||
Reference in New Issue
Block a user