Spoiler: half the time, that unknown file format is a zip containing a sqlite db
Reverse Engineering Unknown File Formats with ImHex
31–40 of 55 posts
Re: Reverse Engineering Unknown File Formats with ImHex
#32Story time: I worked the night shift at a motel during college. "Bored to tears" was an understatement. I was poking around the front desk computer system one night, as one does, and found its data file. Lacking anything else to do, I wrote a little hex dumper in BASIC so I could explore the file. The first thing I noted was that customer names were spaced exactly N bytes apart. Oooh, fixed records! Then I spent the…
How did your program suggest auto-fixed names? A manually entered list of common names, or did it go by previous records? BASIC is over 40 years older than me, and I have never played with it, thus my question :-)
It went by previous records. I'd read something about Levenshtein distance somewhere, and implemented my own half-assed version of it that was surely slower, more complicated, and less accurate. It still got the job done, though. I showed it to a coworker, who described it as "magic", and I floated on that compliment for a long time after.
I was pretty proud of it, although the resulting QBasic code was pretty awful in retrospect. It was probably my first commercial-scale project, built with the software that happened to ship with the computer.
Re: Reverse Engineering Unknown File Formats with ImHex
#33Earlier quoted context omitted.
How did your program suggest auto-fixed names? A manually entered list of common names, or did it go by previous records? BASIC is over 40 years older than me, and I have never played with it, thus my question :-)
BASIC, while not a language I'd use for any reason today, is Turing complete. You can write any program in BASIC that you could write in Rust. Of course, you'd mainly do that for the same reason you'd write something in, say, Brainfuck: mainly to see if you can. But when that's all we had, we could get pretty creative with it. It went by previous records. I'd read something about Levenshtein distance somewhere, and i…
Re: Reverse Engineering Unknown File Formats with ImHex
#34- stupid question: do you have any ideas how to go about doing this on a .unr file - it comes from a game called splinter cell conviction made in custom unreal 2.5 - I have neither been able to get UE-Explorer or UEViewer to work with it - I can send you the file, I just want to know how to change enemy AI spawn types on it
Try an LLM, either to do it directly or to guide your own explorations
- the post itself quotes "I usually couldn’t really give them a good answer except, “Look at the decompiled code of whatever program reads/writes these files and work backwards from there.”
- i dont have the program and that is the real challenge
Re: Reverse Engineering Unknown File Formats with ImHex
#35My few rules are: 1) What's the entropy? This helps with encrypted/compressed. You probably need to overcome this? 2) What's the context? Apps are developed in context and context suggests formats. Is it C? Then expect structs. Does it need to go over the wire? Expect run-length encodings. Python/JS - JSON/pickle. 3) There are broadly speaking only a few ways you can read data back into memory: fixed layout, run-leng…
Re: Reverse Engineering Unknown File Formats with ImHex
#36tbt to reverse engineering the original PokemonGo rpc
Re: Reverse Engineering Unknown File Formats with ImHex
#37Story time: I worked the night shift at a motel during college. "Bored to tears" was an understatement. I was poking around the front desk computer system one night, as one does, and found its data file. Lacking anything else to do, I wrote a little hex dumper in BASIC so I could explore the file. The first thing I noted was that customer names were spaced exactly N bytes apart. Oooh, fixed records! Then I spent the…
So but words like "database" and "sql" scared the shit out of me at the time. I was doing most of my coding out of a starbucks in Eagle Rock and there was one other guy there on a laptop, John P, who kept looking at what I was writing and telling me I had to learn databases.
What I ended up coding was basically a database based on text files and pages and a custom encoding methods and a system for locking. Imagine a year later in 1999 when I realized this had all been solved and I'd been too stubborn to try it or understand what it did...
Fast forward a few years and someone put two sequential asterisks in in the name of a product and blew up the site and my encoding system, since they'd accidentally stumbled on the row break symbol. lol. Good times.
Re: Reverse Engineering Unknown File Formats with ImHex
#38My few rules are: 1) What's the entropy? This helps with encrypted/compressed. You probably need to overcome this? 2) What's the context? Apps are developed in context and context suggests formats. Is it C? Then expect structs. Does it need to go over the wire? Expect run-length encodings. Python/JS - JSON/pickle. 3) There are broadly speaking only a few ways you can read data back into memory: fixed layout, run-leng…
Re: Reverse Engineering Unknown File Formats with ImHex
#39Earlier quoted context omitted.
Try an LLM, either to do it directly or to guide your own explorations
as a guy who doesnt have experience fiddling with this kinda stuff, what is the step by step process if any to go about figuring out how an unknown file format is actually made of and modifying it? - the post itself quotes "I usually couldn’t really give them a good answer except, “Look at the decompiled code of whatever program reads/writes these files and work backwards from there.” - i dont have the program and th…
I have this game, Game Name exact version, which I love and I logged hundreds of hours in it, however there's this little detail that bothers me like a pebble in a shoe: (details of the problem here). I think that it's all encoded in the file (file name), but it's binary and I have no idea how to access it :(
Could you perhaps guide me how to analyse and "decode" this file so I could later change this behaviour? I don't have any experience with reverse engineering but I'm excited to try.
All game files are in /full/path/to/the/game
Thanks!"
Works for me.
Be excited, frame it as a learning opportunity, make sure it's obvious its for your own enjoyment (not for distribution).