PDA

Просмотр полной версии : [Руоф] Адреса и оффсеты


Kitsune
04.01.2011, 14:42
Оффсеты для текущей версии руофа

* Все адреса и оффсеты представлены в Hex(шестнадцатиричной системе).
* Размер ячейки по умолчанию 4b - dword / uint.

Термины / Аббревиатура / Справка:

BA - BaseAddress - Базовый адрес
GA - GameRun - начало игровой структуры
- Значение по адресу BA
Квадратные скобки [ ] означают, что берется значение по адресу, указанному внутри скобок.
GA = + 1C
Для чтения какого-то значения из памяти, обычно необходима целая цепочка оффсетов, пример такой цепочки:

BA +1C +20 +608 +0

Развернутый вид этой записи:

[[[[[BA] +1C] +20] +608] +0]

Пошаговая инструкция по чтению:


Читаем значение по адресу BA
Прибавляем к полученному значению 1C
Читаем значение по полученному адресу (1ое значение + 1С)
Прибавляем 20
Читаем значение
Прибавляем 608
Читаем значение
Прибавляем 0
Читаем значение



(+0)^J - специальный символ, отображающий количество (J) страниц (+0) в связанном списке.

Запись BA +218 +8 +[I*4] + (+0)^J +4 для разных значений J расшифровывается как:

J = 0: BA +218 +8 +[I*4] +4
J = 1: BA +218 +8 +[I*4] +0 +4
J = 2: BA +218 +8 +[I*4] +0 +0 +4
J = 3: BA +218 +8 +[I*4] +0 +0 +0 +4
J = 4: BA +218 +8 +[I*4] +0 +0 +0 +0 +4
J = 5: ...

Продолжать, пока не будут найдены все элементы. Элементы неравномерно распределены по всему массиву. Количество элементов можно посмотреть по адресу, указанному в первой строке описания каждой структуры.



Адреса / Оффсеты:

9C0E6C - BA
9C1514 - GA
9C1984 - UnfreezeFlag (0 - Inactive; 1 - Active)
9C2078+[(Lvl)*4] Exp for next Level.
9C4008 Start chat address
9C400С End chat address
9C4010 Max messages (199 - MaxMsg)
9C4014 Number of messages
9C4028 Number of messages (+ deleted)
9C4008 +[I*C+8] +0 - Messages (UText / Unicode String) (I in [0..N])

Структура игрока:
GA +20: HostPlayer Struct

+3C LocX (float)
+40 LocZ (float)
+44 LocY (float)
+7C See: +3C
+80 See: +40
+84 See: +44
+458 ID
+464 PlayerLvL
+46С HP
+470 MP
+474 Current EXP
+478 Current Spirit
+480 Fury
+494 Vit
+498 Int
+49C Str
+4A0 Dex
+4A4 MaxHP
+4A8 MaxMP
+4C4 Accuracy
+4C8 Min. P. Atk.
+4CC Max. P. Atk.
+500 Min. M. Atk.
+504 Max. M. Atk.
+508 Def. Metal
+50С Def. Wood
+510 Def. Water
+514 Def. Fire
+518 Def. Earth
+51C P. Def.
+520 Evasion
+524 MaxFury
+528 Money
+530 EquipWeapon
+534 EquipHelmet
+538 EquipNecklace
+53C EquipManteau
+540 EquipShirt
+544 EquipWaistAdorn
+548 EquipFootwear
+54C EquipBoots
+550 EquipWristBracer
+554 EquipRing1
+558 EquipRing2
+55С EquipProjectile
+560 EquipFly
+564 Equip BodyFashion
+568 Equip Legwear Fashion
+56C Equip Special Footwears
+570 Equip Arm Fashion
+574 Equip Head
+578 EquipPigment
+57C EquipSmiley
+580 Equip GuardianCharm
+584 Equip SpiritCharm
+588 EquipX1
+58C EquipGenie
+590 EquipX2
+598 Reputation
+5D4 ClanID
+608 +0 PlayerName (UText / Unicode String)
+610 ClassID
+614 Gender (1b) (0 - Male; 1 - Female)
+61C WalkMode (1b) (0 - Ground; 1 - Swiming; 2 - Flying)
+620 RunMode (1b) (0 - Walk; 1 - Run)
+668 Meditation (1b) (0 - Walking; 10 - Flying; 20 - Meditation)
+6C4 Skilling
+944 Time Mining
+9B4 HP Potion CD
+9BC MP Potion CD
+9E4 PlayerInfo CD
+9EC Pet Potion CD
+AF0 Duration of life/recall of a pet
+AF8 TargetID
+B3C GroundZ
+BF4 Jumping
+1074 +188 TargetX (float)
+1074 +18C TargetZ (float)
+1074 +190 TargetY (float)
+100C Number of active skills
+1024 Number of passive skills


[B]Структура членов группы:
+6A8 +14 +[I*4]: (I in [1..5])

+C PmId
+10 PmLvl
+1C PmHP
+20 PmMP
+24 PmMaxHP
+28 PmMaxMP
+34 PmLocX (float)
+38 PmLocZ (float)
+3C PmLocY (float)



+6C4 Skilling
+944 Time Mining
+9B4 HP Potion CD
+9BC MP Potion CD
+9E4 PlayerInfo CD
+9EC Pet Potion CD
+AF0 Duration of life/recall of a pet
+AF8 TargetID
+B3C GroundZ
+BF4 Jumping

Структура инвентаря:
+C3C +C +[I*4]
Структура снаряжения (надетые вещи):
+С40 +C +[I*4]
Структура инвентаря квестовых предметов:
+C44 +C +[I*4]
Структура снаряжения другого игрока (Просмотр игрока):
+C98 +C +[I*4]

+8 ItemID
+10 ItemNumber
+40 ItemDescription
(I in [0..24]):
00 - оружие (EquipWeapon)
01 - шлем (EquipHelmet)
02 - ожерелье (EquipNecklace)
03 - накидка (EquipManteau)
04 - плащ (EquipShirt)
05 - пояс (EquipWaistAdorn)
06 - штаны (EquipFootwear)
07 - обувь (EquipBoots)
08 - браслеты (EquipWristBracer)
09 - кольцо 1 (EquipRing1)
10 - кольцо 2 (EquipRing2)
11 - боеприпасы (EquipProjectile)
12 - полёт (EquipFly)
13 - стиль плащ (Body Fashion)
14 - стиль штаны (Legwear Fashion)
15 - стиль модная обувь (Special Footwears)
16 - стиль перчатки (Arm Fashion)
17 - стиль модная косынка (Head)
18 - книга (EquipPigment)
19 - рупор (смайлы) (EquipSmiley)
20 - амулет (Guardian Charm)
21 - идол (Spirit Charm)
22 - сборник цитат (EquipX1) *
23 - джинн (EquipGenie)
24 - брелок (EquipX2) *





Структура действия:
+FE0

+C Stand Action
+14 Current Action
+14 +10 P.Target ID *
+30 +4 MovePoint Action
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
+30 +8 MoveTarget Action
+30 +8 +20 Destination ID
+30 +10 +30 M.Target ID *
+30 +2C Mining Action
+30 +30 PetEvocative Action




Структура питимоца:
+FF8

+8 IsCalled? (FFFFFFFF - not Called, 0-9 Pet Number)
+38 CurrentPetID
+40 PetMode (0 - Defence, 1 - Agression, 2 - Manual)
[B]+[I*4 + 10]: Pet Array (I in [0-9] - Pet Cell)

+4 PetLoyalty
+8 PetHungry
+1C PetHP(%) (float)
+34 +0 PetName
+38 PetHP
+(J*10+34) PetSkill CD (J in [1..4])






Структура скилов:
+1008 +[I*4] (I in [0..N])

+4 Skill ID
+8 Skill ID
+C Skill Lvl
+10 Skill Cool Down
+14 Skill Max Cool Down





Структура / Список игроков рядом:
GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])

GA +8 +20 +14: - Players count
+3C PlayerLocX (float)
+40 PlayerLocZ (float)
+44 PlayerLocY (float)
+35C + [I*2] PlayerBuffs (I in [0..N]) (1b)
+360 PlayerBuffs Number
+458 PlayerId
+464 PlayerLvl
+46C PlayerHP
+470 PlayerMP
+4A4 PlayerMaxHP
+4A8 PlayerMaxMP
+5D4 PlayerClanID
+608 +0 PlayerName (UText / Unicode String)
+610 PlayerClassID
+614 PlayerGender
+61C PlayerWalkMode
+620 RunMode (1b) (0 - Walk; 1 - Run)
+6С8 PlayerMTargetID



Структура / Список мобов:
GA +8 +24 +18 +[I*4] + (+0)^J +4: (I in [0..300])

GA +8 +24 +14: - Mobs count
+3C MobLocX (float)
+40 MobLocZ (float)
+44 MobLocY (float)
+B4 MobType (6 - mob; 7 - NPC; 9 - Pet)
+11C MobWorldID
+120 MobID
+12C MobHP
+164 MobMaxHP
+225 MobFeature (0- None; 1 - Accelerating; 2 - Pacifist; 3 - Enh. physical protection; 4 - Enh. magical protection; 5 - Enh. physical attack; 6 - Enh. magical attack; 7 - Berserk; Enh. Life; 9 - Weakness)
+240 See: +225
+24C +0 MobName (UText / Unicode String)
+2B8 MobAction (1 - Passive; 2 - P. Attacks; 3 - M. Attacks; 4 - Dies; 5 - Moves)
+2D4 MobPTargetID
+2D8 MobMTargetID
+2DC Mob Attack flag (1b)
+310 + [I*2] MobBuffs (I in [0..N]) (1b)
+314 Mob Buffs Count



Структура / Список лута:
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)



Первоисточник информации © GrieVeR-13 ([Ссылки могут видеть только зарегистрированные и активированные пользователи]).

alonwoolf
19.01.2011, 04:48
Еще помнится мелькала такая фигня как длинна имени моба
а есть такая тока для игрока?

DAcorp
25.01.2011, 02:07
Еще помнится мелькала такая фигня как длинна имени моба
а есть такая тока для игрока?

Максимальная длинна имени игрока 10 символов (если не ошибаюсь, конечно). При извлечении значения в массив, лично у меня получается, что каждая буква в имени персонажа ложится в каждый второй порядковый номер массива. Т.е. ник игрока Test в массиве выглядит так:

Data[0]='T';
Data[2]='e';
Data[4]='s';
Data[6]='t';

Соответсвенно чтобы обозначить конец имени персонажа, можно использовать цикл, скажем:

i:=0;
Repeat
NameOfChar:=NameOfChar+String(Data[i]);
i:=I+2;
until Ord(Data[i])=0;

Kitsune
25.01.2011, 11:49
alonwoolf, не нужна длина имени моба или любой строки. Клиент использует UnicodeString c нулевым прерывателем в конце.

DAcorp, Вашим методом, русский ник не прочитается.

Правильно делать так:
1. Читаем память заданного размера, к примеру 32 байта - это 16 символов.
2. Преобразуем байты в UnicodeString
3. Если строка содержит 00 ( '\0' ), как в делфи выглядит х3, тогда режем от начала строки до положения '\0'
Если не содержит, значит оставляем как есть.

