|
Структура / Список лута - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
10.04.2011, 16:07
|
#1
|
|
|
|
Разведчик
|
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Структура / Список лута
# Структура / Список лута:
GA +8 +28 +18 +[I*4] + (+0)^J +4: (I in [0..300])
* GA +8 +28 +14: - Items count
* +3C ItemLocX (float)
* +40 ItemLocZ (float)
* +44 ItemLocY (float)
* +10C ItemWID (Sn - Serial Number)
* +110 ItemID
* +14C ItemType (1 - Money; 2 - Mine; Other - Item)
* +164 +0 ItemName (UText / Unicode String)
Код:
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$14), @Itemcount, sizeof(buf), BytesCount);
//если на земле что то лежит то Itemcount= кол-ву предметов на земле
ReadProcessMemory(hProcess, ptr(ipbuf+$18), @ipbuf, sizeof(ipbuf), BytesCount);
zI:=ipbuf*4;//может я тут что то не так считаю ???
ReadProcessMemory(hProcess, ptr(ipbuf+zI), @ipbuf, sizeof(ipbuf), BytesCount);
if Itemcount<>0 then
begin
repeat
ReadProcessMemory(hProcess, ptr(ipbuf+$0), @ipbuf, sizeof(ipbuf), BytesCount);
//после этой строчки получается что ipbuf=0
Itemcount:=Itemcount-1;
until Itemcount<=0;
end;
ReadProcessMemory(hProcess, ptr(ipbuf+$4), @ipbuf, sizeof(ipbuf), BytesCount);
//дальше считает от 0 так что получаются неверные значения
ReadProcessMemory(hProcess, ptr(ipbuf+$10C), @IWIDbuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$110), @IIDbuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$14C), @ITypebuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$164), @ipbuf,4, BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$0), @Buft,32, BytesCount);
Edit2.Text:=WideCharToString(Buft);
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
|
|
|
10.04.2011, 16:26
|
#2
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Структура / Список лута
Конечно ты там не так считаешь, в структуре ведь написано [i*4], а не [ipbuf*4].
Так чего же спрашивается так писать?
Что такое i - есть ответ в теме со структурами.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
18.04.2011, 10:50
|
#3
|
|
|
|
Разведчик
|
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Структура / Список лута
Код:
if hProcess <> 0 then
begin
Memo1.Lines.clear;
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $14), @Itemc, sizeof(buf), BytesCount);
if Itemc <> 0 then
begin
Memo1.Lines.Add('предметов: ' + IntToStr(Itemc));
for I := 0 to 300 do//добавил I
begin
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $18), @ipbuf, sizeof(ipbuf), BytesCount);
zI := I * 4;
ReadProcessMemory(hProcess, ptr(ipbuf + zI), @ipbuf, sizeof(ipbuf), BytesCount);
if Itemc <> 0 then
begin
repeat
ReadProcessMemory(hProcess, ptr(ipbuf + $0), @ipbuf, sizeof(ipbuf), BytesCount);
Itemc := Itemc - 1;
until Itemc <= 0;
end;
ReadProcessMemory(hProcess, ptr(ipbuf + $4), @ipbuf, sizeof(ipbuf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $10C), @IWIDbuf, sizeof(buf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $110), @IIDbuf, sizeof(buf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $14C), @ITypebuf, sizeof(buf), BytesCount);
//=0 соответственно дальше тоже
Memo1.Lines.Add('IWID: ' + inttostr(IWIDbuf));
Memo1.Lines.Add('IID: ' + IntToStr(IIDbuf));
Memo1.Lines.Add('IType: ' + IntToStr(ITypebuf));
ReadProcessMemory(hProcess, ptr(ipbuf + $164), @ipbuf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $0), @Buft, 32, BytesCount);
Memo1.Lines.Add('Name: ' + WideCharToString(Buft));
end;
end;
end;
Добавлено через 1 час 10 минут
|
Цитата: |
|
|
|
|
|
|
|
|
|
for I := $0 to $300 do
begin
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount); ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $18), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf +(I*$4)), @ipbuf, sizeof(ipbuf), BytesCount);
|
|
|
|
|
|
Кажется разобрался
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
Последний раз редактировалось zaparca; 18.04.2011 в 12:00.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:35.
|
|