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) {
|
||||
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[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 {
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user