DAcorp
25.01.2011, 15:32
DAcorp, Вашим методом, русский ник не прочитается.
Спапибо! На днях попробую реализовать!
Я под свой вариант делал так, русские символы нормально читало:


...
if Ord(Data[0])<80 then NameOfChar:=NameOfChar+Chr(Ord(Data[0])+176)
else NameOfChar:=NameOfChar+String(Data[0]);
...


Пользуясь случаем задам вопрос на счёт этого:
9C2078+[(Lvl)*4]
GA +8 +28 +18 +[I*4]
Не могу понять что есть [(Lvl)*4] и [I*4] и как это реализовать :question:

Kitsune
25.01.2011, 15:40
DAcorp,
9C2078+[(Lvl)*4] = 9C2078+[(свой уровень, к примеру: 50)*(умножить на )4] = 9C2078 + 200.

С I тоже самое, только вместо I - значение итератора.

DAcorp
25.01.2011, 15:58
TBX1n, странно... Я в принципе тоже так подумал... Но когда описал, хрень какая-то вылезла за место 7400... Лан, буду искать ошибку, спасибо!

BotDruLife
19.02.2011, 20:57
В структуре членов группы не понятно... может там
"+6C4 Skilling
+944 Time Mining и т.д." по ошибке прописались...

Конечно формировать пати из ботов - это уже перебор, но если есть информация, то лучше ее все же загнать в заголовочный файл...

BiG_BoY
21.02.2011, 09:35
Вопрос: а как это всё делать(через какую программу) и что с помощью этого можно сделать.

Dinmaite
21.02.2011, 12:19
Что "все это"?

UniDemoN
21.02.2011, 14:44
Максимальная длинна имени игрока 10 символов (если не ошибаюсь, конечно).


9:)

Добавлено через 3 минуты
Что "все это"?

Наверное он имел ввиду "как находить адреса и оффсеты?", и "для чего это нужно?":)

BiG_BoY
21.02.2011, 16:19
Я так понял что в этой теме выложенны некие параметры игры, то есть использую эти адреса и оффсеты мы можем изменить ту или иную характеристику игры.

Dinmaite
21.02.2011, 16:39
Изменить далеко не каждую, считать любую.
Вообще эта тема для разработчиков, пишущих ботов.

gurin
22.02.2011, 11:28
Никто не знает какие значения может принимать


+2DC Mob Attack flag (1b)


И можно ли узнать как-то чем моб собирается ударить?

Поясню для чего это нужно. Хочу автоматизировать процесс сбивания каста у боссов.

BotDruLife
22.02.2011, 21:26
Дополнение: оффсеты связаны с ориентацией песа в пространстве. Ось Z всегда равна 0, когда игрок "на двух ногах", и начинает изменяться когда становится на "четыре лапы".

// GA + 0x20 +
float AngleX; // 0x0c
float AngleZ; // 0x10
float AngleY; // 0x14

bobik13
23.02.2011, 17:32
Ребят подскажите мне чуток...
Я пытаюсь розобратся в оффсетах и инжектах .. сложновато не понимая языков програмирования это сделать но всеже если можно наведите простенький пример как это сделать в UoPilot чтобы персонаж топал по заданым координатам, на 2 -3 точки по очереди...
Пытаюсь сделать фармящего бота в хх для себя. (сбор пати из 4 человек(инжекты есть на приглашение в отряд по ид перса у вас) потом топать по точкам к подземелью, там тыкать на столбы (розговор с нпс тож в инжектах видел), подойти к питу хотябы 2 персами, 1 хил и 1 атакует, в конце сбор лута.
Довести до автоматизма и мона не высиживать по 2-3 часа на фарме ))

Пожалуйста если у кого были розработки или есть что подсказать помогите :notme:

Dinmaite
23.02.2011, 18:16
Без знания языков программирования Вы ничего не сделаете.
Начните с малого.

bobik13
23.02.2011, 19:23
readmem #BA 0098B47C dword ;
set #tChar #BA + 32;
readmem #Char #tChar dword ;
set #target #Char + 2780;

опередили Баз Адрес, и таргет, а вот как имитировать щелчк мышки в точку координат игры хз (

Добавлено через 15 часов 12 минут
плиз ребят простенький скриптик в пример напишите (действия: топать на точку А, потом на Б, и на С, возле точки С начать диалог с нпс)
Я буду колупать уже в том направлении
Етж возможно в пилоте состряпать?

alonwoolf
09.03.2011, 02:53
еще вопрос никто не знает где лежит такая вещь как параметр в сети ты или разорвано соединение с сервом??

VeTaL_UA
09.03.2011, 20:51
в сети ты или разорвано соединение с сервом
А зачем так парится? Просто сделай релогин при рассоединении...

BotDruLife
22.03.2011, 23:10
Распишите поподробнее как узнать кулл даун у скилла пета в строчке:

+(J*10+34) PetSkill CD (J in [1..4]) (наверняка в этой структуре есть и ид скилла....)

По пунктам и подробно...

1) считал PetLoyalty
2) считал PetHungry
3) считал PetHP
4) считал указатель на PetName
5) считал PetHP
6) +(J*10+34) PetSkill CD (J in [1..4]) - э-э-э-э....что делать что бы узнать куллдаун?

