183 Commits

Author SHA1 Message Date
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
006cb222e4 OcMachoLib: Check symbol value sanity in MachoGetMetaclassSymbolFromSmcpSymbol64(). 2018-11-04 10:38:57 +01:00
Download-Fritz
ff6a9b83eb OcMachoLib: Ensure string index sanity when retrieving an indirect symbol's name. 2018-11-04 10:30:33 +01:00
Download-Fritz
649679570a OcMachoLib: Use MachoGetSymbolName64() internally. 2018-11-04 09:55:31 +01:00
Download-Fritz
b14efc6136 OcMachoLib: Catch potential Index overflow when iterating over Relocations. 2018-11-04 09:14:44 +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
987172c4c0 OcMachoLib: Prefer Index over Walkers when available. 2018-11-03 19:48:12 +01:00
Download-Fritz
bb0813001d OcMachoLib: Remove redundant symbol sanity check. 2018-11-03 19:47:11 +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
c3d4298326 OcMachoLib: Introduce symbol name retrieval functions. 2018-10-21 21:54:31 +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
8dc4c32544 OcMachoLib: Correctly recognize symbol as local when there are no undefined symbols. 2018-10-21 15:12:54 +02:00
Download-Fritz
563e61ebcf OcMachoLib: Import MachoIsSymbolValueSane64(). 2018-10-21 15:10:56 +02:00
Download-Fritz
d6636d80ba OcMachoLib: Return non-CONST pointers. 2018-10-21 15:08:23 +02:00
Download-Fritz
59c2692fa2 OcMachoLib: Clearify assumptions in InternalGetExternalRelocationByOffset(). 2018-10-21 15:03:16 +02:00
Download-Fritz
aa68a1e6ee OcMachoLib: Fix lack of SYMTABs retrieval when locating a symbol by its index. 2018-10-21 14:59:32 +02:00
Download-Fritz
4265923609 OcMachoLib: No longer expose GetExternalRelocationByOffset(). 2018-10-21 14:55:01 +02:00
Download-Fritz
bcdddbd9ae OcMachoLib: Update MachoGetMetaclassSymbolFromSmcpSymbol64() to use the new public APIs. Removes MachoGetCxxSymbolByExternRelocation64(). 2018-10-21 14:53:18 +02:00
Download-Fritz
48ea3b19f1 OcMachoLib: Get C++ symbols via relocations only from the extern ones. 2018-10-21 14:39:04 +02:00
Download-Fritz
38a311d72d OcMachoLib: Introduce MachoGetSymbolByExternRelocationOffset64(). 2018-10-21 14:19:25 +02:00
Download-Fritz
bb4650c47a OcMachoLib: Introduce MachoGetSymbolByIndex64(). 2018-10-21 14:00:37 +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
b932e6774d OcMachoLib: Fix C++ string manipulation code. 2018-10-21 05:48:59 +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
339b36686b OcMachoLib: Turn GetSymbolByName into a private API. Different subsections shall be accessed by dedicated APIs. 2018-10-20 14:51:21 +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
b38e572c80 OcMachoLib: Remove redundant symbol casts. 2018-10-20 01:33:04 +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