mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-04-07 04:50:23 +03:00
Compare commits
4 commits
b95a664688
...
57fc53ebfb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57fc53ebfb | ||
|
|
da6865e5f6 | ||
|
|
3e8622f369 | ||
|
|
8fc7d8d918 |
5 changed files with 37 additions and 12 deletions
|
|
@ -16,10 +16,10 @@
|
||||||
"source_path": "src/JSRF/Jet2.cpp"
|
"source_path": "src/JSRF/Jet2.cpp"
|
||||||
},
|
},
|
||||||
"symbol_mappings": {
|
"symbol_mappings": {
|
||||||
"?main_funcinfo@@3UFuncInfo@@A": "$T747",
|
"?main_funcinfo@@3UFuncInfo@@A": "$T1112",
|
||||||
"?main_handler@@YAXPAUEHExceptionRecord@@PAKPAXPAU_xDISPATCHER_CONTEXT@@@Z": "$L751",
|
"?main_handler@@YAXPAUEHExceptionRecord@@PAKPAXPAU_xDISPATCHER_CONTEXT@@@Z": "$L1116",
|
||||||
"?main_handler_unwind1@@YAXXZ": "$L743",
|
"?main_handler_unwind1@@YAXXZ": "$L1108",
|
||||||
"?main_unwindmap@@3PAUUnwindMapEntry@@A": "$T753",
|
"?main_unwindmap@@3PAUUnwindMapEntry@@A": "$T1118",
|
||||||
"[.rdata-0]": "[.xdata$x-0]"
|
"[.rdata-0]": "[.xdata$x-0]"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ struct UnknownStatic19 {
|
||||||
};
|
};
|
||||||
struct UnknownStatic24 {
|
struct UnknownStatic24 {
|
||||||
UnknownStatic24();
|
UnknownStatic24();
|
||||||
virtual ~UnknownStatic19();
|
virtual ~UnknownStatic24();
|
||||||
};
|
};
|
||||||
struct UnknownStatic27 {
|
struct UnknownStatic27 {
|
||||||
UnknownStatic27();
|
UnknownStatic27();
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ typedef unsigned short WORD;
|
||||||
typedef unsigned long DWORD;
|
typedef unsigned long DWORD;
|
||||||
|
|
||||||
typedef void VOID;
|
typedef void VOID;
|
||||||
|
typedef void * PVOID;
|
||||||
typedef void * LPVOID;
|
typedef void * LPVOID;
|
||||||
typedef unsigned long SIZE_T;
|
typedef unsigned long SIZE_T;
|
||||||
typedef float FLOAT;
|
typedef float FLOAT;
|
||||||
|
|
@ -55,6 +56,18 @@ typedef long HRESULT;
|
||||||
#define ERROR_SUCCESS 0L
|
#define ERROR_SUCCESS 0L
|
||||||
#define E_OUTOFMEMORY 0x8007000EL
|
#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
|
// Standard Win32 functions
|
||||||
VOID __stdcall Sleep(DWORD dwMilliseconds);
|
VOID __stdcall Sleep(DWORD dwMilliseconds);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,26 @@ You'll need a few things to get a decompilation workflow ready:
|
||||||
your C++ code
|
your C++ code
|
||||||
- You'll also want to add its `Bin/` directory to your `PATH` so that objdiff
|
- You'll also want to add its `Bin/` directory to your `PATH` so that objdiff
|
||||||
can find it
|
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
|
- The [Git](https://git-scm.com/) version control tool to clone and work on
|
||||||
this repository
|
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
|
- The [Ghidra](https://github.com/NationalSecurityAgency/ghidra) reverse
|
||||||
engineering tool to analyze and browse the executable
|
engineering tool to analyze and browse the executable (version 12.0.3 is
|
||||||
|
strongly recommended, as the extensions have releases for this exact version)
|
||||||
- The [XBE extension](https://github.com/XboxDev/ghidra-xbe) for Ghidra to
|
- The [XBE extension](https://github.com/XboxDev/ghidra-xbe) for Ghidra to
|
||||||
import and analyze the JSRF executable
|
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))
|
||||||
- The [delinker extension](https://github.com/boricj/ghidra-delinker-extension)
|
- The [delinker extension](https://github.com/boricj/ghidra-delinker-extension)
|
||||||
for Ghidra to export object files from the executable
|
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)
|
||||||
- The [objdiff](https://github.com/encounter/objdiff) code diffing tool to
|
- The [objdiff](https://github.com/encounter/objdiff) code diffing tool to
|
||||||
compare your C++ code's compiled output to the delinked object files
|
compare your C++ code's compiled output to the delinked object files
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1105,7 +1105,7 @@
|
||||||
0x001d7b20 data undefined * SoundManager::vtable
|
0x001d7b20 data undefined * SoundManager::vtable
|
||||||
0x001da300 data undefined * UnknownObj_0x1DE2::vtable
|
0x001da300 data undefined * UnknownObj_0x1DE2::vtable
|
||||||
0x001da350 data undefined * UnknownObj_0x1DE4::vtable
|
0x001da350 data undefined * UnknownObj_0x1DE4::vtable
|
||||||
0x001e0c2c data IMAGE_TLS_DIRECTORY_32 extern_"C"::_tls_used
|
0x001e0c2c data IMAGE_TLS_DIRECTORY32 extern_"C"::_tls_used
|
||||||
0x001e0ea0 data float g_radToU16Angle1
|
0x001e0ea0 data float g_radToU16Angle1
|
||||||
0x001e0ea4 data float g_radToU16Angle2
|
0x001e0ea4 data float g_radToU16Angle2
|
||||||
0x001e0ea8 data float g_radToU16Angle3
|
0x001e0ea8 data float g_radToU16Angle3
|
||||||
|
|
|
||||||
|
Can't render this file because it has a wrong number of fields in line 3.
|
Loading…
Add table
Add a link
Reference in a new issue