|
РУОФФ Адреса и оффсеты - Разработка ПО для Perfect World - Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World |
06.09.2012, 22:46
|
#586
|
|
|
|
Старший сержант
|
Регистрация: 21.09.2009
Сообщений: 189
Популярность: 578
Сказал(а) спасибо: 27
Поблагодарили 144 раз(а) в 36 сообщениях
|
Re: РУОФФ Адреса и оффсеты
В китае сегодня закончилось тестирование новой версии 1.4.6, БА сменился - 00B8F7E4. Заставку тоже сменили. Только не пойму очередное название - если не ошибся с переводом - "Династия". Теперь ждем глобальное обновление на руофе.
Всех официально поздравляю, ПВ снова вернулся к Directx8.
Папочка игры еще больше раздулась, весит 7,4 Гб, Сетап весит 5 Гб с хвостиком.
Пополнели структуры персонажей, мобов.
Я это к чему - теперь на ГД и ТВ тормозить будет еще больше.
Что они добавили в игровой процесс, не знаю, вид игрового окна не изменился.
За что уважаю китайцев - все делают выстро. Еще не успели обновиться - ботов уже запустили. Такое впечатление, как будто у них пользователям официально офсеты от производителя присылают)) Это кто то только включил, а за городом уже бегают. Лут не собирают. Никому не надо?
А вот такого перса хотите?
Очень трудно взять в таргет)) А шмот крафтить значительно дешевле.
Последний раз редактировалось sumikot; 07.09.2012 в 00:33.
|
|
|
07.09.2012, 00:17
|
#587
|
|
|
|
Разведчик
|
Регистрация: 24.10.2011
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 20
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Последний раз редактировалось egorka101; 07.09.2012 в 00:51.
Причина: Добавлено сообщение
|
|
|
09.09.2012, 23:36
|
#588
|
|
|
|
Пехотинец
|
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
|
Re: РУОФФ Адреса и оффсеты
попробовал поискать массив банка там вообще творится странное.. нашел итем, его ID по адресу XXX, количество итемов XX2... нашел итем со следующей ячейки его адрес был смещен очен сильно... количество итемов - адрес опять на 2 смещен относительно адреса ID ... но самое интересное при перемещении итемов в банке адреса итемов сохраняются))и при закрытии банка тоже сохраняются, какая может быть зависимость?
|
|
|
10.09.2012, 21:01
|
#589
|
|
|
|
Разведчик
|
Регистрация: 01.11.2011
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
В ассемблерном коде инжекта движения указано смещение к координатам в массив действий, что это за координаты, вернее к чему они относятся (мишень, конечная точка движения, ....)
mov eax, GameAddress;
mov eax, dword ptr [eax];
mov eax, dword ptr [eax+0x34];
mov eax, dword ptr [eax+0x10BC];
mov eax, dword ptr [eax+0x30];
mov ecx, dword ptr [eax+0x04];
mov eax, x;
mov eax, dword ptr[eax];
mov dword ptr[ecx+0x20], eax;
mov eax, z;
mov eax, dword ptr[eax];
mov dword ptr[ecx+0x24], eax;
mov eax, y;
mov eax, dword ptr[eax];
mov dword ptr[ecx+0x28], eax;
Может у кого было такое .. бегает по инжекту кода, все правильно, но порой случается, что тупо двигается в какую-то точку типа 0 0 0 - всегда в одну и туже, и в эту-же точку почти всегда пытается двинуться, как-бы дергается в нее и потом бежит правильно ..
Может куда-то еще надо прописать коорды пункта назначения, кроме тех. что пишутся в инжектируемом коде (Asm) и передаются в структуре параметров ?
|
|
|
11.09.2012, 10:41
|
#590
|
|
|
|
Сержант
|
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
|
Re: РУОФФ Адреса и оффсеты
________________
backup - акт проявления трусости
|
|
|
11.09.2012, 12:12
|
#591
|
|
|
|
Старший сержант
|
Регистрация: 21.09.2009
Сообщений: 189
Популярность: 578
Сказал(а) спасибо: 27
Поблагодарили 144 раз(а) в 36 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
Цитата: |
|
|
|
|
|
|
|
|
|
бегает по инжекту кода, все правильно, но порой случается, что тупо двигается в какую-то точку типа 0 0 0
|
|
|
|
|
|
|
Цитата: |
|
|
|
|
Сообщение от pw.assistant |
|
|
|
|
|
|
|
У меня та же беда, поэтому приходится регулярно посылать нужные координаты и вызывать инжект движения.
|
|
|
|
|
|
Проверьте ВНИМАТЕЛЬНО все места исхода, откуда вызывается инжект. На всякий случай, чтобы убедиться, что все правильно. Возможно, что где-то ошибка и координата задана не флоат. Регулярно координаты посылать не нужно - сколько у меня работает геобот, ни разу не было такой ошибки (в самом начале написания бота было, но я сам напутал и типы переменных, и массив с координатами). Просто проводится один раз инжект, и конролируется наличие движения перса до его остановки.
Координаты относятся к конечной точке движения в структуре Action. Perimetr, инжект у тебя выложен не полностью. Это инжект с посланием перса в "никуда" с последующей подменой координат на нужные. Попробуй поставить несколько нопов перед подменой координат или использовать другой инжект с сохранением координат в выделенной памяти и указанием их адреса в инжекте.
|
|
|
11.09.2012, 15:56
|
#592
|
|
|
|
Разведчик
|
Регистрация: 01.11.2011
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Не для этой темы форума, извиняюсь, просто в инжект-теме никого нет..
.. ну бегает вроде, а пытается бежать в какую-то там точку - не беда, всерн потом сразу-же бежит правильно.
Беда - когда он бежит в нее и только в нее..
Image3.jpg
Последний раз редактировалось Perimetr; 11.09.2012 в 18:20.
|
|
|
11.09.2012, 20:19
|
#593
|
|
|
|
Старший сержант
|
Регистрация: 21.09.2009
Сообщений: 189
Популярность: 578
Сказал(а) спасибо: 27
Поблагодарили 144 раз(а) в 36 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Мдяааа.... Perimetr, кто тебя учил выкладывать исходы в картинках?
Нах выкидывай вторую часть инжекта, если ты используешь указатель на переменные флоат. Зачем два раза одно и то же? Вот вполне рабочий инжект, ничего больше никуда дописывать не нужно.
Сейчас посмотрел - я же тебе на него уже указывал.
Код:
pushad
mov edx, BaseAdress
mov ecx, dword ptr [edx]
mov edx, dword ptr [ecx+0x1C]
mov esi, [edx+0x34]
mov ecx, dword ptr [esi+ActionArrOfs]//10BC
mov eax, dword ptr [esi+WalkMode]//6CC
push 0x01
mov edx, WalkCall1
call edx
mov edi, eax
push Param_add // адрес координат для движения
//т.е. в С++ это указатель на переменную, которую передаешь в параметрах функции,
//преобразовывать ее не нужно, просто подставь сюда
push fly// 0- пешком, 1- полет, вплавь - при проверке просто подставь вручную,
//разница в том, что если 0, то в полете не набирает высоту.
mov ecx, edi
mov edx, WalkCall2
call edx
push 0x00
push 0x01
push edi
push 0x01
mov ecx, dword ptr [esi+ActionArrOfs]
mov edx, WalkCall3
call edx
popad
ret
Честно говоря, насчет ретурн не уверен только - в инжекте на си его нужно ставить или компилятор сам подставляет.
Последний раз редактировалось sumikot; 11.09.2012 в 20:45.
|
|
|
Пользователь сказал cпасибо:
|
|
11.09.2012, 23:34
|
#594
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
|
|
12.09.2012, 08:43
|
#595
|
|
|
|
Разведчик
|
Регистрация: 01.11.2011
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Кажется понял как все происходит -
ошибка в порядке записи координат в структуру
StructParams Params;
Params.par1 = x;
Params.par2 = y;
Params.par3 = z;
Все учителя в школах нам внушали X,Y,Z, а китайцам не так => X,Z,Y
Передаю адрес на параметры, а п.п. в клиенте читает эти параметры по алгоритму своему именно x,z,y
получается, что Z и Y перепутаны местами и перс дергается бежать в сторону Z координаты вместо Y.
Потом координаты повторно подставляю в массив действий в правильной "китайской" последовательности
и перс бежит правильно.. вот - пойду проверять..))
по поводу RET - я не ставлю его в ASM коде на VC++, т.к. в процесс клиента инжектится не только ASM код, а вся функция в которой этот код указан, если поставить RET, то возврат должен будет произойти в место окуда эта функция вызывалась - т.е. в процесс бота, что естественно, но тогда код в памяти клиента не будет завершен должным образом, "хвост" завершения функции после ASM вставки не отработает, а это уже не есть Гут. Этот RET всерн скомпилируется как конец функции. Думаю, что так и на Дельфм.
По поводу BREAK - пока перс бежит к точке - нужно постоянно проверять достижение им этой точки, иначе недобегая до нее начнет действовать следующая в листинге кода бота инструкция и он остановится, чтобы стрельнуть или т.п. Причем во время этой проверки должен работать таймер движения, если до точки персу бежать не более 8 секунд например, идет цикл проверки текущих координат перса и сравнение их с конечной тчкой, если он бежит уже более 8 (например) секунд, то тогда BREAK и-или переход на подпрограмму обхода препятствия, и т.п. тут уже.. дело творчества ..
.. картинками код выставляю - потому как Рус кодировка коментов не правильно на форуме отображается, когда их копирую из листинга, да и форматирование - полнее описывает картину кода ..
CheckPoint.jpg
Последний раз редактировалось Perimetr; 12.09.2012 в 09:26.
|
|
|
12.09.2012, 10:13
|
#596
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: РУОФФ Адреса и оффсеты
|
|
|
12.09.2012, 11:10
|
#597
|
|
|
|
Разведчик
|
Регистрация: 01.11.2011
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
.. бегает как проклятый ..)), точно и без ошибок.
Поменял местами в структуре параметров Z и Y, вторую часть asm-кода, как и советовал sumikot - убрал ("нах"),
теперь тока адр. начала параметров функции ставится в стек и все само движется.
sumikot - рулит. Спасибо !
Ginrey -Спасибо, да Вы соверщенно правы - сам виноват, сам себя запутал, хотя кто-то точно так может сделать.
PS. надеюсь вопрос с движением в VC++ - закрыт.
Последний раз редактировалось Perimetr; 12.09.2012 в 16:21.
|
|
|
14.09.2012, 23:05
|
#598
|
|
|
|
Разведчик
|
Регистрация: 16.04.2009
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Кто знает как определить координаты моба? Работает и HP и прочее кроме координат моба все отрицательные (считываю в переменные типа real). Считываю по цепочке BA +0x1C +0x1C +0x24 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
Код:
const
MobLocX=$3C; //float / X/ (X/10+400)
MobLocZ=$40; //float / Z/ (Z/10)
MobLocY=$44; //float / Y/ (Y/10+550)
Procedure TForm1.MobLvl;
var
TargetWID,BytesCount,MobsTemp,WMobHP,WMobMHp,WMobLevel,WMobFeature,PetTemp,PetNumber,
Pethealth,PetCall,PetLvl,WPetHP,WPetLoyale,WPetClass,WPetExp,PetHealthProc,WMobAttak:cardinal;
I,J,PetHPView,MobLvl:integer;
WMobDistance:real;
begin
ReadProcessMemory(RHandle, ptr(BaseAdress), @TargetWID, sizeof(TargetWID), BytesCount);
ReadProcessMemory(RHandle, ptr(TargetWID+PlayerEnt1C), @TargetWID, sizeof(TargetWID), BytesCount);
ReadProcessMemory(RHandle, ptr(TargetWID+PlayerEnt34), @TargetWID, sizeof(TargetWID), BytesCount);
ReadProcessMemory(RHandle, ptr(TargetWID+Target), @TargetWID, sizeof(TargetWID), BytesCount);
for J:=0 to 5 Do
begin
for I:=0 to $300 DO
begin
ReadProcessMemory(RHandle, ptr(BaseAdress), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+PlayerEnt1C), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+PlayerEnt1C), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobTempEnt24), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobTempEnt18), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+I*4), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobTempEnt4), @MobsTemp, sizeof(MobsTemp), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobWorldID), @MobWId, sizeof(MobWId), BytesCount);
If MobWId = TargetWid then break;
end;
if MobWId=TargetWid then Break;
end;
...
ReadProcessMemory(RHandle, ptr(MobsTemp+MobLocX), @WMobLocX, sizeof(WMobLocX), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobLocY), @WMobLocY, sizeof(WMobLocY), BytesCount);
ReadProcessMemory(RHandle, ptr(MobsTemp+MobLocZ), @WMobLocZ, sizeof(WMobLocZ), BytesCount);
...
|
|
|
18.09.2012, 10:27
|
#599
|
|
|
|
Старший сержант
|
Регистрация: 21.09.2009
Сообщений: 189
Популярность: 578
Сказал(а) спасибо: 27
Поблагодарили 144 раз(а) в 36 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Обновление почти готово...
Все таки как ни думали программисты Beijing, но откат на directx8 произвели. Нивалу, как всегда, достается версия, на которой сначала гамали игроки wanmei, потом игроки PWI. Так что большинство офсетов (если еще не передумают с версией) в шапке уже есть. Боты, настроенные на PWI, будут работать и на руофе.
Еще раз обновился китай 00BD8E54, 19.09.12 ...
Последний раз редактировалось sumikot; 19.09.2012 в 09:43.
|
|
|
20.09.2012, 18:07
|
#600
|
|
|
|
Разведчик
|
Регистрация: 27.06.2011
Сообщений: 30
Популярность: 351
Сказал(а) спасибо: 25
Поблагодарили 144 раз(а) в 13 сообщениях
|
Re: РУОФФ Адреса и оффсеты
Знает кто адрес "DialogOpAddr" для PWI?
Я нашёл его по адресу 0079EC48, НО при нём инжект происходит, и через 2-3 сек. крашится клиент (без ошибок, светофоров и т.д., просто убивается прооцесс игры)
Ещё нашёл вот эти значения:
DlgCancelPush = $00AE7F40; IdCancel
DlgNoPush = $00B006D4;
DlgYesPush = $00B006CC;
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 20:08.
|
|