-
Автор темы
- #1
Пишу на дельфи, нашёл функцию клиента, хочу заинжектить, инжектор ниже в спойлере
Cобсна игра валится на 23 строчке, с ошибкой по памяти
ThreadAddr как раз равен тому адресу который указан в ошибке (видно в посте imgur)
Это защита от инжектов или у меня кривой инжектор?
инжектор:
procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer;
aParamsSize: DWord);
var
hThread: THandle;
lpNumberOfBytes: SIZE_T;
lpNumberOfBytesDword: DWord;
ThreadAddr, ParamAddr: Pointer;
begin
if ProcessID<>0 then
begin
// ---- Выделяем место в памяти процесса, и записываем туда нашу функцию
ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);
// ---- Также запишем параметры к ней
ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);
// ---- Создаем поток, в котором все это будет выполняться.
hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytesDword);
// ---- Ожидаем завершения функции
WaitForSingleObject(hThread, INFINITE);
// ---- подчищаем за собой
CloseHandle(hThread);
VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
end
end;
Пожалуйста, авторизуйтесь для просмотра ссылки.
ThreadAddr как раз равен тому адресу который указан в ошибке (видно в посте imgur)
Это защита от инжектов или у меня кривой инжектор?