diff --git a/sheet07/a1/e.txt b/sheet07/a1/e.txt new file mode 100644 index 0000000..b2c1424 --- /dev/null +++ b/sheet07/a1/e.txt @@ -0,0 +1,3 @@ +Shellcodes are raw machine instructions executed directly by the CPU, so they must match the specific instruction set architecture. +To spawn a shell the shellcode has to make system calls to the kernel. +Because syscall numbers and the CPU registers used to pass arguments vary entirely between different operating systems and architectures, a shellcode written for 32-bit Linux will not work on 64-bit Linux or Windows. \ No newline at end of file diff --git a/sheet07/a1/f.txt b/sheet07/a1/f.txt new file mode 100644 index 0000000..0ba99ff --- /dev/null +++ b/sheet07/a1/f.txt @@ -0,0 +1,4 @@ +ASLR randomizes the base addresses of memory segments like the stack and shared libraries on every execution. +To defeat it an information leak vulnerability is usually required to read a valid memory address at runtime. +Since ASLR only shifts the memory regions as a whole, the relative offsets between functions remain constant. +By leaking a single pointer the base address can be calculated, which allows computing the exact runtime location of the target function or ROP gadgets. \ No newline at end of file