I have a block of data that is stored by a database application. I can access the data in the native application environment with no issues. The application allows me to store the data in either compressed or uncompressed format. Over the years, I have become intricately familiar with the uncompressed format that this application uses, and have written several file-recovery tools to help repair corrupted files. This is the easy part.
What I am now trying to do is to interpret the raw data stream for a compressed file -- so that I can update the repair tool and be able to repair and recover compressed data whenever possible. I have attached two files (ignore the txt extension -- both are binary files and should be viewed with a hex viewer), one which shows the original, uncompressed data, and one which shows the compressed data. I am now trying to determine HOW this data was compressed, and to determine a decompression algorithm if possible.
I originally assumed a simple RLE compression, but this seems not to be the case. Note that the "t" at the end of "Vincent" is present, but the "t" at the end of "Street" is missing, so it's got to me more complicated than this. Further, after the zip code we see the string "31 32 30 31 00 00" gets actually increased in length from 6 to 7 bytes as "24 09 00 05 31 00 00" before the subsequent field.