PDA

Просмотр полной версии : [Информация] Радар для Lineage 2 GoD (BSFG E5) [Без пакетов]


separater
08.10.2014, 23:29
Инфа для создания радара и прочей дури под Lineage 2 GoD, а точнее BSFG от абуса. Аналогично можно пилить для любых хроник.

Самой проги тут не будет, только инфа "где что брать".

Мысль при создании такого радара была простая: если игра знает где брать координаты и прочую инфу о игроках (для отрисовки) - я тоже могу узнать. Что , вроде, логично. Частенько существует в игрушка таблица, в которой уже ссылки на игроков, или для чего таблица была создана (ну, нам то игроки нужны). Lineage 2 - не исключение:
все люди и Неписи находятся в таблице, более того, там даже есть координаты летящих стрел (интересно нафига?).

Адрес магической таблицы следующий:
Сама таблица: Engine.dll + 0x8986DC (0x208986DC) ] + 0x224]
Колово дряни: Engine.dll + 0x8986DC (0x208986DC) ] + 0x228]
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

как видно по скрину - указатель на структуру первого по адресу
1: [[Таблица ] + 0x08]
и так далее
2: [[Таблица ] + 0x14]
3: [[Таблица ] + 0x20]
4: [[Таблица ] + 0x2С]
...

далее, перейдя по указателю, и еще один разок по смещению 0х4, мы влетаем в саму структуру с данными о игроке\мобе
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
итогово, что бы попасть сюда нужно перейти по след адресу:
[[[Таблица ] + 0x08(или любой другой)] + 0x04]
Тут мы имеем:

0x14 - id из файла npcgrp (если у нас моб, ежели живое тело - будет "0")
0x18 - уникальный id игрока\моба, не повторяются, меняется при перезапуске
0x1C - никнейм \ имя моба
0xB0 \ 0xB4 - ХП (текущий \ макс)
0x438 \ 0x43C - ЦП (текущий \ макс)
0x254 - цвет ника (вроде - 0xAA RR GG BB)
0x374 - указатель на структуру с доп инфой
[0x374] + 0x340] - координата X (float)
[0x374] + 0x344] - координата Y (float)
[0x374] + 0x348] - координата Z (float)
[0x374] + 0x7A8] - id скина
(0,1,8,9 - хум |2,3 - ДЕ |4,5 - гном|6,7 - СЕ|10,11,12,13 - орк|14,15 - кур)

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

В итоге можно сделать что то такое:
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

PS ежели вы писатель, а не качатель (читов и прочего) - сделать аналог для любых хроник просто. Разбирать что и где в структуре стоит просто (благо софт есть). Реверсить адрес такой таблицы - совсем изи, обычным Cheat Engine находим свои координаты, смотрим что туда пишет - найдет там функцию которая разбирает передвижения всего что двигается, ну и бряками найти заветный указатель - не сложно...

Написание "анатомии-цели" из бсфг
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

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

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

Удаленное управление персонажем
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
сорцы:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

RenatPro
11.10.2014, 07:25
Engine.dll там есть инфа о персонаже? а то я искал только в l2.exe нашел и core.dll и работает не стабильно слетает инфа (я про hp mp cp и нике персонаже и т.п)

separater
11.10.2014, 15:10
В Engine.dll есть табло с указателями на инфу. Причем после любого изменения состояния перса (сменил шмотку, например) вся таблица обновляется, что в принципе не особо проблемно, адрес самой таблицы статичен.

Для того что бы смотреть ХП (с остальным не прокатит) - включаем чит энжн, выделяем сеья в таргет, ищем ХП, меняем таргет - смотрим что поменялось в результатах -> 2 адреса с ХП таргета (текущий \ макс). Работает в БСФГ \ ГоД серверах.

Если нужно, была у меня еще таблица с дропом. Хотя я хз зачем оно в л2 обычной, в бсфг можно было делать патч на дроп нормальный (отрисовывать название дропа), что то вроде такого [Ссылки могут видеть только зарегистрированные и активированные пользователи] , только удобнее.

