Некоторая инфа по новому клиенту BsfG. суть та же что и со старым, только новые смещения:
Код:
Класс
UNetworkHandler :: 0x20AC4374
ID нашего персонажа :: 0x20AC4370
Таблица с NPC\Игроками :: UNetworkHandler -> 0x25C
Размер таблицы :: UNetworkHandler -> 0x260
С перебором таблицы все как и ранее
Код:
// pTable - адрес таблицы
// pTableSize - размер таблицы
for (int i = 0; i < pTableSize; i++) {
int pUserID = mem::read<int>(pTable + (i * 0xC) + 0x4);
int pUser= mem::read<int>(pTable + (i * 0xC) + 0x8);
int UserClass= mem::read<int>(pObj + 0x4);
}
Основные смещения в классе User
Код:
0x8 - Уникальный ID
0xC - npc_grp ID, у игроков - 0
0x90 - ник
0x10 \ 0x14 - ХП персонажа (текущ\макс)
0xF0 \ 0xF4 - ЦП персонажа (текущ\макс)
0x50C - ссылка на класс AActor (инфа по модели\координаты и т.д.)
Основные смещения в классе AActor
Код:
0x188 - координаты XYZ
0x1CC - ускорение по осям XYZ (можно вычислить текущую скорость)
0x3C -> 0x43C - уникальный ID персонажа\NPC, который в таргете у текущего User'а
По функциям:
Код:
Передвижение:
0x2055cea0
typedef void (__thiscall *MTL) (int UNetworkHandler, int AActor, float x_move, float y_move, float z_move, float x_cur, float y_cur, float z_cur, int AActor_WTF, int unk0, int unk1, int unk2);
// AActor - естественно нашего перса, там как двигаем мы себя
// AActor_WTF - фиг знает что это, но ссылка на него находится по адресу "AActor + 0x40"
Выбор таргетов:
0x20549990
typedef int (__thiscall *Action)(int UNetworkHandler_this, int target_ID, float x, float y, float z, int Unk_zero);
Что угодно (функ. отправки пакета)
smackw32.dll + 0x262C0 (при обновлениях может меняться оффсет, сейчас 0x263B0) (да, мы запускаем не из Engine.dll, так как туда пакет уже зашифрованным заходит, а вот тут он в первозданном виде)
typedef void(__cdecl *SendPacket)(int pClass, char* pStrFormat, int iPacketID, ...);
// pClass находится по адресу "UNetworkHandler + 0x48"
// далее идет указатель на строку формата пакета
// далее на ID пакета
// далее зависит от того что за пакет отправляется
смотреть какому пакету какой "формат", и что там дальше передавать в аргументы при помощи отладчиков.
вот к примеру пакет "Action"
Код:
SendPacket(pClass, "cdddddc", 0x1F, _id, cX, cY, cZ, 0, 0);
// pClass - оговаривалось ранее
// "cdddddc" - формат, "c" - байт\чар (id пакета), d - dword, S - указатель на строку Unicode
// итого в аргементы-> байт (id пакета), 5 двордов и еще байт
// 0x1F - ID пакета Action
// _id - уникальный ID того, что нужно выделить\атаковать
// координаты
*Достаточно легко отлавливается и пакет на отправку сообщения в чат (но для каждого типа чата (трейд, шаут, приват, ...) свой пакет).
World to Screen
все так же как и в прошлый раз, вот новые смещения матриц:
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
боже чувак ты задолбал уже. сколько можно?
ты мне еще в почтовый ящик на квартиру письма слать начни.
я не буду обновлять старую анатомию, я не буду делать нормальную новую, я не играю в эту игру. я ковыряю двиг в свободное время, все.
я тебе уже отвечал что ты в скайпе был вброшен в черный список из-за постоянного спама.
я могу помочь с вопросами по разработке\реверсу движка, не более.
Добавлено через 15 часов 39 минут
пример реверса пакета для сообщений в чат.
по такой же схеме ловился любой пакет, скилы, июазние предметов и т.д.
первое что нужно ws2_32.send - через нее выходит траффик на сервер.а там понеслась...
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось separater; 28.01.2018 в 15:10.
Причина: Добавлено сообщение
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
Привет, уважаемые господа) Есть проблема, мы не можем корректно внедриться в процесс bsfg, игра вылетает, как только мы пытаемся поставить бряк на какой-либо функции. Есть идеи, почему так происходит?
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
ИМХО "внедриться" и "бряк" (т.е. отладка) это несколько разные вещи, которые между собой особо не пересекаются. Если проблема именно с бряком, то скорей всего поток, где срабатывает бряк отключен от отладки.
________________
ScythBot: [Ссылки могут видеть только зарегистрированные пользователи. ].
Не забываем кликать "Спасибо", вам бесплатно, а мне приятно
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
Для Cheat Engine такое решение:
Идем в опции , настройки отладки - выбираем отладчик на уровне ядра (kernelmode)
[Ссылки могут видеть только зарегистрированные пользователи. ]
но ему нужен драйвер.
Что бы запустить драйвер:
Идем во вкладку "помощь" - "Описание" - кликаем по зеленому тексту - жмем "ок"
[Ссылки могут видеть только зарегистрированные пользователи. ]
Драйвер запускать нужно каждый раз после перезагрузки ПК.
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
separater, спасибо за помощь, помогло =) Тока трабл с 10-ой виндой, на ней драйвер никак не хочет заводиться, бсод выкидывает или глухо вешает систему. А вот на 7-ке заводится за милую душу, начинаем эксперименты ;-) Кста, быть может есть у кого рецепт, как запустить этот злополучный DBVM драйвер на 10-ой винде?
Re: Battles For Glory 2 Наследие, радар\бот\спаммер
Цитата:
Сообщение от KepLer1050
separater, спасибо за помощь, помогло =) Тока трабл с 10-ой виндой, на ней драйвер никак не хочет заводиться, бсод выкидывает или глухо вешает систему. А вот на 7-ке заводится за милую душу, начинаем эксперименты ;-) Кста, быть может есть у кого рецепт, как запустить этот злополучный DBVM драйвер на 10-ой винде?
[Ссылки могут видеть только зарегистрированные пользователи. ]
разраб предлагает скачать вот это:
[Ссылки могут видеть только зарегистрированные пользователи. ]
а закинуть в папку с CE.
"Just extract these files over the ones in the cheat engine installation folder"
вроде как кому-то помогло. можно попробовать.
а так вообще фиг знает. win 10 зло, юзал только на работе, ничего хорошего не заметил. пока что вин7 тащит)