Помогитек плз, при вызове функции нужно:
1 открытие ксго
2 ожидание запуска процесса игры
3 инжект DLL в игру (lla метод)
4 перенос dll файла в папку
Но у меня просто открывается игра и инжектится софт (в одну секунду)
Надежда только на вас
Сам код
1 открытие ксго
2 ожидание запуска процесса игры
3 инжект DLL в игру (lla метод)
4 перенос dll файла в папку
Но у меня просто открывается игра и инжектится софт (в одну секунду)
Надежда только на вас
Сам код
C#:
public static bool Inject(string dllpath)
{
string processname = "csgo";
string dllpatch = @"C:\test.dll";
Directory.CreateDirectory(PreInjection(@"C:\Windows"));
Directory.CreateDirectory(PreInjection(@"C:\Windows\PrintDialog"));
Directory.CreateDirectory(PreInjection(@"C:\Windows\PrintDialog\Assets"));
Process.Start("steam://rungameid/730");
while (Process.GetProcessesByName(processname).Length < 1)
{
return false;
}
var handle = OpenProcess((int)(PROCESS_ACCESS_FLAGS.PROCESS_VM_READ | PROCESS_ACCESS_FLAGS.PROCESS_VM_WRITE | PROCESS_ACCESS_FLAGS.PROCESS_VM_OPERATION), false, Process.GetProcessesByName(processname)[0].Id);
var buffer = VirtualAllocEx(handle, 0, dllpath.Length + 1, (int)MEMORY_ACCESS_FLAGS.MEM_COMMIT, (int)PAGE_ACCESS_FLAGS.PAGE_READWRITE);
WriteProcessMemory(handle, buffer, Marshal.StringToHGlobalAnsi(dllpath), dllpath.Length + 1, 0);
WaitForSingleObject(CreateRemoteThread(handle, IntPtr.Zero, 0, GetProcAddress(LoadLibraryA("kernel32.dll"), "LoadLibraryA"), buffer, 0, 0), -1);
VirtualFreeEx(handle, buffer, 0, (int)MEMORY_ACCESS_FLAGS.MEM_RELEASE);
Random r = new Random();
File.Move(dllpath, PreInjection(@"C:\Windows\PrintDialog\Assets") + @"\asset" + r.Next(0, 255) + ".dll");
return true;
}

