LIEF: Library to Instrument Executable Formats
Version 0.17.4
Toggle main menu visibility
Loading...
Searching...
No Matches
install
linux
x86_64
sdk
static
include
LIEF
MachO
DyldChainedFormat.hpp
Go to the documentation of this file.
1
/* Copyright 2024 - 2025 R. Thomas
2
*
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
#ifndef LIEF_MACHO_DYLD_CHAINED_FMT_H
16
#define LIEF_MACHO_DYLD_CHAINED_FMT_H
17
#include "
LIEF/visibility.h
"
18
namespace
LIEF
{
19
namespace
MachO
{
20
21
// values for dyld_chained_fixups_header.imports_format
22
enum class
DYLD_CHAINED_FORMAT
{
23
IMPORT
= 1,
// Originally: DYLD_CHAINED_IMPORT
24
IMPORT_ADDEND
= 2,
// Originally: DYLD_CHAINED_IMPORT_ADDEND
25
IMPORT_ADDEND64
= 3,
// Originally: DYLD_CHAINED_IMPORT_ADDEND64
26
};
27
28
// values for dyld_chained_starts_in_segment.pointer_format
29
enum class
DYLD_CHAINED_PTR_FORMAT
{
30
NONE
= 0,
31
PTR_ARM64E
= 1,
// stride 8, unauth target is vmaddr
32
PTR_64
= 2,
// target is vmaddr
33
PTR_32
= 3,
34
PTR_32_CACHE
= 4,
35
PTR_32_FIRMWARE
= 5,
36
PTR_64_OFFSET
= 6,
// target is vm offset
37
PTR_ARM64E_OFFSET
= 7,
// old name
38
PTR_ARM64E_KERNEL
= 7,
// stride 4, unauth target is vm offset
39
PTR_64_KERNEL_CACHE
= 8,
40
PTR_ARM64E_USERLAND
= 9,
// stride 8, unauth target is vm offset
41
PTR_ARM64E_FIRMWARE
= 10,
// stride 4, unauth target is vmaddr
42
PTR_X86_64_KERNEL_CACHE
= 11,
// stride 1, x86_64 kernel caches
43
PTR_ARM64E_USERLAND24
= 12,
// stride 8, unauth target is vm offset, 24-bit bind
44
PTR_ARM64E_SHARED_CACHE
= 13,
// stride 8, regular/auth targets both vm offsets. Only A keys supported
45
PTR_ARM64E_SEGMENTED
= 14,
// stride 4, rebase offsets use segIndex and segOffset
46
};
47
48
LIEF_API
const
char
*
to_string
(
DYLD_CHAINED_FORMAT
fmt);
49
LIEF_API
const
char
*
to_string
(
DYLD_CHAINED_PTR_FORMAT
ptr_fmt);
50
51
}
52
}
53
#endif
LIEF::MachO
Namespace related to the LIEF's Mach-O module.
Definition
Abstract/Header.hpp:36
LIEF::MachO::DYLD_CHAINED_FORMAT
DYLD_CHAINED_FORMAT
Definition
DyldChainedFormat.hpp:22
LIEF::MachO::DYLD_CHAINED_FORMAT::IMPORT_ADDEND64
@ IMPORT_ADDEND64
Definition
DyldChainedFormat.hpp:25
LIEF::MachO::DYLD_CHAINED_FORMAT::IMPORT_ADDEND
@ IMPORT_ADDEND
Definition
DyldChainedFormat.hpp:24
LIEF::MachO::DYLD_CHAINED_FORMAT::IMPORT
@ IMPORT
Definition
DyldChainedFormat.hpp:23
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT
DYLD_CHAINED_PTR_FORMAT
Definition
DyldChainedFormat.hpp:29
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_32
@ PTR_32
Definition
DyldChainedFormat.hpp:33
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE
@ PTR_32_FIRMWARE
Definition
DyldChainedFormat.hpp:35
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE
@ PTR_ARM64E_SHARED_CACHE
Definition
DyldChainedFormat.hpp:44
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24
@ PTR_ARM64E_USERLAND24
Definition
DyldChainedFormat.hpp:43
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE
@ PTR_32_CACHE
Definition
DyldChainedFormat.hpp:34
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE
@ PTR_64_KERNEL_CACHE
Definition
DyldChainedFormat.hpp:39
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL
@ PTR_ARM64E_KERNEL
Definition
DyldChainedFormat.hpp:38
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE
@ PTR_ARM64E_FIRMWARE
Definition
DyldChainedFormat.hpp:41
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE
@ PTR_X86_64_KERNEL_CACHE
Definition
DyldChainedFormat.hpp:42
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_OFFSET
@ PTR_ARM64E_OFFSET
Definition
DyldChainedFormat.hpp:37
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::NONE
@ NONE
Definition
DyldChainedFormat.hpp:30
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
@ PTR_ARM64E
Definition
DyldChainedFormat.hpp:31
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_64
@ PTR_64
Definition
DyldChainedFormat.hpp:32
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET
@ PTR_64_OFFSET
Definition
DyldChainedFormat.hpp:36
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED
@ PTR_ARM64E_SEGMENTED
Definition
DyldChainedFormat.hpp:45
LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND
@ PTR_ARM64E_USERLAND
Definition
DyldChainedFormat.hpp:40
LIEF::MachO::to_string
const char * to_string(BuildToolVersion::TOOLS tool)
LIEF
LIEF namespace.
Definition
Abstract/Binary.hpp:40
visibility.h
LIEF_API
#define LIEF_API
Definition
visibility.h:41
Generated by
1.17.0