Если бы ты еще указал какую строкуу подсвечивает - цены бы тебе не было (справка это будет 59 строка листинга)
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
В каждой строке где идёт чтение с памяти,
[DCC Error] nechto.pas(59): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(60): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(61): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(62): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(63): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(64): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(65): E2033 Types of actual and formal var parameters must be identical
[DCC Error] nechto.pas(66): E2033 Types of actual and formal var parameters must be identical
Добавлено через 24 минуты
Темку можно закрыть/удалить, скачал 7 Delphi и ошибки ушли....
Последний раз редактировалось semoder; 26.10.2011 в 19:21.
Причина: Добавлено сообщение
Зачем же удалять. Вообще у меня такое подозрение что в XE последний параметр функции чтения из памяти должен быть не DWord.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Спасибо, была такая мысль, но пока она появилась - офсеты уже были "исправлены" и в переменных был очередной мусор))
В принципе, теперь понятно как читать, и что значит чтение по цепочке. Мучают еще 2 вопроса:
1. Обязательно ли делать CloseHandle(process); после чтения каждого значение, или достаточно закрывать (указатель, или как оно правильно) - только в конце полного цикла чтения / самой программы ?
2. возможен ли перебор всех окон игр кроме как через - GetNextWindow(Wd,GW_HWNDNEXT) ? )
врагов - вписать ид варкланов не в отдельный файл, а прям тут же. ид варклана естесственно сам поищу.
клан - сколько соклан в радиусе радара
союзников - тоже самое что и с врагами
всего - общее количество персонажей в пределе радара. не врагов и союзников.. а вообще всех кто лазит в пределе радара
Помогите с инжектом ходьбы, вроде адреса правильные, на процедуру Walk идут правильные значения, [Ссылки могут видеть только зарегистрированные пользователи. ]
HP,MP, и прочее с игры читаются, но инжект ходьбы ни в какую(крэш клиента), в чём может быть проблема?
Код:
.......
PParams = ^TParams;
TParams = packed record
Param1:DWord;
x,y,z:single;
end;
.......
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PrID);
......
procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer; aParamsSize: DWord);
var
hThread: THandle;
lpNumberOfBytes: 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, lpNumberOfBytes);
// ---- Ожидаем завершения функции
WaitForSingleObject(hThread, INFINITE);
// ---- подчищаем за собой
CloseHandle(hThread);
VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
end
end;
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:DWORD;
begin
CallAddress1:=Pointer($0046E410);
CallAddress2:=Pointer($004728E0);
CallAddress3:=Pointer($0046E880);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
asm
pushad
mov eax, dword ptr [game_add]
mov esi, dword ptr [eax+$34]
mov ecx, dword ptr [esi+$1050]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$18]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$1050]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, dword ptr [game_add]
mov eax, dword ptr [eax+$34]
mov eax, dword ptr [eax+$1050]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;
procedure Walk(x,y,z:single);
var aParams: TParams;
ipbuf,BytesCount,BaseWalkMode:dword;
begin
ReadProcessMemory(hProcess, ptr(GAME_ADD), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$64C), @BaseWalkMode, sizeof(BaseWalkMode), BytesCount);
if BaseWalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
aParams.x:=x;
aParams.y:=y;
aParams.z:=z;
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aParams));
end;