Task 2: Might need to rewrite and combine the provided blog posts to give more straightforward instructions. Also add some notes:
Assembly code should be "perfect call" to work on every program, e.g. define every parameter for execve call / clean registers
Note that command substitution should use quotes to avoid splitting with some specific chars
Don't rely on Python 2 on examples anymore
Shellcode should fit inside variable or start after overflowing memory address to avoid breaking
Maybe provide sample code for brute forcing
Task 3A: Kali seems to have ASCII armoring in these days (too many occurrences with null bytes), might need to modify instructions because of that (Note about ascii armor https://lwn.net/Articles/31032/)
Task 3B: Provided sample python code is not well compatible with Python 3.9 and the latest pwntools, should fix that
Task 2: Might need to rewrite and combine the provided blog posts to give more straightforward instructions. Also add some notes:
Task 3A: Kali seems to have ASCII armoring in these days (too many occurrences with null bytes), might need to modify instructions because of that (Note about ascii armor https://lwn.net/Articles/31032/) Task 3B: Provided sample python code is not well compatible with Python 3.9 and the latest pwntools, should fix that
Extra material: https://medium.com/codex/buffer-overflows-shellcode-and-memory-corruption-51f546ab00ab