Testlab
Notes on techniques
Linux
Windows
Coding shells and exploits
TryHackMe rooms
Root-me app-script challenges
When writing shellcode for Linux, system calls (syscalls) are used.
Best is to start with a basic shell, move onto egg hunters, reverse TCP shellcode, and finally, shellcode for 64-bit operating systems.
Linux kernel map