alonwoolf
27.03.2011, 20:55
VeTaL_UA, либо ты меня не понял либо я тебя
опиши подробнее где и как делать этот релогин((

я имелл ввиду что стоит магаз а инет лажовый, и чтоб програмка сама пере запускала или релогин в пв и ставила магаз снова

вот 2 е я сделал и логин сделал ))
не могу найти оффсет на коннект и все((

Dinmaite[Work]
27.03.2011, 21:08
Возьми да и проверь подключение по протоколу и не парься особо.

alonwoolf
27.03.2011, 21:18
понимаешь в чем трабла конект всегда есть тк через роутер
и еще из 4х может слетать полько 1 окно почему хоть убей не понимаю под ХР такого не было

VeTaL_UA
27.03.2011, 22:01
под ХР такого не было
А может у тебя сборка винды кривая? Правда когда у меня кривая стояла, то все окна слетали сразу, а у тебя только одно....
Мистика...
конект всегда есть
А ты проверяй коннект в самом PW...

alonwoolf
27.03.2011, 22:09
А ты проверяй коннект в самом PW...

:brberbrb:А еще раз нубу обьясни как в самом пв проверить, если меня за компом нет, например
(я просто уверен есть параметр подключения)

alonwoolf
28.03.2011, 23:53
что никто не знает? или не хочет((

на пред. тему
сорь что долго времени не было
TBX1n, я так и делал разве что не резал конец при преобразовании юникод его отбрасывает, только вот есть имена >16 символов, это конечно прихоть и так рабит, но если пытаться прочитать больше то вылет

Dinmaite
29.03.2011, 00:17
Если ты уверен что есть параметр подключения так найди его.

alonwoolf
29.03.2011, 00:23
я ищу ... а толку
блин ну народ пишет реконектор онже както определяет есть ли конект илинет

Dinmaite
29.03.2011, 00:26
Хреново ищешь.
Статический адрес $9C4FB8
Тип byte
Значения
Онлайн значение+1 (при нормальной работе 1)
Оффлайн 0.

alonwoolf
29.03.2011, 00:31
Спс огромное
кстать я приближался всего посотни осталось перебрать, и дошел бы до него(((
так быстрее

pwgamer
12.04.2011, 23:41
Кто нибудь уже новые офсеты нашел?

Dinmaite
13.04.2011, 00:37
Кто-нибудь нашел, но это вовсе не значит что их выложат на блюдечке с голубой каемочкой сразу же.

pwgamer
13.04.2011, 00:45
BA такой A5B90C, вот GA не могу найти, может кому пригодится

Python
13.04.2011, 01:35
Кто нибудь уже новые офсеты нашел?
Вот первопроходец semoder ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Версия клиента 167
Структура игрока (BA+1C+20) сдвинулась на (+8 байт) начиная с адреса (460)
а затем еще на (+8 байт) начиная с адреса (4А4)
и от адреса (958) сдвиг еще на (+4 байта)

Это смещения относительно известных мне переменных.


A5C43C - Unfreeze Flag
A5CAE8 - Опыт*уровень
430D9B - Unfreeze для изменения

A60358 - Начало чата. Но там дурдом, еще не лазил.


p.s.
Вроде своему боту офсеты и инжекты восстановил.
Завтра будет глобальное тестирование.

Kaftan
13.04.2011, 10:11
Вот первопроходец semoder ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Версия клиента 167
Структура игрока (BA+1C+20) сдвинулась на (+8 байт) начиная с адреса (460)
а затем еще на (+8 байт) начиная с адреса (4А4)
и от адреса (958) сдвиг еще на (+4 байта)

Это смещения относительно известных мне переменных.


A5C43C - Unfreeze Flag
A5CAE8 - Опыт*уровень
430D9B - Unfreeze для изменения

A60358 - Начало чата. Но там дурдом, еще не лазил.


p.s.
Вроде своему боту офсеты и инжекты восстановил.
Завтра будет глобальное тестирование.

Ты как оттестиш отпишись плиз, очень интересно!

Python
14.04.2011, 00:51
Все заработало!!!
кроме чата (еще не смотрел).

VitMitS
14.04.2011, 04:45
Народ не могу найти смешение на ник перса( помогите плиз.

zaparca
14.04.2011, 10:45
playerNameOffset=0x618

Lexxy85
14.04.2011, 11:20
Извиняюсь, а адрес куда посылать пакеты на РуОф уже вычислен?
Это тот, который раньше был: $005D7C30.
Вроде как нашел тут кто-то написал: $0060E310.
Клиент падает после посылки туда пакета((

И кстати, есть мануал по его нахождению.. Ткните носом плз, если уже было на форуме..

VitMitS
14.04.2011, 16:10
playerNameOffset=0x618
+608 +0 PlayerName (UText / Unicode String)
исходя и этого видимо должно быть так:
+618 +0 PlayerName (UText / Unicode String)
немогу понять формулу что к чему прибавить, что есть ссылка и где данные о Нике перса
Имя своего перса я вижу утилитой Cheat Engine но адреса по которым находятся имена, их там несколько, не получается сложить из тех данных что я читаю в GA +20 +618 +0. Распешите плиз как правельно получить адрес ни ник перса, не че не пойму. Сильно не пинайте я новенький в этой облости.
P.S. Как выглядит ник перса в памяти я понял: хх00хх00хх00хх00хх00хх00хх00хх00(так отображается мой, под хх значения), поэтому пытаюсь найти ссылку именно на это значение, но чето не чего не выходит

Добавлено через 1 час 5 минут
Пытаюсь делать так: язык VBnet

Dim Data2(5999) As Byte
On Error GoTo 0
On Error Resume Next
ReadPM(hProc, DataGameRunPers_s, Data2, 6000)
Dim DataGameRunPersL_Y As Integer = Data2(71) * 65536 + Data2(70) * 256 + Data2(69)
Dim DataGameRunPersL_Z As Integer = Data2(67) * 65536 + Data2(66) * 256 + Data2(65)
Dim DataGameRunPersL_X As Integer = Data2(63) * 65536 + Data2(62) * 256 + Data2(61)
Dim DataGameRunPersLVL As Integer = Data2(1132)
Dim DataGameRunPersHP As Integer = Data2(1141) * 256 + Data2(1140)
Dim DataGameRunPersMP As Integer = Data2(1145) * 256 + Data2(1144)
Dim DataGameRunPersHPmax As Integer = Data2(1205) * 256 + Data2(1204)
Dim DataGameRunPersMPmax As Integer = Data2(1209) * 256 + Data2(1208)
Dim DataGameRunPersSpirit As Integer = Data2(1161) * 256 + Data2(1160)
'1560
Dim DataGameRunName_s As Integer = Data2(1563) * 16777216 + Data2(1562) * 65536 + Data2(1561) * 256 + Data2(1560)

Dim Temp2(31) As Byte

On Error GoTo 0
On Error Resume Next
ReadPM(hProc, DataGameRunName_s, Temp2, 32) '


И так пытаюсь делать, и не чего не Выходит :sad:

ReadPM(hProc, DataGameRunPers_s + DataGameRunName_s, Temp2, 32) '


Один мусор в буфере

pwgamer
14.04.2011, 19:08
GA +20 +618 +0 0 не надо. У меня читает так GA +20 +618

Добавлено через 2 минуты
Это тот, который раньше был: $005D7C30.
Вроде как нашел тут кто-то написал: $0060E310. Да верный оффсет.

VitMitS
14.04.2011, 20:01
0 не надо. У меня читает так GA +20 +618

:bl: Гы я вехал, код выше указанный рабочий это я нуб xDD
Вопрос на засыпку, как теперь отобразить верно в VB на лабеле Руские буквы звездочки и всякую **** :reddy:

Lexxy85
15.04.2011, 11:29
И правда пакеты по адресу: $0060E310 проходят. Объясните, почему, когда адрес храню в переменной - клиент вылетает, а когда в константе - все ок (Delphi)?
И еще надоем немного, а адрес по, которому Скиллы посылать знает кто? (который был: $0045DCD0)

semoder
15.04.2011, 12:02
Skill_Call $0045DCD0 поменялся на $0045F550

Araym
16.04.2011, 16:35
Можете скинуть пожалуйста новые оффсеты для SmurfIt?:sad:

Bot11
18.04.2011, 20:26
искал офсеты не мог найти...на сайте они по запчастям разбросаны
для простого неразберающегося народа напишу))

[Perfect_World_Base_Address_In_Decimal]
Application_Title=Perfect World
Base_Address=10862540
[Custom_32_Offsets_In_Decimal]
TargetID_Offset=2828
MaxMP_OffSet=1208
MaxHP_Offset=1204
MP_Offset=1144
HP_Offset=1140
Target_OffSet=2568



модераторы не удаляйте...так как таких людей кто не может разобраться в непонятных символах и цифрах очень много.... а так их очень просто заменить в файле Custom_OffSets.txt

gurin
07.05.2011, 01:31
никто не подскажет новые адреса для "Структура / Список игроков рядом"?

belazzz
08.05.2011, 18:50
Помогите пожалуйста, испытываю трудности с чтением координат игрока.
Я так понимаю, они имеют формат Double? Как тогда считанный массив байтов преобразовать в значение соответствующего типа?

Dinmaite
08.05.2011, 19:00
Формат - Single

belazzz
08.05.2011, 20:01
Формат - Single

Спасибо за подсказку, с координатами разобрался!

Меня ввело в заблуждение то, что реальные координаты не совпадают с отображаемыми в игре.

Может кому-то будет полезно:

x := Trunc(GetCharPosX/10 + 400);
y := Trunc(GetCharPosY/10 + 550);
z := Trunc(GetCharPosZ/10);

alonwoolf
18.05.2011, 03:20
обновите плиз

DAcorp
14.06.2011, 05:30
Подскажите, пожалуйста, как получить название гильдии чара из списка игроков рядом? по адресу 700 получаю китайские иероглифы. Guild ID получаю нормально. На ПВ-Лабе не понял, куда парень обращался, чтобы по GID найти название.
-----------------------------------------------------------------------------
Прошу прощения, но вопрос решён) Спасибо!

ldconfig
11.07.2011, 16:29
чпок

#pragma once

#include <stdint.h>

#pragma pack(push,1)
struct RawPlayer
{
int32_t _unknown_1[282];
int32_t Id; //0x468
int32_t Lvl;
int32_t _unknown_2[1];
int32_t HP;
int32_t MP;
int32_t Exp;
int32_t Spirit;
int32_t sAval;
int32_t _unknown_3[7];
int32_t Vit;
int32_t Int;
int32_t Str;
int32_t Dex;
int32_t MaxHP; //0x4b4
int32_t MaxMP;

//Дальше хз
};
struct RawInfo
{
int32_t _unknown_1[8];
RawPlayer * player;
};
struct RawGame
{
int32_t _unknown_1[7];
RawInfo * info;
};
struct RawBase
{
RawGame * game;
};

#pragma pack(pop)

VitMit
12.07.2011, 17:35
Народ по тем офсетам что даны в начале, с учетом сказанного Python я могу прочитать токо структуру игрока, подскажите как прочитать структуры игроки рядом, мобы рядом, лут.

/GeG/
15.08.2011, 15:28
Структура инвентаря квестовых предметов:
+C44 +C +[I*4]

Структура действия:
+FE0

+C Stand Action
+14 Current Action
+14 +10 P.Target ID *
+30 +4 MovePoint Action
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
+30 +8 MoveTarget Action
+30 +8 +20 Destination ID
+30 +10 +30 M.Target ID *
+30 +2C Mining Action
+30 +30 PetEvocative Action

Структура / Список игроков рядом:
GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])

Структура инвентаря:
+C3C +C +[I*4]
кто знает, дайте пожалуйста обновленные значения (нужные выделены) для текущей версии руоффа

VeTaL_UA
15.08.2011, 16:40
/GeG/, почитай здесь ([Ссылки могут видеть только зарегистрированные и активированные пользователи])...

/GeG/
15.08.2011, 19:37
спасибо за ссылку, нашёл там всё кроме

Структура действия:
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY

VeTaL_UA
15.08.2011, 19:58
Структура действия:
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
Что-то я не доганяю, что это за оффсеты...

/GeG/
16.08.2011, 14:20
а всё, эти не менялись, просто я нуб.
P.S. Что с pwlab случилось? не заходит.

VeTaL_UA
16.08.2011, 22:19
P.S. Что с pwlab случилось? не заходит.
Такое бывает... Попробуй через анонимайзер...

Jok3r666
18.08.2011, 16:45
Народ адреса актуальны? А то туплю по дикому, уже мозг взрывается сижу часа 3 а эфекта ноль.

const
base_addr=$9C0E6C;
hp_offset=$46C;

var
WndHndl:THandle;
hp:integer;
ipbuf,PID,hProcess,BytesCount:dword;
begin
WndHndl:=findwindow('ElementClient Window',nil);
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);

if hProcess <> 0 then // Проверяем получили ли мы идентификатор объекта
try
ReadProcessMemory(hProcess, ptr(base_addr), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$20), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+hp_offset), @hp, sizeof(hp), BytesCount);
showmessage(inttostr(hp));
finally
closehandle(hProcess);
end;

Грешу на
WndHndl:=findwindow('ElementClient Window',nil);
:bow:Мозг кипит

Выдает "3"

semoder
18.08.2011, 17:41
Оффсеты старые))
Base_add 0xA5BFCC
hp_offset 0x474

Jok3r666
18.08.2011, 18:12
Base_add 0xA5BFCC
hp_offset 0x474
Еще несколько вопросов
1. Где взять актуальные офсеты
2. Как 0xA5BFCC привести к виду $9C0E6C? 0х вроде как говорит что это хекс если я правильно помню, значит в делфи должно быть $A5BFCC? но чет не канает.
На счет п2 разобрался просто A5bfcc не base adr a [ba]+$1c
3. $1C, $20 актуальны?
П3 отпадает сам собой

semoder
18.08.2011, 18:42
1. Актуальные оффсеты есть на pwlab.ru, либо поиск с помощью Cheat Engine
2. Тогда:
$A5B90C+$1C+$20+$474
или
$A5BFCC+$20+$474
Смотря как захочется тебе =)

Если не открывается pwlab.ru, вот ([Ссылки могут видеть только зарегистрированные и активированные пользователи] %D0%B4%D1%80%D0%B5%D1%81%D0%B0+%D0%B8+%D0%BE%D1%84 %D1%84%D1%81%D0%B5%D1%82%D1%8B&cd=1&hl=ru&ct=clnk&gl=ru&source=[Ссылки могут видеть только зарегистрированные и активированные пользователи]) сохранённая копия в гугле

Хакерок:)
18.08.2011, 19:51
Еще несколько вопросов
1. Где взять актуальные офсеты
2. Как 0xA5BFCC привести к виду $9C0E6C? 0х вроде как говорит что это хекс если я правильно помню, значит в делфи должно быть $A5BFCC? но чет не канает.
На счет п2 разобрался просто A5bfcc не base adr a [ba]+$1c
3. $1C, $20 актуальны?
П3 отпадает сам собой
Актуальные оффсеты можно найти самому. На форуме есть тема, в которой по шагам расписано как искать оффсеты в Cheat Engine.
Если тебе еще нужны HP и MP оффсеты, то лови:
MaxHP: [[$A5BFCC + $20] + $4B4]
HP: [[$A5BFCC + $20] + $474]
MaxMP: [[$A5BFCC + $20] + $4B8]
MP: [[$A5BFCC + $20] + $478]

Jok3r666
19.08.2011, 07:40
Подскажите пожалуйста.
+B2A; - NPCActiveStatus (1b) (1 - active; 0 - inactive;)
+624 - Gender Что возвращают?
+11C MobWorldID В чем разница или что из них что обозначает?
+120 MobID
Есть ли офсет на проверку стоит ли таргет в коте, или просто стоит ли в коте перс? в таргете он или нет и так можно узнать.

obiov
16.09.2011, 15:04
Привет народ) может кто знает offsets на массив квестов) (в частности что бы получить количество убиенных квестовых монмтров). Буду очень признателен). Спасибо.

_DVD_
24.09.2011, 09:49
Подскажите адрес клан листа кто знает. Может у кого еще остались материалы с pwlab выложите куда-нибудь плз.

VeTaL_UA
24.09.2011, 10:07
Может у кого еще остались материалы с pwlab выложите куда-нибудь плз.
У меня осталась сохраненная копия Google ([Ссылки могут видеть только зарегистрированные и активированные пользователи] %D0%B4%D1%80%D0%B5%D1%81%D0%B0+%D0%B8+%D0%BE%D1%84 %D1%84%D1%81%D0%B5%D1%82%D1%8B&cd=1&hl=ru&ct=clnk&gl=ru&source=[Ссылки могут видеть только зарегистрированные и активированные пользователи]) /problem

_DVD_
24.09.2011, 10:12
У меня осталась сохраненная копия Google ([Ссылки могут видеть только зарегистрированные и активированные пользователи] %D0%B4%D1%80%D0%B5%D1%81%D0%B0+%D0%B8+%D0%BE%D1%84 %D1%84%D1%81%D0%B5%D1%82%D1%8B&cd=1&hl=ru&ct=clnk&gl=ru&source=[Ссылки могут видеть только зарегистрированные и активированные пользователи]) /problem

