73 Commits

Author SHA1 Message Date
vit9696
c1ef04e47c Fix OcMachoLib compilation 2019-01-17 12:34:26 +03:00
vit9696
caabf0b2ab Continue fixing and refactoring OcMachoLib 2019-01-16 17:46:10 +03:00
vit9696
aca4a620ac Fix sanity of symbol retrieval code 2019-01-16 13:15:22 +03:00
vit9696
69f441b5ec Restore OcMachoLib interfaces for convenience resons 2019-01-15 23:34:01 +03:00
Download-Fritz
28c65c9e9e OcMachoLib: Add forgotten initialization of Context->SymbolTable. 2019-01-15 19:14:10 +01:00
vit9696
a43cb1386e Start cleaning up OcMachoLib 2019-01-15 18:23:29 +03:00
Download-Fritz
793b78d103 OcMachoLib: Revise several function prorotypes and checks as part of security considerations. 2019-01-12 22:57:57 +01:00
Download-Fritz
fbac1c4258 OcMachoLib: Runtime-check whether the next LC is in bounds to allow "!= NULL" loops. 2019-01-05 16:29:48 +01:00
Download-Fritz
e92ab78bfc OcMachoLib: Add forgotten change. 2019-01-05 15:38:28 +01:00
Download-Fritz
dac925cd58 Runtime-check whether the next section is in bounds to allow "!= NULL" loops. 2019-01-05 15:37:46 +01:00
Download-Fritz
dde6882ba3 OcMachoLib: Drop inconvenient CONST qualifiers. 2019-01-05 15:37:14 +01:00
Download-Fritz
6b4d5120b6 OcMachoLib: Do not use CONST qualifier in casts for readability. 2018-11-10 10:52:33 +01:00
Download-Fritz
97718a7599 OcMachoLib: Safety improvements, including overflow checks.
* Check for offset and address overflows
* Properly sanity-check sections
* Fix an issue misusing Section->Alignment
2018-11-07 10:18:19 +01:00
Download-Fritz
97da06f663 OcMachoLib: use UINT32 for FileSize and all offsets. 2018-11-06 09:08:46 +01:00
Download-Fritz
0418143198 OcMachoLib: Revert 634f560 for Segments as it's not a completed type. 2018-11-04 11:09:58 +01:00
Download-Fritz
6388838c9a OcMachoLib: Fix LC boundary verification. 2018-11-04 10:56:43 +01:00
Download-Fritz
634f560be8 OcMachoLib: Verify exact LC size when the exact type is known. 2018-11-04 10:44:09 +01:00
Download-Fritz
524732e0ef OcMachoLib: Use UINT32 variables to refer to UINT32 Mach-O structure data. 2018-11-04 09:14:20 +01:00
Download-Fritz
4241912574 OcMachoLib: Publish updated Context struct to support static allocations. 2018-11-04 09:06:50 +01:00
Download-Fritz
c957f97c30 OcMachoLib: Consume OcGuardLib to verify alignment requirements. 2018-11-04 09:05:49 +01:00
Download-Fritz
4b4e518567 OcMachoLib: Expand internal CONST usage and remove related redundant casts. 2018-11-04 09:02:15 +01:00
Download-Fritz
df54805a92 OcMachoLib: Always return Mach-O memory as CONST. 2018-11-04 08:42:04 +01:00
Download-Fritz
8ddbd9fdd4 OcMachoLib: Introduce MachoGetFileSize() API. 2018-11-04 08:21:17 +01:00
Download-Fritz
3b9ad05f71 OcMachoLib: Generically take VOID * for file data in Context init. 2018-11-04 08:19:27 +01:00
Download-Fritz
9c3eb014c7 OcMachoLib: Fix MachoGetNextSegment64() to return NULL when the LC is too small. 2018-11-03 21:04:19 +01:00
Download-Fritz
46c6c16405 OcMachoLib: Enforce exact UUID LC size. 2018-11-03 20:58:42 +01:00
Download-Fritz
f7ec12d20f OcMachoLib: Do not check for LC sanity post-init. 2018-11-03 19:50:06 +01:00
Download-Fritz
358bd77828 OcMachoLib: Move check for previous retrieval of SYMTAB to the retrieval function. 2018-11-03 19:49:44 +01:00
Download-Fritz
edbfcdaecb OcMachoLib: Reorder MachoInitializeContext() arguments to match OOP. 2018-11-03 19:45:51 +01:00
Download-Fritz
4c77093379 OcMachoLib: Remove redundant cast. 2018-11-03 19:45:10 +01:00
Download-Fritz
2cf8e08118 OcMachoLib: Introduce MachoGetMachHeader64(). 2018-10-21 21:57:35 +02:00
Download-Fritz
92bbf6d606 OcMachoLib: Use incomplete type completed within the library as Context. 2018-10-21 17:19:40 +02:00
Download-Fritz
d6636d80ba OcMachoLib: Return non-CONST pointers. 2018-10-21 15:08:23 +02:00
Download-Fritz
4f58dac778 OcMachoLib: Ensure basic symbol sanity. 2018-10-21 13:49:10 +02:00
Download-Fritz
662ef3d05d OcMachoLib: Add a few missing ASSERTs. 2018-10-21 12:08:17 +02:00
Download-Fritz
1ec1df5e78 OcMachoLib: Consider the LC buffer might be padded when retrieving the next. 2018-10-21 12:03:18 +02:00
Download-Fritz
b74e10e066 OcMachoLib: Drop the "minimal LC size" check.
It is implicitly covered by the checks below and worsens performance of valid binaries in favor of increasing it for invalid ones.
2018-10-21 11:58:21 +02:00
Download-Fritz
a5f7f6bed9 OcMachoLib: Verify the entire LC header is within the binary on Context init. 2018-10-21 11:41:14 +02:00
Download-Fritz
3299b3e158 OcMachoLib: Mark Context as IN OUT non-CONST. 2018-10-21 05:35:21 +02:00
Download-Fritz
2071d6643d OcMachoLib: Retrieve SYMTAB and DYSYMTAB via Context. Do not expose SYMTAB and DYSYMTAB directly. 2018-10-21 05:16:22 +02:00
Download-Fritz
5b67566e6f OcMachoLib: Fix "Mach-O" stylization. 2018-10-20 02:13:15 +02:00
Download-Fritz
53178770a0 OcMachoLib/Header: Introduce more sanity checks. 2018-10-20 02:10:41 +02:00
Download-Fritz
6015bce8d7 OcMachoLib: Update Get*Symtab naming scheme. 2018-10-20 01:32:44 +02:00
Download-Fritz
e54de715d4 OcMachoLib: Adapt to the new Mach-O header. 2018-10-20 01:29:37 +02:00
Download-Fritz
22c2cb9b44 OcMachoLib: Allow header to have more space than needed reserved for LCs. 2018-10-20 00:23:43 +02:00
Download-Fritz
fbc5310bc9 OcMachoLib: Fix address range check. 2018-10-19 23:56:30 +02:00
Download-Fritz
923cbb6bdb OcMachoLib: Drop missed invalid ASSERT. 2018-10-19 23:17:11 +02:00
Download-Fritz
ee9296b25d OcMachoLib: Fix typo in name comparison. 2018-10-19 23:14:39 +02:00
Download-Fritz
2c26827077 OcMachoLib: Make OC_MACHO_CONTEXT struct private. Provide MachoGetContextSize(). 2018-10-19 18:17:12 +02:00
Download-Fritz
0247641371 OcMachoLib: Deprecate GetFirstSegment/Section to simplify the future control flow. 2018-10-19 15:27:11 +02:00