The Slim BinaryTM Decompiler

This nifty utility allows one to decode a Slim BinaryTM (.Obj) file back into an Oberon-2 (.Mod) source format. (In case of native .Obj files, only the global symbol table is produced.) In writing this utility, I have stuck (I think) to the final ANSI C++ draft throughout the project so it "should" be portable, provided your compiler supports namespaces, templates, extension-less STL files (e.g., "#include <fstream>") and the like. The sources compiled successfully under both Microsoft Visual C++ 6.0 and the Metrowerks CodeWarrior 5 compilers for both Win32 and PowerPC MacOS targets.

My purpose in writing this application was twofold. First, I wanted to fully understand the structure of the Slim BinaryTM format, with all its strengths and weaknesses, as a springboard for further research. Secondly, the decoder demonstrates the ease with which high-level semantic information can be extracted (and plausibly used for module verification, optimization, etc.), given a properly designed portable code format.

Since there exists no formal (or even quasi-formal) specification for the Slim BinaryTM layout, the sb1d utility presented here cannot ever be viewed as being "complete" in any meaningful sense of the term. The application succesfully decompiles those Oberon-2 .Obj files, found in the Windows and MacOS distributions of Oberon System 3, that I had a chance to test out. Unfortunately, my little program can never be guaranteed to handle any and all such files (to say nothing of object files on other Oberon ports).

Should you encounter weird problems during compilation and/or execution, please E-mail let me know. Any feedback regarding the usability and understandability of the system shall also be appreciated.


The following items are available for download (the usual disclaimers apply):
 
Source Code The Slim BinaryTM Decompiler C++ Source Code (Ver 1.30: 24-Nov-1999.)

Use these to compile the decoder on your platform.
 

Win32 Executable The Slim BinaryTM Decompiler Win32 Executable (Ver 1.30: 24-Nov-1999.)

This is a pre-built executable (.exe) for 32-bit Windows platforms. (I've tested it only on Windows NT 4.0, though.)
 

MacOS PowerPC Executable

new!

The Slim BinaryTM Decompiler MacOS PowerPC Executable (Ver 1.30: 24-Nov-1999.)

With the help of my friends, I have finally been able to figure out how to build this thing for the Mac! :) It is packaged as a StuffIt ExpanderTM document containing the actual sb1d application. When you double-click on the resulting sb1d icon, you will be prompted for the .Obj file name. For convenience, you may want to place sb1d in the same directory as the files you want to decompile (e.g., the :Obj: subfolder of your Oberon System 3 tree).
 



HOME PAGE
(C) Copyright 1998-2002 by Ziemowit Laski. All Rights Reserved.