Compare commits

..

No commits in common. "57fc53ebfbbbdc62681b091f03dd1dbfafc93b4a" and "b95a66468801fb5894ec99f59780078b0c5c1682" have entirely different histories.

5 changed files with 12 additions and 37 deletions

View file

@ -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 @@
}
}
]
}
}

View file

@ -78,7 +78,7 @@ struct UnknownStatic19 {
};
struct UnknownStatic24 {
UnknownStatic24();
virtual ~UnknownStatic24();
virtual ~UnknownStatic19();
};
struct UnknownStatic27 {
UnknownStatic27();

View file

@ -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
);

View file

@ -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

View file

@ -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

Can't render this file because it has a wrong number of fields in line 3.