Recovering symbols for the game Syndicate Wars by Bullfrog.
This repository contains binaries and symbols related to Syndicate Wars.
The purpose of gathering these is to name functions and global variables in the assemby blob within Syndicate Wars Port.
-
binfolder contains executable files useful for the symbol recovery. -
symbolsfolder contains the symbols, in a format which is not dependent on any specific RE tool. In particular, these files can be used both with IDA Pro and with Ghidra.
Several binaries from Bullfrog are included. Some have debug symbols embedded in the EXE, some have additional debug messages within code.
There is also a modified version of wdump.exe which
allows extracting debug info from binaries built with
Watcom C++ compiler.
Symbols are included in two formats:
-
mapformat is a very simple, basic format, based on log files generated by Microsoft compilers (though other compilers today have an option to generate MAP file as well). It is very easy to read and load into any disassembler; to load it into Ida Pro, useida-pro-loadmapplugin. -
xmlformat is developed for more complex sharing of symbols between Ida Pro and Ghidra. Use Ghidra IDAPro Extensions to load them into any of these tools.
Here is a simple quick start procedure, to use these files with IDA Pro or ghidra - the two most popular tools (sorry BinaryNinja fans!).
-
Download ghidra. Yes, even if you want to use IDA Pro. The ghidra distribution includes XML exporter plugin, which can be used to export databases as XML files so that they can be imported into both tools. This allows to migrate between these disassemblers, both ways.
-
[IDA Only] Add the XML exporter plugin to your IDA installation. To do that, locate the
.pyfiles in the<ghidra_dir>/Extensions/IDAProfolder. Get IDA Pro version which the exporter supports, it does not support all versions. Then copy the python script files into<IDA_dir>/plugins. -
[ghidra Only] Install Java JDK which your version of ghidra supports, and then install ghidra. I'm serious, check the JDK version carefully, or this will not be as quick as you expect.
-
[ghidra Only] Install ghidra LX/LE loader extension using 'File -> Install Extensions...'. Download it in a version which works with your ghidra, on the ghidra-lx-loader project releases page.
-
Open the proper binary executable file from
binfolder into your tool of choice. That's 'File -> Open' within IDA Pro, 'File -> Import File...' in ghidra. Both tools should now detect LE format. You may skip analysis as the XML replaces everything. Then use XML importer plugin to load the.xmlfile fromsymbolsfolder. -
Done. You're ready to go.
Have a fascinating experience!