5

I am trying to recreate an old game just for the sake of nostalgia and learning something new alongside (I can program in various languages and know a bit of assembly language, but I'm new to reverse engineering). The game is called Banania and looks like this:

enter image description here

Now, my problem is finding the level data of this game (It's only one .exe file, nothing else). If I would have made this game, I would have stored the levels (which seem to be of Size 21x13) in a three dimensional array (50x21x13) for 50 total levels. However, I just can't seem to find any rectangular pattern of that size that look like levels in my hex editor.

How would you try to find it? I'd be grateful for some help.

EDIT: After staring at the binaries for the whole day, I finally found the level data! I discovered it by luck, it was just a large chunk with only about 20 different numbers used. The format is exactly like I expected. Since I know how the levels look, it shouldn't be too hard to guess what integer stands for which item. Apparently, Integers on Windows 3.1 were 16 bit long (at least, that's my guess), that's why I didn't find it at first.

3

Based on the output of NE dumper, the level data appears to begin at file offset 0x17600 and each level appears to be 0x200 bytes long.

| improve this answer | |
  • You're absolutely right, I found it out myself in the meantime. Thanks for pointing it out. To be honest, I'm kind of mindblown that a program can find that out for you. I will definitely check NE dumper out, – Kenji Jun 1 '13 at 19:39
  • 1
    It helped that Banania's author named those resources "LEVEL" ;) – Jason Geffner Jun 1 '13 at 21:23
5

You will probably don't see the rectangular patterns because of line width vs. actual data structure width. So it's totally displaced.

But you could try binwalk (a firmware analysis tool) to display a graph with the entropy of the file, which can help to identify repetetive regions in the executable.

entropy example output

| improve this answer | |
  • Thanks, I'll look into it. Unfortunately I currently only use Windows so I'll have to install Linux some time. – Kenji Jun 1 '13 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.