Commit Graph

157 Commits

Author SHA1 Message Date
Maschell
3853f3876e Use bin2s instead of xxd to include the relocator.elf 2020-06-25 18:57:41 +02:00
Maschell
d1581b392f Make sure to build the relocator if their files changes 2020-06-25 18:56:36 +02:00
Maschell
c3e7fe0f51 Add support for the WUMS_HOOK_RELOCATIONS_DONE hook 2020-06-10 16:20:20 +02:00
Maschell
00a8f16314 Do not replace the reloactions of the memory function (will be replaced by module) 2020-06-10 14:13:06 +02:00
Maschell
306b2c1e70 Improve logging 2020-06-07 15:42:47 +02:00
Maschell
b5f345e22a Formatting 2020-06-07 14:18:34 +02:00
Maschell
44b65558ef Fix compiler warnings 2020-06-07 14:17:02 +02:00
Maschell
e84b6f63bf Save the current module information struct version inside the struct. 2020-06-07 14:09:58 +02:00
Maschell
de4938474c Formatting 2020-06-07 13:59:02 +02:00
Maschell
e70ec9b345 Modules do now have a flag if they should be run before their entrypoint. 2020-06-07 13:58:55 +02:00
Maschell
6a6a41bf1d Outsource the function patching to the FunctionPatcherModule and DynLoadPatchModule 2020-06-06 22:14:26 +02:00
Maschell
b46639975e Adopt the hook-call of WUMS_HOOK_INIT to provide a pointer to the module_information_t struct 2020-06-06 22:12:18 +02:00
Maschell
3f6f956b70 Move module defines into WUMS 2020-06-06 17:02:31 +02:00
Maschell
10d74d9f6d Adopt to changes of WUMS. The main() of modules are now called only once, but the WUMS_HOOK_APPLICATION_STARTS hook is called on every application start.
The .bss section is not cleared anymore, modules will always considered running in the background (and not ending when the application end)
For this to work we need to force the init of the kernel + memorymapping module to be done in the right order.
2020-06-03 19:41:05 +02:00
Maschell
62dd3cc0c5 Add support for calling hooks of a single module 2020-06-03 19:37:32 +02:00
Maschell
94d40374f9 Fix calling the hooks 2020-06-03 19:36:16 +02:00
Maschell
eac22b0583 relocator: Fix location of Init-Hook call 2020-06-01 18:43:58 +02:00
Maschell
2442bb46c5 Fix several compiler warnings 2020-06-01 16:41:46 +02:00
Maschell
985691e608 relocator: formatting 2020-06-01 16:38:13 +02:00
Maschell
29c90bc943 relocator: Fix KiIsEffectiveRangeValid to return a boolean. 2020-06-01 16:36:00 +02:00
Maschell
40359e1211 relocator: Save ordered list of modules based on dependencies, move hook calling into a new file 2020-06-01 16:35:34 +02:00
Maschell
3b94c82ed2 relocator: add missing KiPhysicalToEffectiveUncached address 2020-05-31 02:25:37 +02:00
Maschell
0225c49e3a reloactor: Add KiIsEffectiveRangeValid patch 2020-05-31 02:25:07 +02:00
Maschell
6695815a6e relocator: reduce number of warning in the logs by using our memory mapping test before the real one 2020-05-31 02:24:18 +02:00
Maschell
9809b1b48d relocator: Fix compling 2020-05-31 02:23:31 +02:00
Maschell
82dc811f42 relocator: Patch the kernel to allow usage of our custom memory mapping 2020-05-30 22:02:21 +02:00
Maschell
166ecb6bda relocator: Replace the malloc/free function of modules with the ones from the memory_mapping module (but not for the memory_mapping module itself and only after the inital setup) 2020-05-30 22:01:55 +02:00
Maschell
ce14fc8a6e relocator: Make sure to call the memory_mapping main() function at first 2020-05-30 22:00:17 +02:00
Maschell
8d46cf5303 relocator: Save the address of the PhysicalToEffective + EffectiveToPhysical function from the memory module is present. 2020-05-30 21:59:42 +02:00
Maschell
f6031a0ef0 relocator: Add initial support for kernel function patches 2020-05-30 21:57:20 +02:00
Maschell
74b3394180 relocator: remove logs when using a custom findexport 2020-05-30 21:56:23 +02:00
Maschell
e925f0bdc6 relocator: Fix the logging when patching functions 2020-05-30 21:55:47 +02:00
Maschell
a3310579b8 Call module init hooks 2020-05-29 19:27:30 +02:00
Maschell
28926f6a9b Fix flushing the cache are doing the relocations 2020-05-29 18:26:19 +02:00
Maschell
6cb4f4e358 Add initial support for storing and loadings hooks of modules (but not calling them) 2020-05-29 17:36:10 +02:00
Maschell
02441dab81 relocator: Add missing ExportData loading for ModuleData in persistence 2020-05-29 17:31:53 +02:00
Maschell
c52592c016 relocator: Remove unused ModuleDataPersistence::saveModuleData function 2020-05-29 17:30:44 +02:00
Maschell
cd3065b9e5 ModuleDataPersistence: Add missing export name loading 2020-05-29 17:30:10 +02:00
Maschell
c6c12798ea Fix loading ModuleData from persistence 2020-05-29 17:29:17 +02:00
Maschell
fa68c980af Fix support for loading multiple modules 2020-05-28 21:45:44 +02:00
Maschell
b9064883a2 OSFatal on failed find export 2020-05-28 20:26:02 +02:00
Maschell
db3fe907ef Change way of detecting relocations of imports 2020-05-28 20:17:28 +02:00
Maschell
51fc349237 Add support for WUMS, support for handling and resolving exports 2020-05-17 21:14:27 +02:00
Maschell
2ee3011ae8 Formatting 2020-05-17 19:05:51 +02:00
Maschell
373579cd6f Inital support for patching the OSDynload_Acquire and OSDynload_FindExport 2020-05-17 13:14:19 +02:00
Maschell
ee045acdc8 Save information about sections of a module 2020-05-17 13:13:24 +02:00
Maschell
b526acbded Allocate everything on the stack instead of the heap 2020-05-17 13:11:52 +02:00
Maschell
d36ad9bf3d Change address/endAddress in ModuleData to startAddress/endAddress 2020-05-03 00:06:11 +02:00
Maschell
48b5f853e3 Add the size and address to the ModuleData 2020-04-29 12:35:40 +02:00
Maschell
ebf09003d3 [relocator] Re-use the header from the SetupPayload and move some files into /utils 2020-04-29 12:35:13 +02:00