Earlier quoted context omitted.
I see. It sounds like it would be a source of countless headaches, and I don’t think I’d ever want to do something that risks breaking the program like that, but I guess that’s why I’m not a game programmer.
Picture the scene: you have a 102KiB executable game that you want to enter into the 96KiB-or-less game competition at a demoparty in 2 weeks time. You and your friends have been working on this for months. This amazing thing you have is currently 6KiB too large to qualify for the competition at all. What do you do? https://fgiesen.wordpress.com/2012/04/08/metaprogramming-for... Now it makes sense.
A file format uncracked for 20 years
61–63 of 63 posts
Re: A file format uncracked for 20 years
#62I'm always amazed by people doing reverse engineering of some country formats. There's a binary format that I've been wanting to reverse engineer, but I don't know exactly how to start. It's for the result file of a proprietary finite element program. Could anyone point me to some resources and also what are the basics that I need to learn to achieve this?
As someone who has reverse engineers hundreds of random file formats of all kinds over the years, the comment that suggests understanding the code is generally spot on. You can basically divide the world into read/write/write-only formats and read-only formats. For read/write/write-only formats, usually the in-memory data structures were written first, and then the serialization/deserialization code. So it almost alw…
You can do something in between reverse-engineering the code and reverse-engineering the format if you can instrument the reader: attach breakpoints on every basic block in the reader, load a file, take a baseline trace of what gets hit, then vary bytes in the file and diff the new trace against the baseline.
It's a pretty fun tool to write, too.
Re: A file format uncracked for 20 years
#63> The entire content of the function is: > retn 4 > That's it. I've seen this before; it's a random() function.