23 Commits

Author SHA1 Message Date
Marvin Häuser
d916dd65b8 OcMachoLib: Treat container Mach-O as reference file
As of macOS 13 Developer Beta 3, the Kernel Collection's inner kernel
references a segment that precedes itself. The current model is that
a Kernel Collection is a container format and the included files are
(mostly) separate. Hence, this was treated as an out-of-bounds issue.
Kernel Collections apparently are rather an unconventional composite
format, where the sub-files are still part of the whole. Redesign
OcMachoLib to treat the Kernel Collection as the reference file.
Patches still use only the inner file, while parsing considers the
whole file.
2022-07-07 17:52:25 +02:00
PMheart
228f8ca1fb Codestyle: Apply codestyle changes with Uncrustify 2022-04-25 14:51:15 +02:00
Marvin Häuser
3db6e1b996 Fix includes to work nicer with IDEs 2021-11-23 10:55:26 +01:00
Download-Fritz
72649849dd OcAppleKernelLib: Rebuild KC when no kexts are injected
Fixes an issue where __PRELINK_INFO (first segment) is relocated and thus renders relocations invalid (relative to the first segment's VA)
2020-10-25 14:15:01 +01:00
Download-Fritz
6ffd979500 OcAppleKernelLib: Fix invalid kremlin section 2020-10-25 14:15:01 +01:00
John Davis
676ef93d9d
OcAppleKernelLib: Add 32-bit prelinking support (#122) 2020-09-29 12:41:37 +03:00
John Davis
74062d4e0f
OcAppleKernelLib: Add 32-bit Mach-O and patching support (#118) 2020-09-13 22:57:10 +03:00
vit9696
6df942413c OcAppleKernelLib: Fix issues in 11.0 kext injection and patching
- KcGetKextSize may report far larger kext size due to using segment
  address instead of kext address as a base.
- KC Mach-O header rebuild may make Context->LinkEditSegment point
  to invalid memory breaking KcGetKextSize in the kext patcher.
2020-09-04 15:28:08 +03:00
vit9696
dc923bc895 OcAppleKernelLib: Partially fix kext blocking for 11.0 2020-08-22 09:54:29 +03:00
vit9696
32bf419136 OcAppleKernelLib: Fix memory corruption with many kexts in 11.0 2020-07-18 04:40:37 +03:00
Download-Fritz
f1e8766af9 Utilities/KextInject: Determine Info/EXE reserve sizes 2020-07-17 23:01:41 +02:00
vit9696
748b0ea20e OcAppleKernelLib: Fix incorrect assertion on zero relocations 2020-07-07 12:13:57 +03:00
vit9696
d8ace47606 OcAppleKernelLib: Fix patching KC vtables with imports from kexts 2020-07-05 23:18:10 +03:00
vit9696
9e166de9ac Utilities: Drop separate KC utility and unify with KextInject 2020-07-05 20:57:13 +03:00
vit9696
27053778bc OcAppleKernelLib: Fix relocation support for EfiBoot in KC mode 2020-07-05 18:54:38 +03:00
vit9696
ef8fdce8cd OcAppleKernelLib: Fix linking against injected kexts 2020-07-05 04:23:43 +03:00
vit9696
1ef945991a OcAppleKernelLib: Fix __LINKEDIT handling in KC mode 2020-07-04 19:04:06 +03:00
Download-Fritz
07b697d28d OcMachoLib: Support KC Mach-Os 2020-07-04 15:28:22 +02:00
vit9696
0271bacc27 OcAppleKernelLib: More progress with 11.0, many thx to @Download-Fritz 2020-07-04 01:58:04 +03:00
vit9696
44081eb08b OcAppleKernelLib: Make more progress with KC context init 2020-06-29 00:27:35 +03:00
Download-Fritz
95421ebbd7 OcAppleKernelLib/Kc: Import generation of DYLD fixups for KEXTs 2020-06-28 17:52:25 +02:00
Download-Fritz
9f7634a790 OcAppleKernelLib/Kc: Import DYLD fixup chain converion 2020-06-28 17:08:35 +02:00
vit9696
ebdc3fa056 OcAppleKernelLib: Start building new Mach-O functions 2020-06-27 20:55:16 +03:00