filter support

This commit is contained in:
Pin
2021-10-31 18:57:11 -04:00
parent e0c035a4cf
commit 7649feee82

View File

@@ -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) {
size_t random_num = 0;
size_t filter_chunk_byte = 0;
size_t change_num = 0;
for (int i = 0; i < rounds; i++) {
random_num = 0;
do {
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);
if(data[random_num] == 255) {
data[random_num]--;
if(data[filter_chunk_byte] == 0) {
// None Filter Type Change
if(data[random_num] == 255) {
data[random_num]--;
} else {
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 {
data[random_num]++;
printf("ERROR ;( %ld\n", filter_chunk_byte);
}
}
return;
}
@@ -177,11 +220,6 @@ void *random_data_change_thread_call(void *w) {
if (searching == 0 && *data->searching == 1) {
*data->searching = searching;
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);
pthread_mutex_unlock(&data->mutex_lock);
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) {
int searching = 1;
int core_count = 1;
int core_count = 24;
unsigned int sliding_window = 0;
unsigned int compress_data_length = 0;
// Needs to be turned into a variable
@@ -535,6 +573,15 @@ int main(int argc, char **argv) {
printf("%02X ", uncom_data_buff[i]);
}
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(file_data);