|
РУОФФ Адреса и оффсеты - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
13.01.2012, 19:20
|
#106
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Я проанализировал значение 06F4 WaitSkill* - это указатель на структуру кастующегося в данный момент скилла. Если посмотреть дальше, то можно обнаружить следующие показатели:
+4 SkillID
+8 SkillID
+C SkillLvl
+10 SkillCoolDown
+14 SkillMaxCoolDown
Это смещение интересно по нескольким причинам:
1) Мы можем легко обнаружить какой скилл кастуется в данный момент посмотрев на его ID по смещению +8 - SkillID
2) Мы можем легко понять когда скилл перестал кастоваться - по этому смещению будет 0.
Я бы назвал это смещение как ActiveSkillPtr.
Добавлено через 8 минут
================================================== ===============================================
|
Цитата: |
|
|
|
|
|
|
|
|
|
Подскажите по какому оффсету и какое значение должно быть фулл чи? То есть, то что выложено показывает текущий уровень ярости, а мне нужен фулл чи. Типа 1 или 0 (есть или нет)
|
|
|
|
|
|
На сколько я знаю полных чи нет. Да и зачем оно, если можно проверять кол-во ярости по смещению +4A4 в структуре персонажа. Если >= 100 - значит 1 чи есть, если >=200 - значит 2 чи, если >= 300 - значит 3 чи.
Добавлено через 15 минут
================================================== =============================================
|
Цитата: |
|
|
|
|
|
|
|
|
|
/+0480 Chi, dword/*
|
|
|
|
|
|
По этому смещению лежит количество полных чи. Т.е. если это значение = I, то максимальное кол-во ярости будет I+99, где i = 0 to 3.
Добавлено через 1 час 47 минут
==================================================
Что то по этому адресу не вижу Ожидания призыва пета +0B60 Duration of life/recall of a pet /Ожидание призыва пета/, не подскажите правильный? Или поясните что это за параметр, пожалуйста.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Последний раз редактировалось krukovis; 13.01.2012 в 21:12.
Причина: Добавлено сообщение
|
|
|
13.01.2012, 22:10
|
#107
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
|
|
13.01.2012, 22:48
|
#108
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: РУОФФ Адреса и оффсеты
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
14.01.2012, 01:45
|
#109
|
|
|
|
Разведчик
|
Регистрация: 09.06.2010
Сообщений: 4
Популярность: 119
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: РУОФФ Адреса и оффсеты
Возможно тут уже писали об этом, но я такого не нашел.
По смещениям от +055C до +05BC в структуре перса лежат item_id оружия, брони и т.п.
Но, несмотря на то что они определены как "двойное слово" - DWord, в реальности для хранения item_id используется только младшее слово, а старшее может содержать то ли мусор, то ли какую-то непонятную (во всяком случае не описанную здесь) информацию (а может и нули).
Поэтому нужно либо сразу определять в своей программе тип этих переменных как Word или SmallInt (для Delphi), либо маскировать старшее слово.
|
|
|
15.01.2012, 10:29
|
#110
|
|
|
|
Пехотинец
|
Регистрация: 16.09.2010
Сообщений: 94
Популярность: 73
Сказал(а) спасибо: 5
Поблагодарили 21 раз(а) в 5 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
|
|
15.01.2012, 18:58
|
#111
|
|
|
|
Разведчик
|
Регистрация: 09.06.2010
Сообщений: 4
Популярность: 119
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: РУОФФ Адреса и оффсеты
Брать информацию о близлежащих игроках по ссылке из структуры перса не пробовал.
А вот здесь информация о них точно есть:
"Структура игроков
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300"
|
|
|
16.01.2012, 19:30
|
#112
|
|
|
|
Разведчик
|
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Где можно посмотреть какое либо значение, которое показывало бы в игре перс или вылетел? Коты часто вылетают...
|
|
|
16.01.2012, 19:36
|
#113
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: РУОФФ Адреса и оффсеты
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
17.01.2012, 21:03
|
#114
|
|
|
|
Разведчик
|
Регистрация: 06.11.2011
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
А у меня структура лута не работает.
списки игроков и мобов работают нормально.
При чем офсет на количество лута и ресов вокруг работает а инфа о них неправильная (((
|
|
|
17.01.2012, 21:19
|
#115
|
|
|
|
Пехотинец
|
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
Цитата: |
|
|
|
|
|
|
|
|
|
Лично у меня вот так
Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:cardinal;
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+$0c]
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;
|
|
|
|
|
|
Блин все равно не получается, клиент с ошибкой вылетает(((
Решил отдельно замутить для проверки. Гляньте что не так плиз. Мозг уже не варит, он и так то не варил, а ща вообще мертв.
Код:
type
PParams = ^TParams;
TParams = packed record
WID: DWord;
end;
type
PWalkParams = ^TWalkParams;
TWalkParams = packed record
Packet: array [0..100] of byte;
CallAddress1,CallAddress2,CallAddress3: Pointer;
x,y,z: single;
Param1: dword;
Param4: array [1..88] of widechar;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//podkluchenie k pw
function Contopw: dword;
var
WndHndl:Thandle;
PID,hprocess:dword;
begin
WndHndl:=findwindow(nil, pchar('Perfect World'));
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
if hprocess<>0 then begin
Result:=hprocess; end
else
begin
Result:=0;
end;
end;
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: PWalkParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
x,y,z:single;
flying:cardinal;
Game_add: integer;
begin
game_add := $B280C4;
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+$0c]
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: Twalkparams;
ipbuf,BytesCount,BaseWalkMode, hprocess:dword;
begin
hProcess := contopw();
ReadProcessMemory(hProcess, ptr($B280C4), @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;
procedure TForm1.Button1Click(Sender: TObject);
begin
Walk(0,0,0);
end;
end.
|
|
|
18.01.2012, 16:07
|
#116
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Я чуть не разуверился в этом мире пока отловил ошибку тут:
|
Цитата: |
|
|
|
|
|
|
|
|
|
MultOff=00437712 (57 8D 4E 04 EB 55 EA FD FF > 90 8D 4E 04 90 90 90 90 90)
|
|
|
|
|
|
Правильный опкод для исправления (57 8D 4E 04 E 8 55 EA FD FF) - поправь пожалуйста.
|
|
|
18.01.2012, 18:35
|
#117
|
|
|
|
Старший сержант
|
Регистрация: 21.09.2009
Сообщений: 189
Популярность: 578
Сказал(а) спасибо: 27
Поблагодарили 144 раз(а) в 36 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Ок, невнимательность моя...
|
|
|
19.01.2012, 12:01
|
#118
|
|
|
|
Сержант
|
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Jok3r666, у меня вместо
lea eax, dword ptr [esp+$0c]
стоит
lea eax, dword ptr [esp+$18]
|
|
|
19.01.2012, 21:37
|
#119
|
|
|
|
Рыцарь-капитан
|
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Я нашел отсортированный список для Мобов/NPC/Петов !
MobsHash = BaseAddress+0x1C+0x1C+0x24+0x50 + (0x04*I)
Где I = 0 to MobsCount (MobsCount = BaseAddress+0x1C+0x1C+0x24+0x14)
Добавлено через 12 часов 30 минут
|
Цитата: |
|
|
|
|
|
|
|
|
|
Брать информацию о близлежащих игроках по ссылке из структуры перса не пробовал.
А вот здесь информация о них точно есть:
"Структура игроков
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300"
|
|
|
|
|
|
Рекомендую пользоваться отсортированным списком:
PlayersHash = BaseAdress +0x1C +0x34+038С+088+(I*4), где I = 0..PlayersCount
PlayersCount = BaseAdress +0x1C +0x34+038С+14
И дальше HashPlayers +
...
+0x46C ID, dword
+ прочие значения с 1-ой страницы....
+ ....
....
Удобнее.
Последний раз редактировалось krukovis; 20.01.2012 в 10:31.
Причина: Добавлено сообщение
|
|
|
Пользователь сказал cпасибо:
|
|
20.01.2012, 10:55
|
#120
|
|
|
|
Пехотинец
|
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:03.
|
|