This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
projects:3dprinting:flashforge_creator_3_pro_fan_fix [2025/05/02 22:07] – [Examining the main application creator3-arm] admin | projects:3dprinting:flashforge_creator_3_pro_fan_fix [2025/05/02 22:57] (current) – [Examining the main application creator3-arm] admin | ||
---|---|---|---|
Line 274: | Line 274: | ||
* PHDR program header, which contains the program header table and its concerning metadata. | * PHDR program header, which contains the program header table and its concerning metadata. | ||
* INTERP program header, which tells the kernel that the file depends on an external loader file (/ | * INTERP program header, which tells the kernel that the file depends on an external loader file (/ | ||
- | * LOAD program headers, tell the kernel and the loader how to get the program' | + | * LOAD program headers, tell the kernel and the loader how to get the program' |
- | * DYNAMIC program header, which is used by the loader to create | + | * DYNAMIC program header, which is used by the loader to create links to their shared library dependencies. It is also used by the loader to fix relocations for program code and pointers, if the program resides at a different place in memory than it expects based on its virtual address. |
* NOTE program header potentially contains vendor-specific metadata about the program itself, describing a table of key-value pairs where each entry has a string name mapped to a sequence of bytes that describe the entry. | * NOTE program header potentially contains vendor-specific metadata about the program itself, describing a table of key-value pairs where each entry has a string name mapped to a sequence of bytes that describe the entry. | ||
* GNU_STACK program header defining memory regions where the stack is marked with a no-execute flag. With this flag code cannot be executed if it is on the stack. | * GNU_STACK program header defining memory regions where the stack is marked with a no-execute flag. With this flag code cannot be executed if it is on the stack. | ||
Line 285: | Line 285: | ||
\\ | \\ | ||
which outputs the following: | which outputs the following: | ||
- | |There are 29 section headers, starting at offset 0x332934: | + | <code bash> |
- | ^ Section Headers: | + | There are 29 section headers, starting at offset 0x332934: |
- | ^ [Nr] | + | Section Headers: |
- | | [ 0] | + | [Nr] Name Type Addr |
- | | [ 1] | + | [ 0] |
- | | ... | ... | ... | ... | ... | ... | .. | .. | . | . | . | | + | [ 1] .interp |
- | | [ 5] | + | [ 2] .note.ABI-tag |
- | | [ 6] | + | [ 3] .note.gnu.build-i NOTE 00010168 000168 000024 00 |
- | | ... | ... | ... | ... | ... | + | [ 4] .hash |
- | | [ 9] | + | [ 5] .dynsym |
- | | [10] | + | [ 6] .dynstr |
- | | ... | ... | ... | ... | ... | ... | .. | .. | . | . | . | | + | [ 7] .gnu.version |
- | | [13] | + | [ 8] .gnu.version_r |
- | | [14] | + | [ 9] .rel.dyn |
- | | [15] | + | [10] .rel.plt |
- | | ... | ... | ... | ... | + | |
- | | [24] | + | [12] .plt PROGBITS |
- | | [25] | + | [13] .text |
- | | ... | ... | ... | + | [14] .fini |
- | | [28] | + | [15] .rodata |
- | | Key to Flags:\\ W (write), A (alloc), X (execute) | + | |
+ | [17] .ARM.exidx ARM_EXIDX | ||
+ | [18] .eh_frame | ||
+ | [19] .init_array | ||
+ | [20] .fini_array | ||
+ | [21] .jcr PROGBITS | ||
+ | [22] .dynamic | ||
+ | [23] .got PROGBITS | ||
+ | [24] .data | ||
+ | [25] .bss | ||
+ | | ||
+ | [27] .ARM.attributes | ||
+ | [28] .shstrtab | ||
+ | Key to Flags: | ||
+ | | ||
+ | L (link order), O (extra OS processing required), G (group), T (TLS), | ||
+ | C (compressed), | ||
+ | y (purecode), p (processor specific) | ||
+ | </ | ||
For clarity some sections have been left out. Most of the time the following sections are interesting for reverse engineering: | For clarity some sections have been left out. Most of the time the following sections are interesting for reverse engineering: |