diff --git a/Makefile b/Makefile index d048279..c06d92d 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,17 @@ LIBRARIES = `pkg-config --libs zlib libsodium` -Iinclude -SOURCES = ./src/* ./cmd/crc.c +SOURCES = ./src/* ./cmd/pspng.c OUTPUT_DIR = ./bin OUTPUT = -o ${OUTPUT_DIR}/PROG +INSTALL_OUTPUT = ${OUTPUT_DIR}/PROG build: output_dir - gcc -Wall -pthread ${LIBRARIES} ${SOURCES} ${OUTPUT:PROG=crc} + gcc -Wall -pthread ${LIBRARIES} ${SOURCES} ${OUTPUT:PROG=pspng} debug: output_dir - gcc -Wall -g -pthread ${LIBRARIES} ${SOURCES} ${OUTPUT:PROG=crc} + gcc -Wall -g -pthread ${LIBRARIES} ${SOURCES} ${OUTPUT:PROG=pspng} + +install: + mv ${INSTALL_OUTPUT:PROG=pspng} /usr/bin/ output_dir: mkdir -p ${OUTPUT_DIR} @@ -16,4 +20,4 @@ clean: rm -rf $(OUTPUT_DIR) **.h.gch memcheck: debug - valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes -s ${OUTPUT_DIR}/crc + valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes -s ${OUTPUT_DIR}/pspng diff --git a/cmd/crc.c b/cmd/pspng.c similarity index 92% rename from cmd/crc.c rename to cmd/pspng.c index 5466869..6d69b2d 100644 --- a/cmd/crc.c +++ b/cmd/pspng.c @@ -10,7 +10,7 @@ #include #include "crc_util.h" #include "CRCLib.h" -#include "crc.h" +#include "pspng.h" #include "compress_util.h" //#define MAX_IDAT_SIZE 16384 @@ -74,6 +74,7 @@ static void random_window_bit_change(unsigned char *data, int width, int rounds, size_t random_num = 0; size_t filter_chunk_byte = 0; size_t change_num = 0; + long prior_chuck_check = 0; for (int i = 0; i < rounds; i++) { random_num = 0; do { @@ -109,7 +110,15 @@ static void random_window_bit_change(unsigned char *data, int width, int rounds, data[random_num]++; } } else if(data[filter_chunk_byte] == 3) { - printf("3\n"); + // Average Filter Type Change + //printf("HEE: %d\n", data[(filter_chunk_byte - (width * color_range))-1]); + prior_chuck_check = filter_chunk_byte; + do { + //printf("C: %d\n", data[prior_chuck_check]); + prior_chuck_check = (prior_chuck_check - (width * color_range)-1); + //printf("CH: %ld\n", prior_chuck_check); + } while(prior_chuck_check >= 0); + if(data[random_num] == 255) { data[random_num]--; } else { @@ -487,8 +496,9 @@ int main(int argc, char **argv) { }; const char* usage = - "Usage: crc [options]\n" + "Usage: pspng [options]\n\n" " -c --compress Compress Message\n" + " -u --uncompress Currently used for debugging\n" " -h, --help Shows help message\n" " -f, --file Denotes input file\n" " -o, --outfile Denotes output file\n" @@ -559,29 +569,37 @@ int main(int argc, char **argv) { if(uncompress_call == 1) { size_t idat_byte_length = 0; + unsigned long cur_idat_len = 0; + //unsigned char message_data[8192]; unsigned char* idat_data = populate_idat_array(file_data, offset, &idat_byte_length); - - for(int i = 0; i < idat_byte_length; i++) { + + //for(int i = 0; i < idat_byte_length; i++) { //printf("%02X ", idat_data[i]); - } + //} printf("\nDecompressed Data:\n\n"); // Decompressing data - unsigned char *uncom_data_buff = NULL; - size_t uncom_data_size = 0; - zlib_decompress_data(idat_data, idat_byte_length, &uncom_data_buff, &uncom_data_size); - for(int i = 0; i < uncom_data_size; i++) { - 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]); + //unsigned char *uncom_data_buff = NULL; + //size_t uncom_data_size = 0; + //zlib_decompress_data(idat_data, idat_byte_length, &uncom_data_buff, &uncom_data_size); + //for(int i = 0; i < uncom_data_size; i++) { + // printf("%02X ", uncom_data_buff[i]); //} //printf("\n"); - //printf("\n"); - //for(int k=0;k<20;k++) { - // printf("%d: %d\n", (24000+k), uncom_data_buff[24000+k]); - //} - printf("\n"); + + do { + for(int j = 0; j < 64; j++) { + cur_idat_len = 0; + for(int i = 0; i < 4; i++) { + cur_idat_len += (file_data[offset+i] << (24-(8*i))); + } + //printf("%c", file_data[offset+cur_idat_len+8]); + if((j % 4) == 0) { + printf("%c", file_data[offset+cur_idat_len+8]); + } + // Offset Plus idat length + 3 bytes + offset += cur_idat_len + 12; + } + } while(offset < idat_byte_length); free(idat_data); free(file_data); diff --git a/include/crc.h b/include/pspng.h similarity index 100% rename from include/crc.h rename to include/pspng.h