2024-01-02 22:05:29 +01:00
# Shellcode reflective DLL injection in C++
2024-01-05 20:15:45 +01:00
Reflective DLL injection demo for fun and education. In practical applications, there's significant scope for enhancing build sizes, obfuscation, and delivery logic.
2024-01-05 20:57:22 +01:00
[A blog post describing the technicalities of sRDI. ](https://golfed.xyz/blog/understanding-srdi/ )
2024-01-05 20:15:45 +01:00
### Project Structure
2024-01-04 19:00:24 +01:00
```shell
.
├── build.sh # Build script (cmake & make)
├── generator # Shellcode generator (ties together bootstrap, loader, payload, and user data)
├── injector # PoC injector
├── payload # PoC payload (DllMain & PrintMessage(lpUserData))
├── reflective_loader # sRDI implementation
2024-01-05 20:15:45 +01:00
├── shared # Common cryptographic & file modules
2024-01-04 19:00:24 +01:00
└── toolchains # Cross-compilation toolchains (linux & darwin)
```
2024-01-02 22:05:29 +01:00
### Features
2024-01-05 20:15:45 +01:00
- Hashed import names & indirect function calls
- Randomized export iteration & IAT patching
- XOR encryption for shellcode (randomized key generated during shellcode generation)
2024-01-02 22:05:29 +01:00
2024-01-03 20:02:20 +01:00
Check out [Alcatraz ](https://github.com/weak1337/Alcatraz/ ) for additional obfuscation for the shellcode/injector.
2024-01-02 22:05:29 +01:00
2024-01-04 19:00:24 +01:00
### Usage
Compile the libraries and executables with the included `build.sh` shellscript (if cross-compiling).
2024-01-05 20:15:45 +01:00
### Disclaimer
Information and code provided on this repository are for educational purposes only. The creator is in no way responsible for any direct or indirect damage caused due to the misuse of the information.
2024-01-02 22:05:29 +01:00
### Credits
- Stephen Fewer ([@stephenfewer](https://github.com/stephenfewer)) for reflective DLL injection
- Nick Landers ([@monoxgas](https://github.com/monoxgas)) for shellcode generator
2024-01-03 20:01:26 +01:00
- [@memN0ps ](https://github.com/memN0ps ) for bootstrap shellcode