
एक हल्का परीक्षण हार्नेस जो क्रैश डायग्नोस्टिक्स और डीबग आउटपुट रीडायरेक्शन के साथ एक एक्जीक्यूशन वातावरण प्रदान करके शेलकोड विकास को गति देने के लिए डिज़ाइन किया गया है।
एक हल्का परीक्षण हार्नेस जो शेलकोड विकास को तेज करने के लिए डिज़ाइन किया गया है, जो एकीकृत क्रैश डायग्नोस्टिक्स और डिबग आउटपुट रीडायरेक्शन के साथ एक निष्पादन वातावरण प्रदान करता है।
g++ -o loader.exe loader.cc -ladvapi32 -luser32 -lkernel32 -static
# Execute a payload using the default host DLL
loader.exe --bin payload.bin
# Execute a payload by stomping a specific DLL
loader.exe --bin payload.bin --dll mscoree.dll
# Scan for all compatible DLLs
loader.exe --scan
# Scan for DLLs with a .text section large enough for a specific payload
loader.exe --scan --bin payload.bin
#if defined(DEBUG)
#define PDEBUG(format, ...) \
{ \
ntdll.DbgPrint(symbol<PCH>("%-48s " format), symbol<PCH>(({ \
char __buf[48]; \
memory::snprintf(__buf, sizeof(__buf), "[%s:%d]", \
__FUNCTION__, __LINE__); \
__buf; \
})), \
##__VA_ARGS__); \
}
#define PDEBUG_CTX(ctx, format, ...) \
{ \
if ((ctx) && (ctx)->ntdll.DbgPrint) { \
(ctx)->ntdll.DbgPrint(symbol<PCH>("%-48s " format), symbol<PCH>(({ \
char __buf[48]; \
memory::snprintf(__buf, sizeof(__buf), "[%s:%d]",\
__FUNCTION__, __LINE__); \
__buf; \
})), \
##__VA_ARGS__); \
} \
}
#else
#define PDEBUG(format, ...) \
{ \
; \
}
#define PDEBUG_CTX(ctx, format, ...) \
{ \
; \
}
#endif
PSYSCALL_TABLE pTable = NULL;
SIZE_T regionSize = sizeof(SYSCALL_TABLE);
ntdll.NtAllocateVirtualMemory(
(HANDLE)-1,
(PVOID*)&pTable,
0,
®ionSize,
MEM_COMMIT | MEM_RESERVE,
PAGE_READWRITE
);
if (pTable) {
pTable->NtTerminateProcess = 0x2c; // Example syscall number
PDEBUG("HEXDUMP:%p:%zu", pTable, sizeof(SYSCALL_TABLE));
}