RenatPro
11.10.2014, 20:04
Если нужно, была у меня еще таблица с дропом. Хотя я хз зачем оно в л2 обычной, в бсфг можно было делать патч на дроп нормальный (отрисовывать название дропа), что то вроде такого [Ссылки могут видеть только зарегистрированные и активированные пользователи] , только удобнее.

Отрисовка через 3d идет? я что смог по исходникам только текст вывести))

На картинках что за редактор?

separater
11.10.2014, 20:52
Отрисовка через 3d идет? я что смог по исходникам только текст вывести))

На картинках что за редактор?

отрисовка через хук D3D. Да.

на картинках стандартная тулза для реверса игрущек - Reclass.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

RenatPro
13.10.2014, 19:39
отрисовка через хук D3D. Да.

на картинках стандартная тулза для реверса игрущек - Reclass.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Спасибо! хотя я делаю все не через эту программу но небольшое прозрение появилось)!

RenatPro
29.10.2014, 07:39
В Engine.dll
Для того что бы смотреть ХП (с остальным не прокатит) - включаем чит энжн, выделяем сеья в таргет, ищем ХП, меняем таргет - смотрим что поменялось в результатах -> 2 адреса с ХП таргета (текущий \ макс). Работает в БСФГ \ ГоД серверах.


Тут решил написать типа АСП и наткнулся на проблему(
Вообщем нашел смещение которое не изменяется* при перезагрузки при смене локаций после переустановки винды адрес остается статистический!
Думаю ну вот все нашел то что надо, но не тут то было(
Решил проверить на другом компе скачал клиент, патч того же сервера захожу в игру а там выдает не то значение.
Базовый адрес Engine.dll выдергиваю динамически то есть при загрузки моей программы а вот по смещению не попадаю на том что писал компе программу стоит w7 x32 а проверял на w7 x64 возможно в этом проблема. Есть идеи?

separater
29.10.2014, 20:38
Тут решил написать типа АСП и наткнулся на проблему(
Вообщем нашел смещение которое не изменяется* при перезагрузки при смене локаций после переустановки винды адрес остается статистический!
Думаю ну вот все нашел то что надо, но не тут то было(
Решил проверить на другом компе скачал клиент, патч того же сервера захожу в игру а там выдает не то значение.
Базовый адрес Engine.dll выдергиваю динамически то есть при загрузки моей программы а вот по смещению не попадаю на том что писал компе программу стоит w7 x32 а проверял на w7 x64 возможно в этом проблема. Есть идеи?

x64 \ x32 - пофиг. игра сама по себе работает как в *32.
Если на другом компе не тот адрес - проблема в указателе.

Если искал через CheatEngine -> Pointer Scan -> забей. Это фигня. Искать нужно через отладчик.

RenatPro
30.10.2014, 15:08
x64 \ x32 - пофиг. игра сама по себе работает как в *32.
Если на другом компе не тот адрес - проблема в указателе.

Если искал через CheatEngine -> Pointer Scan -> забей. Это фигня. Искать нужно через отладчик.

Ок спасибо буду искать способ запустить отладчик.

Добавлено через 19 часов 31 минуту
А есть смысл по сигнатуре искать значение или я всеровно наткнусь не на то значение?

separater
31.10.2014, 20:26
Ок спасибо буду искать способ запустить]
А есть смысл по сигнатуре искать значение или я всеровно наткнусь не на то значение?

хз, не пробовал. должно работать в принципе.

RenatPro
01.11.2014, 08:22
Я думаю ты лучше разбираешься!
У меня есть указатель с таким смещением нашел в Cheat Engine:

<Address>"Engine.dll"+01B4824C</Address>
<Offsets>
<Offset>670</Offset>
<Offset>30C</Offset>
<Offset>648</Offset>
<Offset>5F0</Offset>
<Offset>5F4</Offset>
</Offsets>
получаю 127fc370


После я нашел смещение на CP в ReClass2013 Это 380:

Как понял надо 127fc370+380=127FC6F0 и я получу указатель на СР по идеи должно сработать но мне выдает не тот адрес:

<Address>"Engine.dll"+01B4824C</Address>
<Offsets>
<Offset>380</Offset>
<Offset>670</Offset>
<Offset>30C</Offset>
<Offset>648</Offset>
<Offset>5F0</Offset>
<Offset>5F4</Offset>
</Offsets>

Но попадаю не туда(

Все разобрался надо было просто в hex прибавлять 670+380 и получил 9F0

Вот так теперь выглядит

<Address>"Engine.dll"+01B4824C</Address>
<Offsets>
<Offset>9F0</Offset>
<Offset>30C</Offset>
<Offset>648</Offset>
<Offset>5F0</Offset>
<Offset>5F4</Offset>
</Offsets>

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

RenatPro
04.11.2014, 18:03
Сама таблица: Engine.dll + 0x8986DC (0x208986DC) ] + 0x224]
Колово дряни: Engine.dll + 0x8986DC (0x208986DC) ] + 0x228]