хм..у меня твоя ссылка не пашет

semoder
24.09.2011, 12:27
Хах, пичально, кэш пвлаба вроде начал затираться...

Dremalka
27.09.2011, 14:06
Здравствуйте!
Подскажите, пожалуйста, каким образом получить имя персонажей, которые находятся в пати? Оффсет на структуру членов группы я нашел (GA +20 +6B8). Но в этой структуре находится только ID персонажа. А вот как имя найти, не могу понять.
Теоретически имя можно выцепить из структуры игроков, которые находятся поблизости. А как определяется имя персонажа в пати, если он находится на другом конце карты?

VictorPr
03.10.2011, 01:50
Друзья, если не трудно, помогите, плиз.
1. Как наиболее просто определить тип объекта, находящегося в тагете? Мне надо понимать, находится ли в тагете какой-то перс или там что-то другое (НИП, Моб, Пет, Рес и т.д.) Есть ли более простой способ решения этой задачи, чем полный перебор по «Списку игроков рядом» с проверкой PlayerId == TargetID?


2.

Структура / Список игроков рядом:
GA +8 +20 +18 +[I*4] + (+0)^J +4: (I in [0..300])

GA +8 +20 +14: - Players count
……..

Объясните, плиз, Players count – это максимальное значение по I или по J? Вообще, как правильно определять диапазон изменения I и J в этом описании?


3. Есть чисто спортивный интерес по вопросу, связанному с:

Структура действия:
+FE0


Известно (см. исходник от Prophet Bot), что с помощью несложных манипуляций с параметрами

MoveInteractWithAction RBASE+0x1C+0x20+0xff4+0x30+0x4
MoveAction_finished RBASE+0x1C+0x20+0xff4+0x30+0x4+0x8
MoveType RBASE+0x1C+0x20+0xff4+0x30+0x4+0x2C
SetNextAction RBASE+0x1C+0x20+0xff4+0x18
SetNewActionType RBASE+0x1C+0x20+0xff4+0x14
MoveX RBASE+0x1C+0x20+0xff4+0x30+0x4+0x20
MoveZ RBASE+0x1C+0x20+0xff4+0x30+0x4+0x24
MoveY RBASE+0x1C+0x20+0xff4+0x30+0x4+0x28

можно заставить перса перемещаться в точку с заданными координатами.
А можно ли где-то посмотреть пример, как с помощь параметров

ActionList RBASE+0x1C+0x20+0xff4+0x30
CastInteractWithAction RBASE+0x1C+0x20+0xff4+0x30+0x8
CastActionFinished RBASE+0x1C+0x20+0xff4+0x30+0x8+0x8
CastActionStart RBASE+0x1C+0x20+0xff4+0x30+0x8+0x14
CastActionNotStart RBASE+0x1C+0x20+0xff4+0x30+0x8+0x24
CastObjectID RBASE+0x1C+0x20+0xff4+0x30+0x8+0x20
CastXCoordOfObject RBASE+0x1C+0x20+0xff4+0x30+0x8+0x28
CactZCoordOfObject RBASE+0x1C+0x20+0xff4+0x30+0x8+0x2C
CastYCoordOfObject RBASE+0x1C+0x20+0xff4+0x30+0x8+0x30
CastTyypeOfAction RBASE+0x1C+0x20+0xff4+0x30+0x8+0x38
CastSetError RBASE+0x1C+0x20+0xff4+0x30+0x8+0x34
CastSkillPointer RBASE+0x1C+0x20+0xff4+0x30+0x8+0x50
NewActionType RBASE+0x1C+0x20+0xff4+0xC
SetNextAction RBASE+0x1C+0x20+0xff4+0x18

заставить перса кастовать нужный скилл? Кастовать с помощью инжекта с вызовом подпрограммы 0x0045F550 я умею и хочу научится делать это же самое другим способом.

4. И последнее. Можете здесь запостить актуальную структуру и оффсеты "Списка игроков рядом"
без отсылки на не работающий PWLab? Заранее благодарен

whoami
20.10.2011, 10:04
Ну что, коллеги читеры, давайте уже делиться новыми оффсетами, адресами и т.д. =)

N00bSa1b0t
20.10.2011, 12:08
новыми оффсетами, адресами
Говорят, русский генезис обогнал пви, и теперь наши оффсеты совпадают с китаем.

semoder
20.10.2011, 12:55
На данный момент оффсеты руоффа(генезис) и китай различны))

whoami
20.10.2011, 13:36
Пока так:
BaseAddr = 0x00b27a04
GameRun = 0x00b280c4

BritishColonist
20.10.2011, 13:45
что? теперь опять ни хрена работать не будет? : D
*побежал делать правки*

semoder
20.10.2011, 13:50
1. Root Address:0xB27A04
2. Base Address:0xB280C4
3. Packet Address:0x6737B
4. Target Offset:0xB68
5. Pet Offset:0x1068
6. HP Offset:0x490
7. Class Offset:0x640
8. Name Offset:0x638
9. CharID Offset:0x47C
10. Level Offset:0x488
11. MP Offset:0x494
12. MaxHP Offset:0x4D0
13. MaxMP Offset:0x4D4
14. Exp Offset:0x498
15. Unfreeze_Address:0xB28534
16. Jump_Offset=0xC64
17. CastID_Offset=0x6F4
18. State_Offset=0x698
19. Reputation_Offset=0x5C8
20. Gold_Offset=0x554
21. MaxCHI_Offset=0x550
22. CHI_Offset=0x53C
23. Spirit_Offset=0x49C
24. EXP_Offset=0x498
25. Culti_Offset=0x48C
26. TargetID_Offset=0x390

whoami
20.10.2011, 13:56
Ну и ещё смещение самой структуры хоста - 0x34 вместо 0x20

VictorPr
20.10.2011, 16:57
Const // Для инжекта перемещения перса
WALK_CALL1 = $0046E410; // $00469F00; // old 00468070
WALK_CALL2 = $004728E0; // $0046E090; // old 0046BCB0
WALK_CALL3 = $0046E880; // $0046A340; // old 00468470
WalkMode_offset = $64C; // $62C // (1b) 0 - бег, 1 - плывем, 2 - летим
Action_Offset = $1050; // $FF4; // Old FE0

Добавлено через 3 минуты

22. CHI_Offset=0x53C

Я пользуюсь CHI_Offset= $4A4; // (+1C r к старому адресу $488)

loa
20.10.2011, 17:10
Да оффсет для текущего показателя чи $4A4
Оффсет для надетого оружия:
OffsetGamerEquipWeapon = $55C;

Еще вопрос, как вы ищете оффсет имени персонажа?

VictorPr
20.10.2011, 18:19
Да оффсет для текущего показателя чи $4A4
Оффсет для надетого оружия:
OffsetGamerEquipWeapon = $55C;

Еще вопрос, как вы ищете оффсет имени персонажа?
Я немного не понял вопрос. semoder привел правильное смещение
8. Name Offset:0x638
где находится адресс начала null-terminated строки с именем персонажа в расширенной кодировке (2 байта на символ)

BritishColonist
20.10.2011, 19:25
он имел в виду процесс поиска.
действительно, интересно.
а вообще, делаешь ник аля "лаоловыа1" (строку, которая точно нигде не повторится), ищешь её в памяти.
адрес одной из найденных строк (да-да, их обязательно будет несколько) будет немного больше, чем адрес начала структуры игрока. остальные строки, как мне кажется, лежат в интерфейсе.

loa
20.10.2011, 19:28
ну я нашел адрес ника в памяти клиента, при смене персонажа ник там менялся, но привязать к структуре игрока этот адрес, через оффсет у меня не получилось.

semoder
20.10.2011, 20:02
Пример получения имени, на AutoIt, на других языках-хз))
Func GETNAME()
Return _MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD($B ASEADD_1C, $MEMID) + 52, $MEMID) + $OFFSET_NAME, $MEMID), $MEMID, "wchar[9]")
EndFunc

obiovn
21.10.2011, 02:21
Сеты отката бутылок и аптеки:

PW_ROLE_REDLEFT_OFFSET =$a0c;//9c8;
PW_ROLE_BLUELEFT_OFFSET=$a14;//9d0;
PW_ROLE_PINK_OFFSET=$9cc;//988;
PW_ROLE_WATERLEFT_OFFSET=$a5c;//a18;

еще:
PW_ROLE_BAF_COUNT_OFFSET = $370; (тоже самое на $36с )
PW_ROLE_FLY_MEDITATION_OFFSET = $698;// медитация=32 ; полет=16
PW_ROLE_PEACE_ZONE_OFFSET = $5d4;
PW_ROLE_MAGIC_COUNT_OFFSET=$1080;//1020;
PW_ROLE_SPEED_GROUND_OFFSET = $914;//8d0;
PW_ROLE_SPEED_FLY_MAX_OFFSET = $4ec;//4d0;
PW_ROLE_GROUND_SPEED_MAX_OFFSET = $4e4;//4c8;
PW_ROLE_X_OFFSET = $3c;
PW_ROLE_Z_OFFSET = $40;
PW_ROLE_Y_OFFSET = $44;
PW_SEND_PACK_CALL=$6737B0;

Сумка,Экипировка,Квесты:
PW_ROLE_INVENTORY_OFFSET = $cac;//c50;
PW_ROLE_EQUIPMENT_OFFSET = $cb0;//c54;
PW_ROLE_QUEST_OFFSET = $cb4;

smpsv
21.10.2011, 08:34
Еще раз сори конечно, никто не мог бы привести рабочие офсеты для руофа генезис? :(:( Все послетало, сканеры адресацию вроде как выдают, но инжектить не получается... Не работает.

Заранее спс.

Dremalka
21.10.2011, 09:48
Структура максимального опыта для каждого уровня перса
B28C40+[(Lvl)*4] Exp for next Level.

pwgamer
21.10.2011, 10:55
Не как не могу взлететь было GА+20+570, стало GА+34+? Кто уже разобрался?

Python
21.10.2011, 11:05
Не как не могу взлететь было GА+20+570, стало GА+34+? Кто уже разобрался?
В этом районе сдвиг офсетов на 1С
Складываем и летаем :)

loa
21.10.2011, 11:55
попробовал пофиксить джамп, откидывает короче :(

pwgamer
21.10.2011, 12:07
В этом районе сдвиг офсетов на 1С
Складываем и летаем :)

Прибавил к 570+1С, получилось 58С. Гад не взлетает.

Dremalka
21.10.2011, 13:57
Структура инвентаря:
+744 +5E8 +34 +[I*4]

Добавилось еще одно смещение. Или я может нашел не самый правильный вариант?

obiovn
21.10.2011, 15:50
Сумка,Экипировка,Квесты:
PW_ROLE_INVENTORY_OFFSET = $cac;//c50;
PW_ROLE_EQUIPMENT_OFFSET = $cb0;//c54;
PW_ROLE_QUEST_OFFSET = $cb4;

semoder
21.10.2011, 18:31
Кто может подсказать инжекты:
1)Юз джина
2)Подбор предмета
Func ASM_PICKITEM($ID, $SN)
$OPCODE = ""
PUSHAD()
MOV_EDX_DWORD_PTR($BASEADD)
PUSH($ID)
PUSH($SN)
MOV_ECX_DWORD_PTR_EDX_ADD(32)
$OPCODE &= "81c1ec000000"
MOV_EDX($XXXXXX)
CALL_EDX()
POPAD()
RET()
INJECTCODERUN($PID)
EndFunc
3)Копание реса

