Только учусь, пишу на делфи7.
Программа определяет количество мобов вокруг, далее проверяем тип каждого моба (теперь 7 - НПС, 18 - моб? ) и берем WID первого попавшегося моба. Далее пробуем взять таргет, но ничего не происходит.
Код:
procedure TargetCall(WID: DWORD);Stdcall;
var //
P1: DWord; //
begin
P1:=WID;
asm
MOV ESI, P1
MOV EBX, $00798830
MOV EAX,DWORD PTR DS:[$DB5BBC]
PUSH 0
PUSH ESI
MOV ECX,DWORD PTR DS:[EAX+$1C]
MOV EDX,DWORD PTR DS:[ECX+$14]
MOV ECX,DWORD PTR DS:[EDX+$20]
CALL EBX
end;
function InjectAndExecute(Func: Pointer;Param: Pointer): byte;
var
hProcThread: HWND;
a: DWORD;
begin
if handleProcess = 0 then
InjectAndExecute := 0
else
begin
a:= 0;
WriteProcessMemory(handleProcess,injector.pFunction,Func,250,a);
WriteProcessMemory(handleProcess,injector.pParams,Param,250,a);
hProcThread := CreateRemoteThread(handleProcess,nil,0,injector.pFunction,injector.pParams,a,a);
if hProcThread = INVALID_HANDLE_VALUE then
InjectAndExecute := 0
else
begin
WaitForSingleObject(hProcThread,INFINITE);
CloseHandle(hProcThread);
InjectAndExecute := 1;
end;
end;
end;
end;
procedure TargetMob(WID: DWORD);
begin
InjectAndExecute(@TargetCall,@WID);
end;