Откуда вызываются формировщики
Разбирал один пакет, Client->Server направленности, хотел пошариться по месту где вызывается функция формирующая пакет, и тут столкнулся с проблемой: поиск по декомпилированному листингу ничего не дал кроме объявления и заполнения этой функции. Получается, что она тоже вызывается по хеш таблице, или как это там правильно называется, а вот как найти эту таблицу никто не в курсе?
Клиент 4.0.6а. |
CMSG отправляющие функции должны вызываться прямым образом. Попробуй использовать xref в иде вместо поиска по декомпилу. Точнее сказать не могу, не зная про какой пакет речь.
|
Смотре в иде, она вроде как в дереве указывает откуда функция вызывается, но для моей ничего подобного не увидел. Опкод CMSG_GUILD_ADD_RANK.
|
Не напрямую, но как я и говорил по xref находится.
Для билда 14333: CMSG_GUILD_ADD_RANK, номер 33888, хэндлер 6B96E0. По xref находится только Код:
.rdata:00B8F498 off_B8F498 dd offset sub_6B96E0 |
Спасибо, добрался я до нужного места :)
Теперь другой вопрос :) смотря на функцию int __thiscall sub_969F70(void *this, int a2) я как понял в первом аргументе идет адрес, дальше к примеру к этому адресу прибавляется 57 (CDataStore__PutInt8(a2, *((_BYTE *)v3 + 57));) ну и т.п. А теперь вопрос: от какого адреса нужно плясать? Я так понял нужно от адреса вызова функции sub_4ED020: Код:
if ( FrameScript__IsString(a1, 1) ) |
Текущее время: 03:28. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS