diff --git a/decompile/objdiff.json b/decompile/objdiff.json index 97328fd..083041a 100644 --- a/decompile/objdiff.json +++ b/decompile/objdiff.json @@ -16,10 +16,10 @@ "source_path": "src/JSRF/Jet2.cpp" }, "symbol_mappings": { - "?main_funcinfo@@3UFuncInfo@@A": "$T1112", - "?main_handler@@YAXPAUEHExceptionRecord@@PAKPAXPAU_xDISPATCHER_CONTEXT@@@Z": "$L1116", - "?main_handler_unwind1@@YAXXZ": "$L1108", - "?main_unwindmap@@3PAUUnwindMapEntry@@A": "$T1118", + "?main_funcinfo@@3UFuncInfo@@A": "$T747", + "?main_handler@@YAXPAUEHExceptionRecord@@PAKPAXPAU_xDISPATCHER_CONTEXT@@@Z": "$L751", + "?main_handler_unwind1@@YAXXZ": "$L743", + "?main_unwindmap@@3PAUUnwindMapEntry@@A": "$T753", "[.rdata-0]": "[.xdata$x-0]" } }, @@ -55,4 +55,4 @@ } } ] -} \ No newline at end of file +} diff --git a/decompile/src/JSRF/Core.hpp b/decompile/src/JSRF/Core.hpp index 3206349..718536d 100644 --- a/decompile/src/JSRF/Core.hpp +++ b/decompile/src/JSRF/Core.hpp @@ -78,7 +78,7 @@ struct UnknownStatic19 { }; struct UnknownStatic24 { UnknownStatic24(); - virtual ~UnknownStatic24(); + virtual ~UnknownStatic19(); }; struct UnknownStatic27 { UnknownStatic27(); diff --git a/decompile/src/XDK/Win32.h b/decompile/src/XDK/Win32.h index 66769ac..324e71a 100644 --- a/decompile/src/XDK/Win32.h +++ b/decompile/src/XDK/Win32.h @@ -28,7 +28,6 @@ typedef unsigned short WORD; typedef unsigned long DWORD; typedef void VOID; -typedef void * PVOID; typedef void * LPVOID; typedef unsigned long SIZE_T; typedef float FLOAT; @@ -56,26 +55,14 @@ typedef long HRESULT; #define ERROR_SUCCESS 0L #define E_OUTOFMEMORY 0x8007000EL -// Low-level stuff -typedef void (*IMAGE_TLS_CALLBACK)(PVOID DllHandle, DWORD Reason, PVOID Reserved); - -struct IMAGE_TLS_DIRECTORY32 { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - DWORD * AddressOfIndex; - IMAGE_TLS_CALLBACK * * AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -}; - // Standard Win32 functions VOID __stdcall Sleep(DWORD dwMilliseconds); LPVOID __stdcall VirtualAlloc( LPVOID lpAddress, SIZE_T dwSize, - DWORD flAllocationType, - DWORD flProtect + DWORD flAllocationType, + DWORD flProtect ); diff --git a/documentation/gettingstarted.md b/documentation/gettingstarted.md index d6aa4d2..626f25e 100644 --- a/documentation/gettingstarted.md +++ b/documentation/gettingstarted.md @@ -22,26 +22,14 @@ You'll need a few things to get a decompilation workflow ready: your C++ code - You'll also want to add its `Bin/` directory to your `PATH` so that objdiff can find it - - If not on Windows, `CL.EXE` and friends can be passed to - [Wine](https://www.winehq.org) to run the compiler on other platforms - The [Git](https://git-scm.com/) version control tool to clone and work on this repository -- [Java](https://jdk.java.net/archive/) 21 or later, as required by Ghidra. - You may already have it; Minecraft apparently provides Java 21, for instance. - Later versions should also work; 21 and 25 specifically have been confirmed - to work fine. - The [Ghidra](https://github.com/NationalSecurityAgency/ghidra) reverse - engineering tool to analyze and browse the executable (version 12.0.3 is - strongly recommended, as the extensions have releases for this exact version) + engineering tool to analyze and browse the executable - The [XBE extension](https://github.com/XboxDev/ghidra-xbe) for Ghidra to - import and analyze the JSRF executable (version will depend on your Ghidra - version; ideally it will match your Ghidra version, like - [12.0.3](https://github.com/XboxDev/ghidra-xbe/releases/tag/build-202602250354)) + import and analyze the JSRF executable - The [delinker extension](https://github.com/boricj/ghidra-delinker-extension) - for Ghidra to export object files from the executable (version again depends - on Ghidra version; - [v0.8.0](https://github.com/boricj/ghidra-delinker-extension/releases/tag/v0.8.0) - provides a download for Ghidra 12.0.3 specifically) + for Ghidra to export object files from the executable - The [objdiff](https://github.com/encounter/objdiff) code diffing tool to compare your C++ code's compiled output to the delinked object files diff --git a/ghidra/symboltable.tsv b/ghidra/symboltable.tsv index 055c3c2..9d66389 100644 --- a/ghidra/symboltable.tsv +++ b/ghidra/symboltable.tsv @@ -1105,7 +1105,7 @@ 0x001d7b20 data undefined * SoundManager::vtable 0x001da300 data undefined * UnknownObj_0x1DE2::vtable 0x001da350 data undefined * UnknownObj_0x1DE4::vtable -0x001e0c2c data IMAGE_TLS_DIRECTORY32 extern_"C"::_tls_used +0x001e0c2c data IMAGE_TLS_DIRECTORY_32 extern_"C"::_tls_used 0x001e0ea0 data float g_radToU16Angle1 0x001e0ea4 data float g_radToU16Angle2 0x001e0ea8 data float g_radToU16Angle3