This is a project meant for learning C++ and linux internals: a small tool to load, run and analyze raw shellcode in a controlled environment.
- Work with linux syscalls:
- Memory management
- Process control
- Build a practical tool for reverse engineering and binary exploitation.
- Load and execute raw shellcode in a controlled environment.
- Test shellcode under different protection settings.
- Debug and analyze shellcode bahavior.
- Generate basic shellcode stubs for testing.
Basic shellcode loader
- Allocate executable memory and copy shellcode to allocated memory
- create function pointer and execute
- handle crashes
Safe execution environment
- Fork based isolantion (execute in child process)
- Signal handling for segmentation faults
- Timeout mechanisms
- sandboxing:
- seccomp filters
- linux namespaces
- Memory protection toggling:
- NX/DEP
- Stack canary
- RELRO
- ASLR
- PIE
Analysis Features
- Register state before/after execution
- Syscall tracing
- memory mapping display
- step-by-step execution