OpenCore
1.0.4
OpenCore Bootloader
|
#include "MachoX.h"
Go to the source code of this file.
Functions | |
STATIC BOOLEAN | InternalSectionIsSane (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SECTION_X *Section, IN CONST MACH_SEGMENT_COMMAND_X *Segment) |
STATIC VOID | InternalStripLoadCommands (IN OUT MACH_HEADER_X *MachHeader) |
UINT32 MACH_X | InternalMachoGetVmSize (IN OUT OC_MACHO_CONTEXT *Context) |
MACH_LOAD_COMMAND *MACH_X | InternalMachoGetNextCommand (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_LOAD_COMMAND_TYPE LoadCommandType, IN CONST MACH_LOAD_COMMAND *LoadCommand OPTIONAL) |
VOID *MACH_X | InternalMachoGetFilePointerByAddress (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_UINT_X Address, OUT UINT32 *MaxSize OPTIONAL) |
UINT32 MACH_X | InternalMachoExpandImage (IN OC_MACHO_CONTEXT *Context, IN BOOLEAN CalculateSizeOnly, OUT UINT8 *Destination, IN UINT32 DestinationSize, IN BOOLEAN Strip, OUT UINT64 *FileOffset OPTIONAL) |
BOOLEAN MACH_X | InternalMachoMergeSegments (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *Prefix) |
BOOLEAN MACH_X | MachoInitializeContext (OUT OC_MACHO_CONTEXT *Context, IN VOID *FileData, IN UINT32 FileSize, IN UINT32 HeaderOffset, IN UINT32 InnerSize) |
MACH_HEADER_X *MACH_X | MachoGetMachHeader (IN OUT OC_MACHO_CONTEXT *Context) |
MACH_UINT_X MACH_X | InternalMachoGetLastAddress (IN OUT OC_MACHO_CONTEXT *Context) |
MACH_SEGMENT_COMMAND_X *MACH_X | MachoGetSegmentByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName) |
MACH_SECTION_X *MACH_X | MachoGetSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_X *Segment, IN CONST CHAR8 *SectionName) |
MACH_SECTION_X *MACH_X | MachoGetSegmentSectionByName (IN OUT OC_MACHO_CONTEXT *Context, IN CONST CHAR8 *SegmentName, IN CONST CHAR8 *SectionName) |
MACH_SEGMENT_COMMAND_X *MACH_X | MachoGetNextSegment (IN OUT OC_MACHO_CONTEXT *Context, IN CONST MACH_SEGMENT_COMMAND_X *Segment OPTIONAL) |
MACH_SECTION_X *MACH_X | MachoGetNextSection (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_SEGMENT_COMMAND_X *Segment, IN MACH_SECTION_X *Section OPTIONAL) |
MACH_SECTION_X *MACH_X | MachoGetSectionByIndex (IN OUT OC_MACHO_CONTEXT *Context, IN UINT32 Index) |
MACH_SECTION_X *MACH_X | MachoGetSectionByAddress (IN OUT OC_MACHO_CONTEXT *Context, IN MACH_UINT_X Address) |
UINT32 MACH_X | MachoGetSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_X **SymbolTable, OUT CONST CHAR8 **StringTable OPTIONAL, OUT CONST MACH_NLIST_X **LocalSymbols OPTIONAL, OUT UINT32 *NumLocalSymbols OPTIONAL, OUT CONST MACH_NLIST_X **ExternalSymbols OPTIONAL, OUT UINT32 *NumExternalSymbols OPTIONAL, OUT CONST MACH_NLIST_X **UndefinedSymbols OPTIONAL, OUT UINT32 *NumUndefinedSymbols OPTIONAL) |
UINT32 MACH_X | MachoGetIndirectSymbolTable (IN OUT OC_MACHO_CONTEXT *Context, OUT CONST MACH_NLIST_X **SymbolTable) |
UINT32 MACH_X InternalMachoExpandImage | ( | IN OC_MACHO_CONTEXT * | Context, |
IN BOOLEAN | CalculateSizeOnly, | ||
OUT UINT8 * | Destination, | ||
IN UINT32 | DestinationSize, | ||
IN BOOLEAN | Strip, | ||
OUT UINT64 *FileOffset | OPTIONAL ) |
VOID *MACH_X InternalMachoGetFilePointerByAddress | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN MACH_UINT_X | Address, | ||
OUT UINT32 *MaxSize | OPTIONAL ) |
MACH_UINT_X MACH_X InternalMachoGetLastAddress | ( | IN OUT OC_MACHO_CONTEXT * | Context | ) |
MACH_LOAD_COMMAND *MACH_X InternalMachoGetNextCommand | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN MACH_LOAD_COMMAND_TYPE | LoadCommandType, | ||
IN CONST MACH_LOAD_COMMAND *LoadCommand | OPTIONAL ) |
UINT32 MACH_X InternalMachoGetVmSize | ( | IN OUT OC_MACHO_CONTEXT * | Context | ) |
BOOLEAN MACH_X InternalMachoMergeSegments | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN CONST CHAR8 * | Prefix ) |
STATIC BOOLEAN InternalSectionIsSane | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN CONST MACH_SECTION_X * | Section, | ||
IN CONST MACH_SEGMENT_COMMAND_X * | Segment ) |
Provides services for Mach-O headers.
Copyright (C) 2016 - 2018, Download-Fritz. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Returns whether Section is sane.
[in,out] | Context | Context of the Mach-O. |
[in] | Section | Section to verify. |
[in] | Segment | Segment the section is part of. |
STATIC VOID InternalStripLoadCommands | ( | IN OUT MACH_HEADER_X * | MachHeader | ) |
Strip superfluous Load Commands from the Mach-O header. This includes the Code Signature Load Command which must be removed for the binary has been modified by the prelinking routines.
[in,out] | MachHeader | Mach-O header to strip the Load Commands from. |
UINT32 MACH_X MachoGetIndirectSymbolTable | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
OUT CONST MACH_NLIST_X ** | SymbolTable ) |
MACH_HEADER_X *MACH_X MachoGetMachHeader | ( | IN OUT OC_MACHO_CONTEXT * | Context | ) |
MACH_SECTION_X *MACH_X MachoGetNextSection | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN MACH_SEGMENT_COMMAND_X * | Segment, | ||
IN MACH_SECTION_X *Section | OPTIONAL ) |
MACH_SEGMENT_COMMAND_X *MACH_X MachoGetNextSegment | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN CONST MACH_SEGMENT_COMMAND_X *Segment | OPTIONAL ) |
MACH_SECTION_X *MACH_X MachoGetSectionByAddress | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN MACH_UINT_X | Address ) |
MACH_SECTION_X *MACH_X MachoGetSectionByIndex | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN UINT32 | Index ) |
MACH_SECTION_X *MACH_X MachoGetSectionByName | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN MACH_SEGMENT_COMMAND_X * | Segment, | ||
IN CONST CHAR8 * | SectionName ) |
MACH_SEGMENT_COMMAND_X *MACH_X MachoGetSegmentByName | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN CONST CHAR8 * | SegmentName ) |
MACH_SECTION_X *MACH_X MachoGetSegmentSectionByName | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
IN CONST CHAR8 * | SegmentName, | ||
IN CONST CHAR8 * | SectionName ) |
Retrieves a section within a segment by the name of SegmentName.
[in,out] | Context | Context of the Mach-O. |
[in] | SegmentName | The name of the segment to search in. |
[in] | SectionName | The name of the section to search for. |
NULL | NULL is returned on failure. |
UINT32 MACH_X MachoGetSymbolTable | ( | IN OUT OC_MACHO_CONTEXT * | Context, |
OUT CONST MACH_NLIST_X ** | SymbolTable, | ||
OUT CONST CHAR8 **StringTable | OPTIONAL, | ||
OUT CONST MACH_NLIST_X **LocalSymbols | OPTIONAL, | ||
OUT UINT32 *NumLocalSymbols | OPTIONAL, | ||
OUT CONST MACH_NLIST_X **ExternalSymbols | OPTIONAL, | ||
OUT UINT32 *NumExternalSymbols | OPTIONAL, | ||
OUT CONST MACH_NLIST_X **UndefinedSymbols | OPTIONAL, | ||
OUT UINT32 *NumUndefinedSymbols | OPTIONAL ) |
BOOLEAN MACH_X MachoInitializeContext | ( | OUT OC_MACHO_CONTEXT * | Context, |
IN VOID * | FileData, | ||
IN UINT32 | FileSize, | ||
IN UINT32 | HeaderOffset, | ||
IN UINT32 | InnerSize ) |