Ипоню мозг пол часа, никак не могу найти 0_О

obiovn
21.10.2011, 18:40
Сеты на массив лута накопал кто то? подскажите буду очень благодарен). Спасибо)

semoder
21.10.2011, 18:58
$ITEM_ADD = _MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_M EMORYREAD($BASEADD, $MEMID) + 28, $MEMID) + 28, $MEMID) + 40, $MEMID) + 24, $MEMID)
For $I = 0 To 768
$ITEM_BUFFER_ADD = _MEMORYREAD($ITEM_ADD + $I * 4, $MEMID)
If $ITEM_BUFFER_ADD <> 0 Then
$ITEM_BUFFER_ADD = _MEMORYREAD($ITEM_BUFFER_ADD + 4, $MEMID)
$ITEM_DIS = _MEMORYREAD($ITEM_BUFFER_ADD + $OFFSET_ITEM_DISTANCE, $MEMID, "float") / 10
$ITEM_ID = _MEMORYREAD($ITEM_BUFFER_ADD + $OFFSET_ITEM_ID, $MEMID)
$ITEMX = _MEMORYREAD($ITEM_BUFFER_ADD + 60, $MEMID, "float") / 10 + 400
$ITEMY = _MEMORYREAD($ITEM_BUFFER_ADD + 68, $MEMID, "float") / 10 + 550
$ITEMZ = _MEMORYREAD($ITEM_BUFFER_ADD + 64, $MEMID, "float") / 10
$ITEM_SN = _MEMORYREAD($ITEM_BUFFER_ADD + $OFFSET_ITEM_SN, $MEMID)
.................................................. .................................................. .......
Global $OFFSET_ITEM_TYPE = 336
Global $OFFSET_ITEM_ID = 272
Global $OFFSET_ITEM_SN = 268
Global $OFFSET_ITEM_DISTANCE = 340
Global $OFFSET_ITEM_NAME = 356

wajskopf
21.10.2011, 19:27
Структуру мобов изменили? Подскажите новые оффсеты, пожалуйста

wajskopf
21.10.2011, 23:18
Semoder, BASEADD имеешь в виду $B27A04 ?
Получается на старый лад: [GA] + 28 + 40 + 24 + [I*4] + 4 (в dec)

потом смещение на ID моба +272, в общем не дает результата чего то...

pw.lancer
22.10.2011, 00:44
Список соседних игроков "уполз" на 0x000C:
Count -> GA +34 +38C +14 // Genesis; was GA +20 +380 +14
Players -> GA +34 +38C +088 +I*4 (I In [0..N]) // Genesis; was GA +20 +380 +088 +I*4 (I In [0..N])
где GA = 0x00B280C4

xoraxax
22.10.2011, 03:29
а хэш-таблицы не искал никто? которые были
GA+1C+20 Players
+24 Mobs
+28 Resources and loot

DHouse
22.10.2011, 09:55
вчера проверил большую часть оффсетов в своей проге, получилсь примерно так. думаю будет интересно. Не привожу к обычному виду, кому надо, тот поймет (синтаксис дельфы):

const
pwBaseAddr=$B27A04;//$A5B90C;
pwGameAddr=$B280C4;//$A5BFCC;
pwUnfreezeAddr=$B28534;//$A5C43C;
pwPacketAddr=$6737B0;//$60E310;

pwGuild0=$218;//$218;
pwGuild1=$8; pwGuildI=$4; pwGuildMinI=$0; pwGuildMaxI=$300; pwGuild2=$8;
pwGuildCount=$4;
pwGuildClanID=$0;
pwGuildName0=$4; pwGuildName1=$0;

pwGamer=$34;//$20;
pwGamerX=$3C;//$3C;
pwGamerZ=$40;//$40;
pwGamerY=$44;//$44;
pwGamerID=$47C;//$460;
pwGamerLvl=$488;//$46C;
pwGamerHP=$490;//$474;
pwGamerMP=$494;//$478;
pwGamerMaxHP=$4D0;//$4B4;
pwGamerMaxMP=$4D4;//$4B8;
pwGamerMinPDam=$4F4;//не проверено $4D8;
pwGamerMaxPDam=$4F8;//не проверено $4DC;
pwGamerMinMDam=$52C;//не проверено $510;
pwGamerMaxMDam=$530;//не проверено $514;
pwGamerPeaceZone=$5F0;//не проверено $5D4;
pwGamerGuild=$604;//$5E4;
pwGamerName0=$638; pwGamerName1=$0;//$618; $0;
pwGamerClass=$640;//$620;
pwGamerState=$698;//$678;
pwGamerSkilling=$6F4;//$6D4;
pwGamerShopName0=$734; pwGamerShopName1=$0;//$70C; $0;
pwGamerPinkPotCoolDown=$9CC;//$988;
pwGamerRedPotCoolDown=$A0C;//$9C8;
pwGamerBluePotCoolDown=$A14;//$9D0;
pwGamerPetFeedCoolDown=$A44;//не проверено $A00;
pwGamerChemCoolDown=$A5C;//$A18;
pwGamerSosCoolDown=$A6C;//не проверено $A28;
pwGamerTargetID=$B68;//$B0C;

pwPet0=$1068;//$100C;
pwPetI=$4; pwPetMinI=$0; pwPetMaxI=$9; pwPet1=$10;
pwPetIsCalled=$8;
pwPetCurrentPetID=$38;
pwPetPetMode=$40;
pwPetLoyalty=$4;
pwPetHungry=$8;
pwPetHPperc=$1C;
pwPetLvl=$24;//$20;
pwPetName0=$34; pwPetName1=$0;
pwPetHP=$38;
pwPetSkillI=$10; pwPetSkillMinI=$1; pwPetSkillMaxI=$4;
pwPetSkillCoolDown=$34;
pwPetSkillMaxCoolDown=$38;

pwInventory=$CAC;//$C50;
pwInventory0=$C; pwInventoryI=$4; pwInventoryMinI=$0; pwInventoryMaxI=$40;
pwInventoryCount=$10;
pwInventoryItemType=$4;
pwInventoryID=$8;
pwInventoryAmount=$10;
pwInventoryName0=$40; pwInventoryName1=$0;

pwParty=$6D8;//$6B8;
pwParty0=$14; pwPartyI=$4; pwPartyMinI=$0; pwPartyMaxI=$5;
pwPartyID=$C;

pwPlayers0=pwGamer;
pwPlayers1=$38C;//$380;
pwPlayers2=$88; pwPlayersI=$4; pwPlayersMinI=$0; pwPlayersMaxI=$300;
pwPlayersCount0=pwGamer;
pwPlayersCount1=pwPlayers1;
pwPlayersCount2=$14;
pwPlayersZ=pwGamerZ;
pwPlayersID=pwGamerID;
pwPlayersLvl=pwGamerLvl;
pwPlayersHP=pwGamerMaxHP;
pwPlayersMP=pwGamerMP;
pwPlayersMaxHP=pwGamerMaxHP;
pwPlayersMaxMP=pwGamerMaxMP;
pwPlayersGuild=pwGamerGuild;
pwPlayersGM=$618;//$5F8; не проверено, ни новое, ни старое значение
pwPlayersName0=pwGamerName0; pwPlayersName1=pwGamerName1;
pwPlayersClass=pwGamerClass;
pwPlayersState=pwGamerState;
pwPlayersShopName0=pwGamerShopName0; pwPlayersShopName1=pwGamerShopName1;
pwPlayersDistance=$7A8;//$764;

pwLocation0=$1C;//$8;
pwLocation1=$60; pwLocation2=$4; pwLocation3=$0;

pwMob0=pwLocation0;
pwMob1=$24; pwMob2=$18; pwMobI=$4; pwMobMinI=$0; pwMobMaxI=$300; pwMob3=$4;
pwMobCount=$14;
pwMobType=$B4;
pwMobWID=$11C;
pwMobHP=$12C;
pwMobMaxHP=$16C;

pwGenie=$10AC;//$104C;
pwGenieI=$4; pwGenieMinI=$0; pwGenieMaxI=$9;
pwGenieCount=$10B0;//$1050;
pwGenieID=$8;
pwGenieCoolDown=$10;
pwGenieMaxCoolDown=$14;

pwSkill=$107C;//$101C;
pwSkillI=$4; pwSkillMinI=$0; pwSkillMaxI=$300;
pwSkillActiveCount=$1080;//$1020;
pwSkillPassiveCount=$1098;//$1038;
pwSkillID=$8;
pwSkillLvl=$C;
pwSkillCoolDown=$10;
pwSkillMaxCoolDown=$14;

pwServerPing=$11C;//$F0;

obiovn
22.10.2011, 11:27
Спасибо)

xoraxax
22.10.2011, 12:34
2 часа разбирал environment, оказалось все так же T_T за что мне это

Добавлено через 5 минут
реквестирую структуру GUI, которая GA+18

BritishColonist
22.10.2011, 12:55
небольшое примечание по строчкам из поста #104.

pwPetName0=$34; pwPetName1=$0;
pwInventoryName0=$40; pwInventoryName1=$0;

второй оффсет всегда будет 0, ибо по первому лежит строка, то есть указатель на её начало.

Sarrgass
22.10.2011, 13:32
Ребят, извиняюсь если оффтоп. Подскажите пожалуйста что делаю не так. Пытаюсь подстроить вот этот автопот [Ссылки могут видеть только зарегистрированные и активированные пользователи] под текущую версию игры, что то не видит он ни кол-во хп, ни мп. Оффсеты вроде как заменил на нынешние.

[Base]
base_addr=00B27A04
game_addr_offset=00B280C4
gamer_addr_offset=00000034
unfreeze_addr=00B28534
[Gamer]
HP=00000490
MaxHP=000004D0
MP=00000494
MaxMP=000004D4
GamerName=00000638
[Common]
AlwaysTop=0
Rename=0

Где ошибка?
Заранее спасибо)))

DHouse
22.10.2011, 13:48
небольшое примечание по строчкам из поста #104.



второй оффсет всегда будет 0, ибо по первому лежит строка, то есть указатель на её начало.

это я знаю, просто люблю все приводить к общему виду

sumikot
22.10.2011, 14:12
Искал по паттернам, поэтому некоторые адреса могут быть не верны, кто проверит, отпишитесь, (просто для проверки сейчас нет времени, займусь позже)
BaseAdress=00B27A04
GameAdress=00B280C4
FullTarget=006686E0
Attack=00696D60
ToVillage=00697220
MeditRest=00697560
MeditCancel=006975A0
Assist=00698720
PetAction=00616EA0
PetAttack=00AD2740
PetStop=00ACF030
PetFollow=00AD2738
PetOffensive=00AD272C
PetDefensive=00AD2720
PetCombat=00AD2718
PetCancel=00ACB998
PetSkillUse=005666D0
PetSetMode1=004DD740
PetSetMode2=00668A50
PetEvocative=00698AE0
Mining=00697700
TalkToNPC=00668AB0
Walk1=0046E410
Walk2=004728E0
Walk3=0046E880
WalkOfs1=00001050
WalkOfs2=00000698
UseItem=00668490
Pick=00668670
PickWalk=00469B40
UseSkill=00463630
Buy=00698F30
Sell=00698FC0
Fly=0045C3B0
IdCancel=00ACB998
ButtonPress=00804A80
PackCall=006737B0
Launcher=004420F4
MultiClient=004431B5

