do yall have a formal decompilation project people can contribute to
do yall have a formal decompilation project people can contribute to
title. is there an organized setup in place or yall just having fun with what stuff is interesting?
Re: do yall have a formal decompilation project people can contribute to
Unfortunately there isn't really a good answer for this. Over the years there have been attempts at a formal project (there was even one publicly viewable on GitHub for a bit), but all of them eventually stalled due to other obligations/lack of time. Currently we're just gradually filling in Ghidra/IDA databases and hoping to eventually springboard a decomp off of that.
Re: do yall have a formal decompilation project people can contribute to
is there like a ghidra server that people can pop in and contribute what they can?
also does lego island export any symbols (prob not worth asking tho lol)
Re: do yall have a formal decompilation project people can contribute to
We have a Ghidra server for it, yes, though I'm not sure it's safe to open it to just anyone. AFAIK anyone with read/write access could completely torch it if they wanted to. Do you have any credentials/prior work?
There are a handful of exports between LEGO1.DLL and ISLE.EXE, but fairly limited stuff. No other debug symbols have been discovered on any release of the game.
There are a handful of exports between LEGO1.DLL and ISLE.EXE, but fairly limited stuff. No other debug symbols have been discovered on any release of the game.
Re: do yall have a formal decompilation project people can contribute to
In my re project, I tag every symbol with an address. This can be done with macros and/or comments. e.g.
(it's also a must for my project since it hooks the original executable)
The string <-> name mapping can then be extracted using a (python) script.
A ghidra (python) script then does the following:
The main disadvantage is that it doesn't transmit any tagging done inside a function.
url: https://github.com/madebr/rec2 (the work branch has more recent (untested) changes)
Code: Select all
#define ISLE_VARIABLE(TYPE, NAME, ADDRESS)
int g_variable; ISLE_VARIABLE(int, g_variable, 0x1234567)
The string <-> name mapping can then be extracted using a (python) script.
A ghidra (python) script then does the following:
- Create a new Ghidra project and auto-analyze the program
- Create types by parsing .h headers from the re project. The project makes sure all types can be understood by ghidra's C parser.
- Use the dictionary mentioned above to tag global variables/functions.
The main disadvantage is that it doesn't transmit any tagging done inside a function.
url: https://github.com/madebr/rec2 (the work branch has more recent (untested) changes)