I forget which, but some game use a zip file but they mess the header up somehow (like a XOR pattern on first 20 bytes or something I don't remember details) and then their game just transparently undid the mess up, but winzip or WinRAR had trouble recognizing the file as a not valid file.
Rename the extension is easier. Everyone says who cares about trying hard and I agree.
I wonder if any program has done this:
Store .zip file as a different extension, possibly split up into 2 files or more as well, with every unsigned byte stored + 47.
When the game starts, it reads this file, subtracts 47 from every unsigned byte, and writes the result to a temporary single file with a different extension but is now a valid original zip file.
Then it opens that with the normal function. And then deletes it when it closes the file and doesn't need it anymore. I think that take about 1 minute to code.
And a command line utility that take the 1st arg as a original file, and write the messed up files into same directory, then it is just drag and drop of new version of your zip file onto that program in windows and you have the new corrupted files for the game to read.
Because that sounds a little bit sneaky and also easy in terms of complication I bet someone has done that before for a less than 50 megabyte game anyway.
I did something similar for a library that was difficult to use/build, I instead use the pre-compiled binary, and instead of calling library function I wrote data to file, executed the binary (which was inside the program folder) on the file with results to another file, and then read that other file back in, and then deleted everything, and to a normal user they didn't know the difference and it took me like 15 minutes instead of days.