Dremalka
22.10.2011, 16:24
Кто-нибудь нашел смещение для структуры ресов вокруг перса?
Подскажите пожалуйста.

upd: Проглядел сообщение от semoder-a. Оказывается ответ он уже дал на мой вопрос. Теперь дальше продолжу ковырять Prophet bot.

xoraxax
22.10.2011, 16:41
такое же как было

Dremalka
22.10.2011, 16:52
такое же как было

Вы уверены?
У меня при первом смещении GA + 8 указывает на 0-й ряд байтов.
т.е. дальше смещаться некуда. :)

pwgamer
22.10.2011, 17:49
Не могу квест взять у нипа, был инжект 25 00 07 00 00 00 04 00 00 00 [00 00] 00 00 - Берем квест по [ID].
При посылке игра вылетает. Может кто нашел новый?
Сам нашел 2500070000000C000000 [$GETNEWQUEST_ID] 0000000000000000

rylai
22.10.2011, 18:14
исок соседних игроков "уполз" на 0x000C:
Count -> GA +34 +38C +14 // Genesis; was GA +20 +380 +14
Players -> GA +34 +38C +088 +I*4 (I In [0..N]) // Genesis; was GA +20 +380 +088 +I*4 (I In [0..N])
где GA = 0x00B280C4
вы уверены в оффсете на список игроков? потому как оффсет типа
GA +34 +38C +088 +[I*4] +(+0)^J не перебирает всю структуру близлежайщих игроков как раньше, а зацикливается причем уже при I=0. верхний оффсет работает правильно.

и ещё никто не нашел оффсет на GuildId?

xoraxax
22.10.2011, 18:23
Вы уверены?
У меня при первом смещении GA + 8 указывает на 0-й ряд байтов.
т.е. дальше смещаться некуда. :)

Уверен

GA+1C
+20 Players
+24 Mobs
+28 Resources and loot

Ключ хеш-таблицы: +20
Общее кол-во элементов: +14
Начало списков: +18
Указатель на структуру в элементе списка: +4
Хеш-таблица игроков вокруг персонажа
+8 +20 +14 - количество
+8 +20 +18 - Хеш-таблица
+8 +20 +18 +i*4 + (+0)^j + 4 - Указатель на структуру одного игрока

Что-то вроде этого. Почитайте тему "Обход списков без циклов".

Добавлено через 2 минуты

и ещё никто не нашел оффсет на GuildId?

GA+34+604

rylai
22.10.2011, 18:58
xoraxax, совместил ваш пост с приведенным выше, новый оффсет на хештаблицу близлежайщих игроков
GA +34 +38C +18, а не +88 как писали.

оффсет на гильдид тоже рабочий, спасибо)

wajskopf
22.10.2011, 19:59
Почитайте тему "Обход списков без циклов". Хотелось бы прочесть, дайте ссылочку

pwgamer
22.10.2011, 20:47
NPC выделить 00696D20// было 00606A70
NPC диалог открыть 00668AB0// было 00606E40
NPC диалог закрыть ?????? // было 2 адреса 00A06A9C и 00788380 не могу найти, помогите.

Dremalka
22.10.2011, 21:58
xoraxax, совместил ваш пост с приведенным выше, новый оффсет на хештаблицу близлежайщих игроков
GA +34 +38C +18, а не +88 как писали.


Хм. Странно. А у меня именно +88. И тогда вижу всех игроков поблизости.

obiovn
22.10.2011, 23:36
Хм. Странно. А у меня именно +88. И тогда вижу всех игроков поблизости.

Есть такой массив я им пользуюсь. Выбирал давно еще на 14х версиях. Кажется он последовательный.:
{$REGION '* Игроки вокруг'}
PW_PLAYER_LIST_OFFSET = $20;
PW_PLAYER_COUNT_OFFSET = $14;
PW_PLAYER_ARRAY_OFFSET = $18;
PW_PLAYER_MAX_COUNT_OFFSET = $24;
PW_PLAYER_RAW_ARRAY_OFFSET = $88;

еще Чат: $ B2CD80 // $A60398

вот тоже тема: Развод или новая антибот служба? это со мной часик назад такой контактик был)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Вообще что слышно - в новой версии есть какие то антибот навороты?
Может кнопка заработала?
(грамматика на скрине игровая)) )

heh
22.10.2011, 23:56
Есть такой массив я им пользуюсь. Выбирал давно еще на 14х версиях. Кажется он последовательный.:
{$REGION '* Игроки вокруг'}
PW_PLAYER_LIST_OFFSET = $20;
PW_PLAYER_COUNT_OFFSET = $14;
PW_PLAYER_ARRAY_OFFSET = $18;
PW_PLAYER_MAX_COUNT_OFFSET = $24;
PW_PLAYER_RAW_ARRAY_OFFSET = $88;

вот тоже тема: Развод или новая антибот служба? это со мной часик назад такой контактик был)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Вообще что слышно - в новой версии есть какие то антибот навороты?
Может кнопка заработала?
(грамматика на скрине игровая)) )
вот тоже тема: Развод или новая анти бот служба? это со мной часик назад такой контактик был)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Вообще что слышно - в новой версии есть какие то антибот навороты?

батенька это банальный развод. ГМ даже если и спалит бота то просто его кинет в бан без выяснения и уж точно не будет спрашивать с вас логин и пароль

а на счет антибота он вообще есть но реализован подругому должно вылезти окно в котором дибильнейший вопрос типа "что увеличивает красная банка" и 3 варианта ответа (хп мп exp) неправильно отвечаеш или не отвечаеш вовсе в течении N времени ловиш бан на N часов/минут/секунд

Beigbeder
23.10.2011, 00:03
Возле моей друльки появился нуленый перс и спросил кол-во атаки и хп перса, потом исчез.
Хотя хз, параноя может уже )

xoraxax
23.10.2011, 01:57
dumbfck c elitepvpers приводил вот такую загогулину
[[[[[[[[[[[[[[[[baseCall]+1C]+18]+8]+C4]+20]+1C4]+C]+C]+C]+C]+C]+C]+C]+8]+B8]+0]
Там чат лежит, полностью весь, насколько я понял. Посмотреть полностью лень, но первые несколько байт на чат похожи )

heh
23.10.2011, 02:11
Можно глупый вопрос а какая последовательность у пета щас наример % HP находится как то так
GA+34+1068 +***+$1C
так вот вопрос какое смещение вместо *** ?

PS: тапками в меня дурака не кидаться последний раз писал проги когда еще только рыб ввели на офе все позабывал

rylai
23.10.2011, 02:13
Есть такой массив я им пользуюсь. Выбирал давно еще на 14х версиях. Кажется он последовательный.:
да, так и есть. указатели на структуру игрока как раз как было выше описанно
GA +34 +38C +88 +[I*4], где I от 0 до (количества игроков вокруг-1).
просто думал что это указатель на хештаблицу как в первом посте темы и пытался обрабатывать соотвествующим образом.

HellD
23.10.2011, 02:41
heh,
GA+$34+$1068+(I*4+$10)+$38

heh
23.10.2011, 04:18
HellD, спс =)

на случай если сюда заглянет кто еще с такой же проблемой выложу кусок своего запиленного кода


GetWindowThreadProcessId(W, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
ReadProcessMemory(hProcess, ptr(baseaddr), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1068), @ipbuf2, sizeof(ipbuf2), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf2+$8), @I, sizeof(I), BytesCount);
if I <> (-1) then
begin
ReadProcessMemory(hProcess, ptr(ipbuf2+I*4+$10), @ipbuf2, sizeof(ipbuf2), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf2+hppet_offset), @hppet, sizeof(hppet), BytesCount);
label14.Caption:=(IntToStr(hppet)) ;

war2lock
23.10.2011, 08:28
Unfreeze_function=$00431F02;//$00430D9B;
84 c0 - нормальные значения
b0 01 - для разморозки

whoami
23.10.2011, 12:21
Новый чат где искать, не подскажите?..

obiovn
23.10.2011, 13:32
Чат: $ B2CD80 // $A60398
Все остальное тоже.

Python
23.10.2011, 15:50
Чат: $ B2CD80 // $A60398
Все остальное тоже.
не совсем.
добавили новую переменную в каждое сообщение.
Учитывайте это при разборе текста.

pwgamer
23.10.2011, 18:34
BA+1C+$4+$8+$70 - PTR активного окна. Куда уплыл сейчас?

Prom4eg
23.10.2011, 20:05
Нужна небольшая помощь. В этой теме (как мог) выискал новые оффсеты для фоксбота, все заработало, но ХП мобов неотображается

<?xml version="1.0" encoding="utf-8"?>
<FoxBotOffsets xmlns:xsi="[Ссылки могут видеть только зарегистрированные и активированные пользователи]" xmlns:xsd="[Ссылки могут видеть только зарегистрированные и активированные пользователи]">
<FreezeFunction>431F04</FreezeFunction>
<FreezeFlag>B28534</FreezeFlag>
<GameRun>B280C4</GameRun>
<HostPlayerStruct>34</HostPlayerStruct>
<PlayerName>638</PlayerName>
<PlayerHP>490</PlayerHP>
<PlayerMP>494</PlayerMP>
<PlayerMaxHP>4D0</PlayerMaxHP>
<PlayerMaxMP>4D4</PlayerMaxMP>
<PlayerTargetID>B68</PlayerTargetID>
<TargetMobHP>12C</TargetMobHP>
<TargetMobMaxHP>16C</TargetMobMaxHP>
<HPPotionCD>A0C</HPPotionCD>
<MPPotionCD>A14</MPPotionCD>
<PetStruct>1068</PetStruct>
<PetSlotID>8</PetSlotID>
<PetHPPrc>1C</PetHPPrc>
<PetHP>38</PetHP>
</FoxBotOffsets>

На сколько я понимаю пробема в выделенных строках, подскажите пожалуйста как правильно сделать

Dremalka
23.10.2011, 20:25
Нужна небольшая помощь. В этой теме (как мог) выискал новые оффсеты для фоксбота, все заработало, но ХП мобов неотображается
На сколько я понимаю пробема в выделенных строках, подскажите пожалуйста как правильно сделать

HP отображается только после того, как моб будет выделен. Поправьте меня если я не прав.
А указанные смещения правильные. По крайней мере эти.
Изменилось смещение на структуру окружающих npc. Т.е. смещение выше, а не конечное, что Вы указали.

semoder
23.10.2011, 20:37
Еще раз попрошу помощи, кто подскажет инжекты:
Использования предмета
Отправки пета в атаку
Использование джина

