2227 Commits

Author SHA1 Message Date
Download-Fritz
9884b87516 OcAppleKernelLib: Build patched VTables during prelinking. 2019-03-25 19:11:22 +01:00
Download-Fritz
ad38c49b66 OcAppleKernelLib: Ignore missing VTable resolution symbols during iteration. 2019-03-25 19:11:22 +01:00
Download-Fritz
a455f1ebd3 OcAppleKernelLib: Store the Name pointer instead of StringIndex for prelinked symbols. 2019-03-25 19:11:22 +01:00
vit9696
0badcb3cb4 OcAppleKernelLib: Cleanup kext patching code 2019-03-25 20:09:55 +03:00
vit9696
4d9d4bbd1a OcAppleKernelLib: Fix number to string conversion 2019-03-25 19:39:32 +03:00
Download-Fritz
53c59b3723 OcAppleKernelLib: Prepare new VTable patching concept.
No functional changes are intended.
2019-03-25 16:03:39 +01:00
Download-Fritz
ac47a671a0 OcAppleKernelLib: Rework IntoToHex implementation. 2019-03-25 14:44:10 +01:00
Download-Fritz
f534cf5874 OcAppleKernelLib: Fix VTable bounds checks.
* Only iterate Parent VTables within its bounds.
* Verify Child VTable size early as due to the parent's bounds, the next iteration step might not be reached.
* Do not verify MaxSize on retrieval when the VTableData is passed to a VTable function that checks it on its own.
2019-03-25 07:34:04 +01:00
vit9696
2c84d36d84 OcAppleKernelLib: Fix inaccurate bounds checking in Mach-O expansion 2019-03-25 01:38:14 +03:00
Download-Fritz
3b5b866144 OcMachoLib: Consider indirect Symbol Table might be separate from Symbol Table. 2019-03-24 18:32:40 +01:00
vit9696
bc0af1edee OcAppleKernelLib: Optimize hot path on vtable lookup 2019-03-24 17:32:58 +03:00
Download-Fritz
3a1cb95a6c OcAppleKernelLib: Join the VTable patching functions. 2019-03-24 13:53:05 +01:00
Download-Fritz
14bbce27ca OcAppleKernelLib: Skip previously patched VTables. 2019-03-24 13:47:23 +01:00
Download-Fritz
2d3d2997b5 OcAppleKernelLib: Fix SMCP storage. 2019-03-24 13:43:32 +01:00
Download-Fritz
896610d256 OcAppleKernelLib: Rework dependency symbol location. 2019-03-24 13:17:59 +01:00
Download-Fritz
f760c0ca74 OcMachoLib and OcAppleKernelLib: Silence warnings. 2019-03-24 13:17:29 +01:00
vit9696
4d94e639ca OcAppleKernelLib: Check symbol range during vtable parsing 2019-03-24 15:11:24 +03:00
Download-Fritz
ac9f3284c4 OcAppleKernelLib: Security updates.
* Check Symbol Tabel retrieval success.
* Check whether the data to retrieve from __LINKEDIT fits the segment.
* Don't assume undefined symbol presence.
2019-03-24 11:13:47 +01:00
vit9696
2a72e67ac0 Move command stripping to Mach-O lib 2019-03-24 11:52:10 +03:00
Download-Fritz
f445880f41 OcMiscLib: Add missing dependency to OcStringLib. 2019-03-24 09:47:31 +01:00
vit9696
18e2801759 Fix misleading assertions 2019-03-24 02:55:31 +03:00
vit9696
e169a7aa7e Ensure 1:1 disk:vm mach-o matching requirement during kext inject 2019-03-24 01:50:57 +03:00
Download-Fritz
8454cdd574 OcAppleKernelLib: Retrieve Relocation target via GetPointerByAddress API. 2019-03-23 21:03:54 +01:00
Download-Fritz
dce8966c9e OcMachoLib: Remove superfluous 32-bit limit check. 2019-03-23 20:27:27 +01:00
Download-Fritz
25616b2e21 OcMachoLib: Check Section bounds against Segment. 2019-03-23 20:26:22 +01:00
Download-Fritz
6bc824ff38 OcAppleKernelLib: Zero __LINKEDIT tail and LinkBuffer. 2019-03-23 17:59:26 +01:00
Download-Fritz
660cc9dc7f OcAppleKernelLib: Remove already performed alignment check. 2019-03-23 17:39:21 +01:00
Download-Fritz
a9c1f22db3 OcMachoLib: Optionally return MaxSize parameter for GetFileOffset.
OcAppleKernelLib: Adapt calls for security.
2019-03-23 17:36:40 +01:00
Download-Fritz
70278f9ef8 OcMachoLib and OcAppleKernelLib: Remove superfluous symbol range checks. 2019-03-23 17:35:27 +01:00
Download-Fritz
0769d63936 OcAppleKernelLib: Fix the upper boundary from last commit. 2019-03-23 16:10:04 +01:00
Download-Fritz
fccd02d540 OcAppleKernelLib: Verifiy Relocation target is in bounds before accessing. 2019-03-23 16:07:30 +01:00
vit9696
73a2be7637 Recover unnecessary command stripping 2019-03-23 18:03:07 +03:00
vit9696
d8d3e75896 Fixed invalid vm kext size rounding 2019-03-23 17:50:46 +03:00
Download-Fritz
150e971871 OcAppleKernelLib: Fix variable overshadowing bug. 2019-03-23 15:38:47 +01:00
vit9696
72b4e55786 Fix invalid Mach-O command handling during kext injection 2019-03-23 17:17:33 +03:00
vit9696
f9d5c1c4fd Implement test kext reading from command line
Also remove legacy OcMachoPrelinkLib.
2019-03-23 16:15:30 +03:00
vit9696
fc6fbed67c Fix symbol retrieval logic in injected kext, still needs dysymtab correction 2019-03-23 15:05:13 +03:00
vit9696
43ecade607 Try more harsh kernel injection testing 2019-03-23 15:05:13 +03:00
Download-Fritz
405c4af0be OcAppleKernelLib: Adapt to the new MachoLib changes. 2019-03-23 15:05:13 +03:00
Download-Fritz
13116df3e2 OcAppleKernelLib: Fix relocation location by VTable offset. 2019-03-23 15:05:13 +03:00
Download-Fritz
16028f123f OcAppleKernelLib: Scan own symbol table for C++ symbols too. 2019-03-23 15:05:13 +03:00
vit9696
e063fb9578 Fix kext size calculation during kernel injection 2019-03-23 15:05:13 +03:00
vit9696
c7ca70a9cc Implement XmlNodePrepend 2019-03-23 15:05:13 +03:00
vit9696
fecc396a46 Do not set kmod header size, as it is incompatible with __TEXT permissions 2019-03-23 15:05:13 +03:00
vit9696
e32a7f9835 Remove debug info and hacks 2019-03-23 15:05:13 +03:00
vit9696
8760a7a158 Fix address allocation from source to target during kext injection 2019-03-23 15:05:13 +03:00
Download-Fritz
d98cdf28ff OcAppleKernelLib: Add segment VM protection adaption. 2019-03-23 15:05:12 +03:00
Download-Fritz
854b58d56a OcAppleKernelLib: Free LinkBuffer on Context freeing. 2019-03-23 15:05:12 +03:00
Download-Fritz
96f3bff46c OcAppleKernelLib: Add symbol value sanity checks. 2019-03-23 15:05:12 +03:00
Download-Fritz
7f478c0051 OcAppleKernelLib: Update kmod_info after prelinking. 2019-03-23 15:05:12 +03:00