I'm reversing an old video game with large number of shared libraries, and in order to reference them all correctly (via "thunk" functions?) I think I need to import all of the raw files into the same program tree. I've tried using analyzeHeadless
to import all of the shared libraries into the project, but I don't see way to place them into an existing program using that tool (it instead creates a new program for each file). Let me know if I'm doing something wrong.
1 Answer
Are they raw files loaded by special mechanisms or typical .so
or .dll
shared objects? Given the dll
tag I am assuming you are concerned about .dll
files.
On importing a program for the first time you can select Options
and then activate "Load External Libraries"
Configure the paths properly via Edit Paths
.
The paths are searched for shared libraries that are specified as imports in actual program you are importing. If you have already imported the program you can still fix this with ELF files as described in this issue but for some reason there is no premade script for PE files, i.e. .dll
s. There might still be a way to do this manually though, the idea is just to also have imported the relevant DLL file so you can link it to a program that requires it as an external library. The relevant functions will then be properly linked.
ImporterUtilities.addContentToProgram()
, which callsLoader.loadInto()
. I'll write up a full answer once I get my attempt working