Таргет, скиллы, хотьба, подбор лута, это всё найдено, а вот с вышеперечисленными, проблема(((

stsnsw
23.10.2011, 21:21
BA+1C+$4+$8+$70 - PTR активного окна. Куда уплыл сейчас?

BA+1C+$18+$8+$74

DJMOT
23.10.2011, 21:30
[Custom_32_Offsets_In_Decimal]
Target_OffSet=2920
MaxMP_OffSet=1232
MP_OffSet=1232
[Perfect_World_Base_Address_In_Decimal]


Это Генезис Ру Офф

PJDoktoR
23.10.2011, 21:46
Ребята огромная просьба может кто нибудь выложить офсэты для геобота руоф генезис

xoraxax
23.10.2011, 22:35
Еще раз попрошу помощи, кто подскажет инжекты:
Использования предмета
Отправки пета в атаку
Использование джина

Таргет, скиллы, хотьба, подбор лута, это всё найдено, а вот с вышеперечисленными, проблема(((


Func useGenieSkill($skillId,$targetId, $pid)
;Uses skillId on the target
local $packet, $packetSize

$packet = '7400'
$packet &= _hex($skillId, 4)
$packet &= '0001'
$packet &= _hex($targetId)

$packetSize = 10

sendPacket($packet, $packetSize, $pid)
EndFunc

Func useItem($index, $itemTypeId, $pid, $equip=0)
;uses the item located at index. By default inventory index
;is used. If equip=1, then equipment index is used. This
;is necessary when toggling fly mode, as your fly gear
;is then used.
;itemTypeId is the id for
;the type of item it is. This would be the same as the last
;part in the url on pwdatabase. example:
;[Ссылки могут видеть только зарегистрированные и активированные пользователи]
;the itemTypeId for gold is 3044.
local $packet, $packetSize

$packet = '2800'
$packet &= _hex($equip, 2)
$packet &= '01'
$packet &= _hex($index, 2)
$packet &= '00'
$packet &= _hex($itemTypeId)

$packetSize = 10

sendPacket($packet, $packetSize, $pid)
EndFunc


это не проверял, ибо не друль

Func setPetAttack($targetId, $pid)
;Sets pet to do standard attacks on the target.
local $packet, $packetSize

$packet = '6700'
$packet &= _hex($targetId)
$packet &= '01'
$packet &= '00000000'

$packetSize = 11

sendPacket($packet, $packetSize, $pid)
EndFunc

Добавлено через 3 минуты
Выложи, пожалуйста, ходьбу, а то опять придется долго сидеть разбираться как там и что...

VeTaL_UA
23.10.2011, 22:44
Ребята огромная просьба может кто нибудь выложить офсэты для геобота руоф генезис
[main]
logActivities=0
[offsets]
realBaseAddress=0xB27A04
SendPacketAddress=0x006737B0
playerCounterOffset=0x00000928
playerIntervalOffset=0x000008DC
questFunctionOffset=0x1050
questFunctionAddress=0x0073DDC0
playerNameOffset=0x638
playerTransportModeOffset=0x64C
playerFlySpdOffset=0x4EC
playerFlyMountOffset=0x0000058C
playerXposOffset=0x3C
playerYposOffset=0x40
playerZposOffset=0x44
playerActionStructOffset=0x1050
baseOffset=0x1C
playerOffSet=0x34
nameLengthOffset=0xFFFFFFF8
playerTargetIdOffset=0xB68
npcIdOffset=0x11C
sortedNpcListOffset=0x50
baseListsOffset=0x8
npcListOffset=0x24
Ток что-то в этих оффсетах не то... Прошу кого-то, кто шарит исправить :)

Franciska
23.10.2011, 23:14
[main]
logActivities=0
[offsets]
realBaseAddress=0xB27A04
SendPacketAddress=0x006737B0
playerCounterOffset=0x00000928
playerIntervalOffset=0x000008DC
questFunctionOffset=0x1050
questFunctionAddress=0x0073DDC0
playerNameOffset=0x638
playerTransportModeOffset=0x64C
playerFlySpdOffset=0x4EC
playerFlyMountOffset=0x0000058C
playerXposOffset=0x3C
playerYposOffset=0x40
playerZposOffset=0x44
playerActionStructOffset=0x1050
baseOffset=0x1C
playerOffSet=0x34
nameLengthOffset=0xFFFFFFF8
playerTargetIdOffset=0xB68
npcIdOffset=0x11C
sortedNpcListOffset=0x50
baseListsOffset=0x8
npcListOffset=0x24
Ток что-то в этих оффсетах не то... Прошу кого-то, кто шарит исправить :)
Ну да, при попытке запуска клиент вылетает.

VeTaL_UA
23.10.2011, 23:17
Ну да, при попытке запуска клиент вылетает.
Всегда ваш КО?)

slikon
24.10.2011, 01:15
А кто может найти оффсет отката хирки? С банками на хп и ману все ясно, но где-то рядом по идее должны быть откаты хирок на хп и ману.

Python
24.10.2011, 12:33
С банками на хп и ману все ясно, но где-то рядом по идее должны быть откаты хирок на хп и ману.
Боюсь что тут ты ошибаешься.
Как раз таки "по идее" хирка не должна быть где-то рядом.
Т.к. она имеет другой принцип использования.
Её нельзя юзать из инвентаря как банки или химию.
Более того, её можно надеть.
А рас так, то и её характеристики нужно искать не возле банок и сосок, а возле шмоток.
А именно: через список надетых вещей.

slikon
24.10.2011, 12:49
Этого я и боялся, поскольку найти структуру и формат этого списка практически невозможно %) Если кто-то поделится информацией о том, как найти список шмоток и выбрать оттуда нужную по ИД - буду очень признателен.

zanyboy1234
24.10.2011, 15:35
Народ плизз очень прошу настройте pw enemy info под последнюю обнову

pw.lancer
24.10.2011, 15:49
вы уверены в оффсете на список игроков? потому как оффсет типа
GA +34 +38C +088 +[I*4] +(+0)^J не перебирает всю структуру близлежайщих игроков как раньше, а зацикливается причем уже при I=0. верхний оффсет работает правильно.

и ещё никто не нашел оффсет на GuildId?

GA +34 +38C +088 +I*4 (I In [0..N]) - это не хеш игроков, а линейный массив. Хеш еще не смотрел.

slikon
24.10.2011, 16:41
а, и в догонку, может кто знает как выцепить название клана по его ИД?

Python
24.10.2011, 22:49
а, и в догонку, может кто знает как выцепить название клана по его ИД?
Массив с названиями кланов остался на прежнем месте.

pw.lancer
25.10.2011, 00:46
а, и в догонку, может кто знает как выцепить название клана по его ИД?

Да, тут все по старому. Убрал обработку ошибок, на С это делается так:

void ReadClanName( wchar_t* wsBuffer, HANDLE hProcess, DWORD BA, int clanId )
{
DWORD p = 0;
ChainReadInt32( &p, hProcess, BA, 1, 0x218 );
DWORD hash = 0;
ReadInt32( &hash, hProcess, p + 0x14 );
ReadInt32( &p, hProcess, p + 0x8 );
int j = clanId % hash;
ReadInt32( &p, hProcess, p + j * 4 );
while ( p != 0 ) {
int tmp = 0;
ReadInt32( &tmp, hProcess, p + 0xC );
if ( tmp == clanId )
ChainReadString( wsBuffer, hProcess, p + 8, 32, 2, 4, 0 );
ReadInt32( &p, hProcess, p );
}

}

Кто-то выкладывал этот алгоритм на пвлабе в старые добрые времена, я только переложил на С.

BA тут = 0x00B27A04 (base address)

xoraxax
25.10.2011, 07:24
а, и в догонку, может кто знает как выцепить название клана по его ИД?

Поиск тащит
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

pwgamer
25.10.2011, 12:34
BA+1C+$18+$8+$74

Не правильно, игра вылетает с ошибкой. Может кто знает правильное?

stsnsw
25.10.2011, 21:43
Не правильно, игра вылетает с ошибкой. Может кто знает правильное?

? Я знаю. ) Что не работает?

obiovn
25.10.2011, 22:14
Кто то знает как убрать начальный мультик? Установил размер стартового экрана 680 (бот позжее сам установит актуальные размеры из ини) а клиент все равно входит в полный экран,потом уже окно куда-то вверх+влево,начинает играть мультик(я его убираю, но успевает слететь R Dock - например) -очень это не удобно(.
Да еще, если нашли сеты для установки усиленного вода - поделитесь пожалуйста).
Спасибо.

pwgamer
25.10.2011, 23:39
Добавлено через 2 минуты
) Что не работает?

Было BA+1C+$4+$8+$70 - PTR активного окна. Куда уплыл сейчас?
вроде ВА+1с+18+8+?

sumikot
26.10.2011, 00:34
Собрался тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) все систематизировать для новой версии. Нужно ли это? :) Пока еще никто не поддержал - может, зря начал?

stsnsw
26.10.2011, 01:53
Да еще, если нашли сеты для установки усиленного вода - поделитесь пожалуйста).
Спасибо.

BA+$1C+$18+$8+$C10+$1C8+$4+$4+$4+$4+$8+$121 (Byte)

pwgamer, позволю себе настаивать - +$74 - PTR активного окна. В приведённом примере $C10 - PTR окна ввода логина с паролем.

sumikot, не сомневайся - дело нужное.

pwgamer
26.10.2011, 18:05
BA+$1C+$18+$8+$C10+$1C8+$4+$4+$4+$4+$8+$121 (Byte)

pwgamer, позволю себе настаивать - +$74 - PTR активного окна. В приведённом примере $C10 - PTR окна ввода логина с паролем.

sumikot, не сомневайся - дело нужное.

Тогда я наверное не так написал что мне надо. Мне надо закрыть диалог NPC было на аутоите так:

Func NPCTALKCLOSE()
$OPCODE = ""
PUSHAD()
MOV_EAX(Dec("00ACB998")) ; // старое до генезиса 00A06A9C
PUSH_EAX()
MOV_EDX($APP_BASE_ADDRESS)
MOV_EDX_DWORD_PTR_EDX()
MOV_EDX_DWORD_PTR_EDX_ADD(Dec("4"))
MOV_EDX_DWORD_PTR_EDX_ADD(Dec("8"))
MOV_EDX_DWORD_PTR_EDX_ADD(Dec("70"))
MOV_ECX_EDX()
MOV_EDX(Dec("00809AC0")) ;// старое до генезиса 00788380
CALL_EDX()
POPAD()
RET()
INJECTCODE($PROCESS_ID)
Sleep(1000)
EndFunc

Вместо +4, +8 +70 ставил 18, 8, 74 Игра вылетает как это все поступает в инжект.

obiovn
26.10.2011, 18:21
Активное окно:
WND1=$18;
WND2=$8;
CUR_WND=$74;
WND_X=$98;
WND_Y=$9c;
WND_W=$a0;
WND_H=$a4;

Окно диалога:
WNDD1=$428;
WNDD_X=$98;
WNDD_Y=$9c;
WNDO=$90;// открыто=1 b

Окно алхимика/Котел поликов
WNDA1=$458;
WNDA_X=$98;
WNDA_Y=$9c;
WNDAO=$90;// открыто=1 b

stsnsw отдельное спасибо за усиленный вход) (еще: научите пож говорить спасибо - то что внизу сообщения)