Мне тут не понятно как по смещению пройти или можно твои смещение использовать или мне надо баз.адрес Engine.dll и прибавить что нашел но я незнаю что имено искать что бы попасть в таблицу)/dgs

separater
05.11.2014, 23:53
Мне тут не понятно как по смещению пройти или можно твои смещение использовать или мне надо баз.адрес Engine.dll и прибавить что нашел но я незнаю что имено искать что бы попасть в таблицу)/dgs

Engine.dll + 0x8986DC (0x208986DC) ] + 0x224]

Engine.dll(в ГоД имеет адрес 0х20000000) + 0x8986DC = 0x208986DC - читаем что там, а там указатель на след адрес, берем след адрес и добавляем 0x224, выходим в таблицу.

RenatPro
06.11.2014, 06:36
Engine.dll + 0x8986DC (0x208986DC) ] + 0x224]

Engine.dll(в ГоД имеет адрес 0х20000000) + 0x8986DC = 0x208986DC - читаем что там, а там указатель на след адрес, берем след адрес и добавляем 0x224, выходим в таблицу.

Спасибо понял!) тут сыграла моя невнимательность ты искал в Год а я в IT значит таблицу придется искать в слепую есть какието варианты для быстрого поиска таблицы)?

separater
06.11.2014, 20:14
Спасибо понял!) тут сыграла моя невнимательность ты искал в Год а я в IT значит таблицу придется искать в слепую есть какието варианты для быстрого поиска таблицы)?

есть, через отладчик.
брейкпоинты на функцию обработки движений.

RenatPro
07.11.2014, 09:11
есть, через отладчик.
брейкпоинты на функцию обработки движений.

Может я неправильно делаю -> нахожу в Cheat Engine (Float) c точкой координаты персанажа далее открываю ReClass перехожу по адресу что нашел + то что ты делал но там все по 0 реверсил и + и - от найденого значения нов серовно нули(

Nmap
09.11.2014, 11:58
Тут мы имеем:
0x14 - id из файла npcgrp (если у нас моб, ежели живое тело - будет "0")
0x18 - уникальный id игрока\моба, не повторяются, меняется при перезапуске
0x1C - никнейм \ имя моба
0xB0 \ 0xB4 - ХП (текущий \ макс)
0x438 \ 0x43C - ЦП (текущий \ макс)
0x254 - цвет ника (вроде - 0xAA RR GG BB)
0x374 - указатель на структуру с доп инфой
[0x374] + 0x340] - координата X (float)
[0x374] + 0x344] - координата Y (float)
[0x374] + 0x348] - координата Z (float)
[0x374] + 0x7A8] - id скина
(0,1,8,9 - хум |2,3 - ДЕ |4,5 - гном|6,7 - СЕ|10,11,12,13 - орк|14,15 - кур)

