Linux Stack Smashing Flashcards
this two program traces library or system calls performed by the target binary
ltrace / strace
displays an information about an ELF file
readelf
What does ELF stands for in linux
Executable and Linkable Format
This one is used to display informatin about object files. Can also be used for disassembling Linux executables
objdump
extracts readable strings from a binary.
strings
The ELF file is consist of this two
ELF header and ELF data
An ELF header contains important information for the OS on how to handle the file. This is one of the most important parts of the header.
The header starts with what hex sequence?
7f 45 4c 46
In ELF header, this defines the target architecture
Class
In ELF header, this refers to the type of endianness (litte or big)
Data
This are the products of memory corruptions. Which then can be fed to gdb in order to examine crashed programs more accurately
Core Dumps
This is responsible for taking the name of functions and linking them to their actual locations in memory.
Linkers
During a call to a function, this is responsible for locating its memory address within a system library and then writing it to the process memory of the executable, so that the function can be accessed at that address.
Linkers
The task of this is to load programs from storage into memory.
loader
This means moving the module to another place in memory to avoid address collisions.
Relocation
The ELF file contains this section. Whenever the desired loading address is unavailable, this section is responsible for patching that program with new address.
.reloc
In order to be able to do patching the program with new addresses. This is used to describe the address of the program functions.
relative addressing.
This describes a function address by the offset from the loading base address and not by the full address.
Relative addressing
For example, if the relative virtual address of a function is 0x123 and its program is loaded at 0x804000, the function can be found at 0x804123.
This are the descriptions of the executable code and include, among others, functions and variable names. This makes debugging a lot easier since many function and variable names give a hint on what they are supposed to do; for example, finding functions named
getName() or printName(), can save us from a lot of reverse engineering activities.
Symbols
This is the process of removing symbols from an ELF file.
stripping