Ищу скрипт Инжектор на AHK

Новичок
Новичок
Статус
Оффлайн
Регистрация
21 Ноя 2022
Сообщения
1
Реакции
0
В AHK вообще не шарю, умею только по кнопке в чат написать, можете кто то сделать/подсказать как делать инжектор для кс и других игр?
То есть при открытии, будет типо "скрытый инжект", без выбора путя и тд. Просто чтобы это было в коде. При запуске сразу инжект, и ни каких окон.
Много хочу, сам понимаю, но помогите пж)
 
/del
 
Последнее редактирование:
инжектор и есть ахк больше никаких вариантов
 
ахк выполнение действий которые можешь сделать ты. Только автоматически так и разшипровываеться Auto Hot Key
 
В AHK вообще не шарю, умею только по кнопке в чат написать, можете кто то сделать/подсказать как делать инжектор для кс и других игр?
То есть при открытии, будет типо "скрытый инжект", без выбора путя и тд. Просто чтобы это было в коде. При запуске сразу инжект, и ни каких окон.
Много хочу, сам понимаю, но помогите пж)
#Persistent
#NoEnv
#SingleInstance Force

; Убедитесь, что скрипт работает с правами администратора
If !A_IsAdmin
{
MsgBox, Скрипт должен быть запущен с правами администратора!
ExitApp
}

; Путь к DLL, которую мы будем инжектировать
dllPath := "C:\MeCode.dll"

; Проверка наличия процесса Notepad.exe
Process, Exist, Notepad.exe
if (ErrorLevel = 0) {
MsgBox, Процесс Notepad.exe не найден!
ExitApp
}

pid := ErrorLevel ; PID найденного процесса
MsgBox, Процесс game.exe найден, PID: %pid%

; Получаем хэндл процесса
hProcess := DllCall("OpenProcess", "uint", 0x1F0FFF, "int", 0, "uint", pid, "ptr")
if (hProcess = 0) {
MsgBox, Не удалось получить хэндл процесса. Ошибка: %ErrorLevel%
ExitApp
}

; Выделение памяти для записи пути к DLL
dllPathAddr := DllCall("VirtualAllocEx", "ptr", hProcess, "ptr", 0, "uint", StrLen(dllPath) + 1, "uint", 0x1000, "uint", 0x40, "ptr")
if (dllPathAddr = 0) {
MsgBox, Не удалось выделить память. Код ошибки: %ErrorLevel%
DllCall("CloseHandle", "ptr", hProcess)
ExitApp
}

; Запись пути к DLL в память
WriteProcessMemory(hProcess, dllPathAddr, dllPath)

; Получаем адрес LoadLibraryA
loadLibraryAddr := DllCall("GetProcAddress", "ptr", DllCall("GetModuleHandle", "str", "kernel32.dll"), "str", "LoadLibraryA", "ptr")
if (loadLibraryAddr = 0) {
MsgBox, Не удалось получить адрес LoadLibraryA.
DllCall("CloseHandle", "ptr", hProcess)
ExitApp
}

; Создаём удалённый поток для загрузки DLL
hThread := DllCall("CreateRemoteThread", "ptr", hProcess, "ptr", 0, "uint", 0, "ptr", loadLibraryAddr, "ptr", dllPathAddr, "uint", 0, "ptr", 0)
if (hThread = 0) {
MsgBox, Не удалось создать удалённый поток. Код ошибки: %ErrorLevel%
DllCall("CloseHandle", "ptr", hProcess)
ExitApp
}

; Ожидаем завершения потока
DllCall("WaitForSingleObject", "ptr", hThread, "uint", 0xFFFFFFFF)

; Закрываем хэндлы
DllCall("CloseHandle", "ptr", hProcess)
DllCall("CloseHandle", "ptr", hThread)

; Если инжекция прошла успешно, проигрываем звук
SoundPlay, C:\Windows\Media\notify.wav

MsgBox, Инжекция завершена успешно!

ExitApp

; Функция записи в память процесса
WriteProcessMemory(hProcess, address, data) {
VarSetCapacity(buf, StrLen(data), 0)
StringPutChar, buf, data
DllCall("WriteProcessMemory", "ptr", hProcess, "ptr", address, "ptr", &buf, "uint", StrLen(data), "ptr", 0)
}
 
Назад
Сверху Снизу