В этой струтуре есть id клана или название клана, информация о том что чар флагнут/пк ?

Если моб или игрок у тебя не в таргете то в структуре данные только об ID/nickname/race/prof/location/

separater
09.11.2014, 18:34
В этой струтуре есть id клана или название клана, информация о том что чар флагнут/пк ?

Если моб или игрок у тебя не в таргете то в структуре данные только об ID/nickname/race/prof/location/

флаг\пк - по цвету ника не сложно понять.
ID клана должно быть или название, ник\титул - есть.

Добавлено через 11 минут
Может я неправильно делаю -> нахожу в Cheat Engine (Float) c точкой координаты персанажа далее открываю ReClass перехожу по адресу что нашел(

и смотришь на координаты которые нашел.
тебе нужно найти базу, а не координаты, они совсем в другом месте.

АНТИКЛАН
26.12.2014, 05:26
А не подскажете с чего начать? Чем пользоваться? Чтобы написать свой радар. Что почитать по теме? Знания программирования базовые.

RenatPro
26.12.2014, 10:23
А не подскажите с чего начать? Чем пользоваться? Чтобы написать свой радар. Что почитать по теме? Знания программирования базовые.
Самые лучшие уроки этого человека думаю во всем рунете [Ссылки могут видеть только зарегистрированные и активированные пользователи]

АНТИКЛАН
26.12.2014, 12:31
Самые лучшие уроки этого человека думаю во всем рунете [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Тоесть, все радары точеры и т.д. относятся к трейнерам?

RenatPro
26.12.2014, 12:46
Тоесть, все радары точеры и т.д. относятся к трейнерам?

Точеры просто пишутся на API, Через память процесса, ну и на сегодняшний день самый продвинутые программы пишутся через пакетники. Язык программирования можно выбрать любой.

АНТИКЛАН
26.12.2014, 21:20
Точеры просто пишутся на API, Через память процесса, ну и на сегодняшний день самый продвинутые программы пишутся через пакетники. Язык программирования можно выбрать любой.

Спасибо будем разбираться :)

separater
27.08.2016, 21:15
Написание анатомии для нового эпизода бсфг:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
оффсеты те все же. Все что поменяли за это время - убрали статик адресс с id выбранной вами цели.
Но этот id можно вытянуть из своей структуры + 0x374] + 0x3C] + 0x44C] - id тагрета.

separater
17.09.2016, 20:59
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Proof of Concept радара. Все еще БСФГ.

Пример сборки. Не советую делать все в ренлере. Советую проверять данные по указателям.

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

separater
24.09.2016, 21:46
Пожалуй, один из немногих способов использовать радар с какой-то реальной пользой -> можно смотреть кто взял в таргет.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

separater
18.10.2016, 00:38
Вызов API движка (в примере - вызов MTL - передвижение). ИМХО - куда проще сделать бота на API чем на пакетах...
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

separater
02.11.2016, 17:04
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
управляем персом удаленно (из другого процесса). автоматизировать до примитивного бота - пару минут...

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

maximkokrivetko
26.11.2016, 13:21
Перезалей пожалуйста исходники.

separater
29.11.2016, 21:48
Перезалей пожалуйста исходники.

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
перелил на дропбокс.
гуголь почему-то не одобрительно относится к ПО в архивах...

imeninnik
05.06.2017, 13:30
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
перелил на дропбокс.
гуголь почему-то не одобрительно относится к ПО в архивах...

Добрый день. не могли ли бы Вы скинуть исходники "Радар для Lineage 2 GoD". Старая ссылка не работает. Спасибо заранее!

separater
03.01.2018, 20:05
анатомка под новый движек бсфг
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

devilinaflash
04.03.2019, 10:42
Не осталось ли исходников? А то ссылки думаю уже давно не работают)