Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- using static injEctHelper.imports;
- using injEctHelper;
- using System.ComponentModel;
- namespace injEctHelper
- {
- class injector
- {
- // privileges
- const int PROCESS_CREATE_THREAD = 0x0002;
- const int PROCESS_QUERY_INFORMATION = 0x0400;
- const int PROCESS_VM_OPERATION = 0x0008;
- const int PROCESS_VM_WRITE = 0x0020;
- const int PROCESS_VM_READ = 0x0010;
- IntPtr pHandle;
- IntPtr Libaddr;
- // used for memory allocation
- const uint MEM_COMMIT = 0x00001000;
- const uint MEM_RESERVE = 0x00002000;
- const uint PAGE_READWRITE = 4;
- public injector(string proc_name)
- {
- Process proc = Process.GetProcessesByName(proc_name)[0];
- Console.WriteLine("pId: "+proc.Id);
- IntPtr pHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, proc.Id);
- Console.WriteLine("Proc handle: "+ pHandle.ToString());
- IntPtr Libaddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
- }
- public void Injector(string dll)
- {
- try
- {
- IntPtr allocMem = VirtualAllocEx(pHandle, IntPtr.Zero, (uint)((dll.Length + 1) * Marshal.SizeOf(typeof(char))), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
- UIntPtr bytesWritten;
- WriteProcessMemory(pHandle, allocMem, Encoding.Default.GetBytes(dll), (uint)((dll.Length + 1) * Marshal.SizeOf(typeof(char))), out bytesWritten);
- CreateRemoteThread(pHandle, IntPtr.Zero, 0, Libaddr, allocMem, 0, IntPtr.Zero);
- }
- catch
- {
- throw new Win32Exception(Marshal.GetLastWin32Error());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement