morpheus_persistent/pe/
embedded_reloc_data.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! Hardcoded relocation data
//!
//! UEFI discards .reloc section from memory after applying relocations.
//! This data is the original .reloc section content, embedded in the code
//! so it's always available for unrelocating the image.
//!
//! AUTO-GENERATED by tools/extract-reloc-data.sh
//! Run: ./tools/extract-reloc-data.sh after each build

/// Original .reloc section RVA
pub const RELOC_RVA: u32 = 0x00190000;

/// Original .reloc section size
pub const RELOC_SIZE: u32 = 0x000002b4;

/// Original ImageBase from linker script
pub const ORIGINAL_IMAGE_BASE: u64 = 0x0000004001000000;

/// Hardcoded .reloc section data (692 bytes)
/// Extracted from morpheus-bootloader.efi at file offset 0x00046400
#[allow(dead_code)]
pub const RELOC_DATA: [u8; 692] = [
    0x00, 0x60, 0x03, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xc8, 0xa0, 0xd8, 0xa0, 0x18, 0xa5, 0x58, 0xa5,
    0x90, 0xa5, 0xe0, 0xa5, 0x60, 0xa6, 0x80, 0xa6, 0x90, 0xa6, 0xd8, 0xa6, 0x38, 0xa7, 0x48, 0xa7,
    0x58, 0xa7, 0x68, 0xa7, 0x00, 0xa8, 0x30, 0xa8, 0x58, 0xa8, 0x68, 0xa8, 0x78, 0xa8, 0x88, 0xa8,
    0xd8, 0xa8, 0xe8, 0xa8, 0x10, 0xa9, 0x38, 0xa9, 0x48, 0xa9, 0x58, 0xa9, 0x80, 0xa9, 0xa8, 0xa9,
    0xb8, 0xa9, 0xc8, 0xa9, 0x10, 0xaa, 0x68, 0xaa, 0x18, 0xac, 0x28, 0xac, 0x38, 0xad, 0x48, 0xae,
    0x50, 0xae, 0x98, 0xae, 0x28, 0xaf, 0x98, 0xaf, 0xa8, 0xaf, 0xb8, 0xaf, 0x00, 0x70, 0x03, 0x00,
    0x70, 0x00, 0x00, 0x00, 0xa8, 0xa0, 0x90, 0xa1, 0xe0, 0xa2, 0xf0, 0xa2, 0x00, 0xa3, 0xb8, 0xa4,
    0xe8, 0xa4, 0x10, 0xa5, 0x40, 0xa5, 0x70, 0xa5, 0xa0, 0xa5, 0xd0, 0xa5, 0x00, 0xa6, 0x68, 0xa6,
    0x08, 0xa8, 0x18, 0xa8, 0x78, 0xa8, 0x88, 0xa8, 0xc8, 0xa8, 0xd8, 0xa8, 0x08, 0xa9, 0x30, 0xa9,
    0x40, 0xa9, 0x60, 0xa9, 0x70, 0xa9, 0xa8, 0xa9, 0xb8, 0xa9, 0xc8, 0xa9, 0xd8, 0xa9, 0xe8, 0xaa,
    0x00, 0xab, 0x10, 0xab, 0x48, 0xab, 0x68, 0xab, 0xd0, 0xab, 0xf8, 0xab, 0x08, 0xac, 0x90, 0xac,
    0xa0, 0xac, 0x30, 0xad, 0x58, 0xad, 0x68, 0xad, 0xa0, 0xad, 0xf8, 0xad, 0x08, 0xae, 0x58, 0xae,
    0x68, 0xae, 0xd0, 0xae, 0xe0, 0xae, 0x40, 0xaf, 0x50, 0xaf, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00,
    0x30, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xb0, 0xa0, 0xc0, 0xa0, 0x28, 0xa2, 0x38, 0xa2, 0x60, 0xa2,
    0x70, 0xa2, 0x80, 0xa2, 0xc0, 0xa2, 0xd0, 0xa2, 0x08, 0xa3, 0x18, 0xa3, 0x40, 0xa3, 0x70, 0xa3,
    0xc8, 0xa3, 0xd8, 0xa3, 0xe8, 0xa3, 0xf8, 0xa3, 0xd0, 0xaf, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00,
    0x50, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x50, 0xa0, 0x60, 0xa0, 0x70, 0xa0, 0x58, 0xa1, 0x88, 0xa1,
    0x98, 0xa1, 0x38, 0xa2, 0xa0, 0xa2, 0xd0, 0xa2, 0xe0, 0xa2, 0xb8, 0xa3, 0xe0, 0xa3, 0x18, 0xa4,
    0xb8, 0xa5, 0xc8, 0xa5, 0x88, 0xa6, 0x98, 0xa6, 0xa8, 0xa6, 0x28, 0xa7, 0x60, 0xa7, 0x80, 0xa7,
    0xd0, 0xa7, 0xe0, 0xa7, 0xf0, 0xa7, 0xc0, 0xa8, 0xd0, 0xa8, 0xe8, 0xa8, 0x58, 0xa9, 0x68, 0xa9,
    0xf0, 0xa9, 0x00, 0xaa, 0x10, 0xaa, 0x20, 0xaa, 0x10, 0xab, 0x00, 0x00, 0x00, 0xa0, 0x03, 0x00,
    0x64, 0x00, 0x00, 0x00, 0xb0, 0xa3, 0x88, 0xa5, 0x98, 0xa5, 0x00, 0xa8, 0x08, 0xaa, 0x80, 0xac,
    0x90, 0xac, 0xa0, 0xac, 0xb0, 0xac, 0xd0, 0xac, 0xe0, 0xac, 0x10, 0xad, 0x20, 0xad, 0x30, 0xad,
    0x40, 0xad, 0x60, 0xad, 0x70, 0xad, 0xa0, 0xad, 0xb0, 0xad, 0xc0, 0xad, 0xd0, 0xad, 0xe0, 0xad,
    0xf0, 0xad, 0x00, 0xae, 0x30, 0xae, 0x40, 0xae, 0x50, 0xae, 0x60, 0xae, 0x80, 0xae, 0x90, 0xae,
    0xc0, 0xae, 0xd0, 0xae, 0xe0, 0xae, 0xf0, 0xae, 0x00, 0xaf, 0x10, 0xaf, 0x20, 0xaf, 0x50, 0xaf,
    0x60, 0xaf, 0x70, 0xaf, 0x80, 0xaf, 0xa0, 0xaf, 0xb0, 0xaf, 0xe0, 0xaf, 0xf0, 0xaf, 0x00, 0x00,
    0x00, 0xb0, 0x03, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0xa0, 0x30, 0xa0, 0x40, 0xa0,
    0x70, 0xa0, 0x80, 0xa0, 0x90, 0xa0, 0xa0, 0xa0, 0xb0, 0xa0, 0xc0, 0xa0, 0xd0, 0xa0, 0x00, 0xa1,
    0x10, 0xa1, 0x20, 0xa1, 0x30, 0xa1, 0x50, 0xa1, 0x60, 0xa1, 0x90, 0xa1, 0xa0, 0xa1, 0xb0, 0xa1,
    0xc0, 0xa1, 0xe0, 0xa1, 0xf0, 0xa1, 0x20, 0xa2, 0x30, 0xa2, 0x40, 0xa2, 0x50, 0xa2, 0x60, 0xa2,
    0x70, 0xa2, 0x80, 0xa2, 0xb0, 0xa2, 0xc0, 0xa2, 0xd0, 0xa2, 0xe0, 0xa2, 0x00, 0xa3, 0x10, 0xa3,
    0x40, 0xa3, 0x50, 0xa3, 0x60, 0xa3, 0x70, 0xa3, 0x90, 0xa3, 0xa0, 0xa3, 0xd0, 0xa3, 0xe0, 0xa3,
    0xf0, 0xa3, 0x00, 0xa4, 0x20, 0xa4, 0x30, 0xa4, 0x60, 0xa4, 0x70, 0xa4, 0x80, 0xa4, 0x90, 0xa4,
    0xb0, 0xa4, 0xc0, 0xa4, 0xb0, 0xa8, 0xc0, 0xa8, 0xd0, 0xa8, 0xe0, 0xa8, 0xf0, 0xa8, 0xf8, 0xa9,
    0x08, 0xaa, 0x18, 0xaa, 0x90, 0xaa, 0xa0, 0xaa, 0x58, 0xab, 0x68, 0xab, 0x78, 0xab, 0x70, 0xac,
    0x80, 0xac, 0x90, 0xac, 0x20, 0xad, 0x30, 0xad, 0x48, 0xae, 0x70, 0xae, 0x10, 0xaf, 0x20, 0xaf,
    0x30, 0xaf, 0x40, 0xaf, 0x00, 0xc0, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x50, 0xa3, 0x68, 0xa3,
    0x70, 0xa3, 0x78, 0xa3, 0xd0, 0xa8, 0xe0, 0xa8, 0xf0, 0xa8, 0x00, 0xa9, 0x10, 0xa9, 0x20, 0xa9,
    0x40, 0xae, 0x58, 0xae, 0x60, 0xae, 0x68, 0xae, 0x00, 0xd0, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00,
    0x50, 0xa7, 0x58, 0xa7, 0x60, 0xa7, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00,
    0xe0, 0xa2, 0x00, 0x00, 0x00, 0x60, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x38, 0xa2, 0xf0, 0xa6,
    0x18, 0xa7, 0x40, 0xa7, 0x68, 0xa7, 0x90, 0xa7, 0x00, 0xf0, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00,
    0x20, 0xa0, 0x00, 0x00,
];