VeTaL_UA
26.10.2011, 19:42
научите пож говорить спасибо - то что внизу сообщения)
Кнопка "спасибо" появляется после набора 10 сообщений.

pwgamer
27.10.2011, 00:17
obiovn, весь вечер проверял, точно +18+8+74. Значит я не те адреса нашел для инжекта. Но в игре нашел такой кусок кода:

8B 01 mov eax,[ecx]
68 98B9AC00 push 00ACB998 [IDCANCEL]
FF 50 2C call dword ptr [eax+2C] // тут уходит на 00809AC0
C2 0400 ret 0004

уже всю голову сломал. :nono:

Все разобрался, всем спасибо кто помог.

VictorPr
28.10.2011, 02:11
ChainReadString( wsBuffer, hProcess, p + 8, 32, 2, 4, 0 );



Что означают параметры 32, 2, 4, 0 в функции ChainReadString ?
Это что-то типа, wsBuffer = [[[p+8]+4]+0] при чем по +0] читать 32 байта?

Это_Что_то
28.10.2011, 13:35
нашел онлайн адрес там их 4 даже:
2 повторяются,
1 вход логин,
1 вход в чара.

'TOR'
28.10.2011, 16:27
А какой офсет нужен для PWGTM ?

Добавлено через 12 минут
[Interface]
Title=Perfect World
ToolTip=PWGT Multi v1.91 - KaZpa
[Config]
Offsets= не известно
[Hotkeys]
Up=NUMPAD7
Down=NUMPAD9
North=NUMPAD8
South=NUMPAD2
West=NUMPAD4
East=NUMPAD6
END=F10
______________________________________________
вот если , что сама прога ( ДА Я ЛОЛ )

Это_Что_то
28.10.2011, 20:53
эм.. а что там раньше было? или ниче не было
я не пользовался этой штукой

а во нашел там Base Address нужен

попробуй один из этих
BaseAdress=00B27A04
GameAdress=00B280C4

'TOR'
28.10.2011, 21:06
30303030303033435030303030303034305030303030303034 34503943313531345030303030303633385030303030303633 43503030303030363430503030303030424634 вот , что было )

VeTaL_UA
28.10.2011, 21:08
А какой офсет нужен для PWGTM ?
Туда нужно вставить это:
GameAdress=00B280C4
Но PWGTM сейчас не работает :(

'TOR'
28.10.2011, 21:09
Нет к сожалению , нет ( не работает , сразу при вкл выкл прога

Добавлено через 2 минуты
А почему не работает? блин т.е rayden остался ток

VeTaL_UA
28.10.2011, 21:23
А почему не работает?
А потому, что не работает.
блин т.е rayden остался ток
Да...

pw.lancer
29.10.2011, 03:01
Что означают параметры 32, 2, 4, 0 в функции ChainReadString ?
Это что-то типа, wsBuffer = [[[p+8]+4]+0] при чем по +0] читать 32 байта?

Верно.


int ChainReadString( LPVOID buffer, HANDLE hProcess, DWORD address, DWORD length, DWORD offsets, ... );


Функция с переменным числом аргументов, DWORD offsets - это количество последовательных оффсетов в цепочке.

imeninnik
01.11.2011, 22:33
народ мб не в тему но есть ли у кого файл с id скилов и их соответственно описанием или же подскажите из какого файла их можно вытащить.

obiovn
01.11.2011, 23:20
Вот может пригодиться:
Пока еще не уверен на все 100%, но уже тестирую.
Массив игроков:
$6f8 // цель физ атаки
$76c // цель маг атаки

Массив монстров:
$2ac //среда монстра 0-земля, 2-воздух, 1-вода

И вопросик подкину - кто нибудь разбирался с окном восклицательного знака (сейчас круг с восклицательным знаком) на предмет отказа от клана и группы, поносить на руках, дуэль) а то задолбали). Спасибо.

stsnsw
03.11.2011, 20:31
кто нибудь разбирался с окном восклицательного знака .

[Party Invite Offsets]
Party_Address = 00B30258
Party_ID_Offset = 10

[00B30258] + $10 - ID пригласившего

Dremalka
07.11.2011, 07:29
народ мб не в тему но есть ли у кого файл с id скилов и их соответственно описанием или же подскажите из какого файла их можно вытащить.

В файле configs.pck. Последний 0 в ID лишний. Virustotal ([Ссылки могут видеть только зарегистрированные и активированные пользователи] db190ccf49064ad1459fd1169c7e2-1320639356)

dwart
08.11.2011, 21:00
может кто подсказать оффсеты для хп пета мистика текущее и максимум?

Edellake
19.11.2011, 13:02
Подскажите пожалуйста оффсеты для получения данных о членах пати (для руофф генезис).
или, если возможности, перепишите фреймворковский код (C#) =)
foreach (MemPtr player in (mem["GA"] + HostPlayerStruct + 0x380).ToPtrArray(0x88, 0x14))
Заранее благодарен.

begemottio
02.12.2011, 15:04
В структуре мобов:

Result.Mobs.MTargID := $2DC;
Result.Mobs.PTargID := $2E0;
Result.Mobs.Attack := $2E4;

P.S.: Автор PWMEE не развивал свою тулзу? Был бы очень годный инструмент, если поменять в нем int32 на dword

heh
05.12.2011, 20:55
доброго времени суток столкнулся с траблой которая ваще рвет мне шаблон

стал я давича искать адрес полоски цы своим сином как положено через CE и делал все правильно и по всем приметам этот адрес A4A НО по этому значению лежит ниразу не то значение хотя если его искать через СЕ то оно показывает изменения в значении этого ВА+34+А4А которые я делаю а делфи при том же самом пишет откровенную ***ню

aktivizion15
05.12.2011, 20:58
доброго времени суток столкнулся с траблой которая ваще рвет мне шаблон

стал я давича искать адрес полоски цы своим сином как положено через CE и делал все правильно и по всем приметам этот адрес A4A НО по этому значению лежит ниразу не то значение хотя если его искать через СЕ то оно показывает изменения в значении этого ВА+34+А4А которые я делаю а делфи при том же самом пишет откровенную ***ню

ReadProcessMemory(hProcess, ptr($B27A04), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $1C), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $34), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $А4А), @buf, 4, BytesCount);
showmessage(inttostr(buf));

попробуй так или так:

ReadProcessMemory(hProcess, ptr($B280C4), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $34), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $А4А), @buf, 4, BytesCount);
showmessage(inttostr(buf));

Разницы нет

Skuka.95
05.12.2011, 21:13
оффсет на чи 4A4...
а не А4А

heh
05.12.2011, 21:55
оффсет на чи 4A4...
а не А4А

писал на память XD

Добавлено через 5 минут
ReadProcessMemory(hProcess, ptr($B27A04), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $1C), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $34), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $А4А), @buf, 4, BytesCount);
showmessage(inttostr(buf));

попробуй так или так:

ReadProcessMemory(hProcess, ptr($B280C4), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $34), @buf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(buf+ $А4А), @buf, 4, BytesCount);
showmessage(inttostr(buf));

Разницы нет

при первом варианте при значении чи = 0 показывает 168 при втором коде 144 потестил на своем старом исходнике тоже самое

aktivizion15
05.12.2011, 22:16
heh, ну дак подставь правильный оффсет

heh
05.12.2011, 22:22
heh, ну дак подставь правильный оффсет

капитан!!!!! я не такой тупой как вы себе это видите !

PS да и если бы вы удосужились вбить "свой же" код в делфи увидели бы что ваше "А4А" написано русскими и додуматься что прочитав следующий комент я заменю его на верный

aktivizion15
05.12.2011, 22:50
PS да и если бы вы удосужились вбить "свой же" код в делфи увидели бы что ваше "А4А" написано русскими и додуматься что прочитав следующий комент я заменю его на верный
а вы, любезный, всегда копипастом всё в прогу пихаете не проверив?
код ему видите ли неправильный дали...

heh
05.12.2011, 23:00
а вы, любезный, всегда копипастом всё в прогу пихаете не проверив?
код ему видите ли неправильный дали...

батенька не в этом суть а в том что по BA+$34+$4A4 лежит не то значение которое есть на самом деле если бы не закрыл клиент то приложил бы нотариально завереный скриншот с использованием вашего (моего любого друго кода с тем же смыслом BA+$34+$4A4)

VeTaL_UA
05.12.2011, 23:07
heh, а переменная buf у тебя точно типа DWord?

aktivizion15
05.12.2011, 23:24
heh, [Ссылки могут видеть только зарегистрированные и активированные пользователи]

heh
05.12.2011, 23:56
heh, [Ссылки могут видеть только зарегистрированные и активированные пользователи]

премного благодарен за пример

видимо у меня косяк в коде =( правда хз где потому как от предыдущей рыбной версии клиента до этой деревянной измtнились только базовый и 2 смещения до цели поиска? которые я и заменил? и получил почему-то некорректные значения =( спишем это на нечистую силу =)

Skuka.95
06.12.2011, 11:51
BA+$34+$4A4
в этом то и ошибка... надо GA+$34+$4A4

Miragas
18.12.2011, 14:34
Народ BA не работает, пробовал на PWGTM Multi 1.9.1
че делать?

Skuka.95
18.12.2011, 14:43
Miragas, в PWGTM Multi 1.9.1 надо брать не BA а GA если мне память не изменяет

Kitsune
04.05.2012, 16:22
Дайте структуру ХП
Чего чего структуру? /horror

BritishColonist
04.05.2012, 20:36
fullzero, держи структуру хп:

struct CHealth
{
DWORD Value;
CHealth() { Value = 0; }
};

vogel
04.05.2012, 21:53
ненене, он хотел структуру ХостПлеера =))

rafis199887
07.01.2014, 22:58
а где их менять то,папка или файл где находится?

sedrik1992
18.06.2014, 16:09
Ребят, структура мобов:

BA +0x1C +0x1C +0x24 +0x14 Count, dword /Количество/ - осталось прежним
BA+0x1C+0x1C+0x24+0x58+[i*0x4] /i = 0 - 0x300 - поменялось

venik0001
26.06.2014, 00:22
Не тестели отсюда ([Ссылки могут видеть только зарегистрированные и активированные пользователи])?
У самого еще клиент новый не докачался.

GetBase говорит
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) ничего похожего не наблюдаеться...

botovod2011
26.06.2014, 01:39
[base]
addr = C9DFAC
[game]
addr = C9E74C

Добавлено через 2 минуты
EXP_Calc_Base: C9F3C0
UnfreezeOffset: 4D0
LVL_Offset: 4A0
Culti_Offset: 4A4
EXP_Offset: 4B0
Spirit_offset: 4B4
HP_OffSet: 4A8
MaxHP_OffSet: 4F4
MP_OffSet: 4AC
MaxMP_OffSet: 4F8
CHI_OffSet: 4BC
MaxCHI_Offset: 574
Gold_Offset: 578
CastID_Offset: 7A0
Pet_Offset: 13C0
Jump_Offset: E38
Name_Offset: 6B0

Алюша
27.06.2014, 22:11
Подскажите пожалуйста эти значения :
<FreezeFunction>
<FreezeFlag>

fds255
27.06.2014, 22:34
<FreezeFunction> 0043BF46
<FreezeFlag> 00C9EC00