Log in

View Full Version : Decompiling BYOND dmb files


WayCoolRatt
April 7th, 2012, 21:52
I've created several games using BYOND, about 4 years ago I had a power surge that destroyed a computer, NES, and a DVD player, the source code to two of my games was lost. I've been told countless times to just recreate the games and make them better the second time around, but things just aren't that simple. It took a long time to make these games, and it was a team effort. I'm completely new to reverse engineering and decompiling, I'm not sure if it makes a difference or not, but BYOND uses a seperate program that reads the .dmb code file, and the .rsc file, which contains all the graphics and sound.

I downloaded a decompiler for the .rsc file, and it works perfectly. The .dmb file is the problem. Would the source code for the program that compiles the .dmb file be needed to make a decompiler, or can that program just be decompiled itself? Is the exact version of the program important? Where would I find someone who could and would help me with this?

Woodmann
April 7th, 2012, 22:06
These folks cant help you ?

http://www.byond.com/forum/

Woodmann

WayCoolRatt
April 7th, 2012, 22:21
I searched that forum many times, there is nothing there. I also was never able to get any help from them back when I was making my games.

blabberer
April 9th, 2012, 12:18
just for kicks downloaded the suite downloaded a random game logged in as guest and

and gave a spin in ollydbg

it seems the dmb file contains mostly a xor routine with data at specific filepointers
ftell() fgetc() getc() xor memcpy()
the header prolly ends at 42 bytes and then patterns are simply visible to naked eye

you would need to catch a few child processos to land in the right process context with right commandline args passed by the parent process

Code:

77 6F 72 6C 64 20 62 69 6E 20 76 34 38 33 0A 6D 69 6E 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 76 34 36 38 20 34 36 38 0A
world bin v483.min compatibility v468 468.


if you spend a few days and nights in front of a debugger and you can figure out most of the stuff

good luck