Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 30.01.2012, 20:29   #1
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию Помогите разобрать struct ItemInfo

ItemInfo используется в Api клиента L2 например в функции

UNetworkHandler::RequestDestroyItem(struct ItemInfo)

При изучении выяснилось что struct ItemInfo имеет как минимум следующие поля:

INT32 - указатель хз на что в области памяти клиента L2, если оставить 0 то клиент крашится
INT32 - ItemObjectId
INT32 - 0
INT32 - 0
INT64 - itemCount

Куда интересно может ссылатся первый указатель? Может быть на экземпляр объекта Item в памяти, если так то как его найти?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 31.01.2012 в 14:52.
Yegor вне форума   Ответить с цитированием
Старый 31.01.2012, 10:16   #2
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

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

в любом случае нужен дамп памяти оттуда.
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 31.01.2012, 11:24   #3
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Это конечно не то что ты просил,но... Если хочешь удалить чтото,то используй эту функцию UNetworkHandler::SendDestroyItem(int, __int64)
Guzh вне форума   Ответить с цитированием
За это сообщение Guzh нажился спасибкой от:
Старый 31.01.2012, 11:38   #4
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Наврятли он пытаетса удалить итем записав 0 вместо адреса
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 31.01.2012, 14:50   #5
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Цитата:
Сообщение от Guzh Посмотреть сообщение
Это конечно не то что ты просил,но... Если хочешь удалить чтото,то используй эту функцию UNetworkHandler::SendDestroyItem(int, __int64)
Да клиент эту функцию не использует при удалении, но она работает.

Добавлено через 2 минуты
Нагуглил исходники какого то бота L2Tower там так описывается эта структура

struct ItemInfo
{
void *vftable;
int itemId;
int itemType;
int type;
int quantity;
}; // struct ItemInfo

Только непонятно при чем тут указатель на vftable
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 31.01.2012 в 14:52. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
Старый 31.01.2012, 16:11   #6
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Только непонятно при чем тут указатель на vftable
предположительно при том что на самом деле это не структура а класс и соответственно это ссылка на его таблицу методов)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 31.01.2012, 16:31   #7
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Да клиент эту функцию не использует при удалении, но она работает.

Добавлено через 2 минуты
Нагуглил исходники какого то бота L2Tower там так описывается эта структура

struct ItemInfo
{
void *vftable;
int itemId;
int itemType;
int type;
int quantity;
}; // struct ItemInfo

Только непонятно при чем тут указатель на vftable
Я не могу сказать так это или нет, но вот то что там может быть таблица виртуальных методов, это вполне вероятно.

mira правильно сказал, что надо сдампить память и глянуть что лежит по этому адресу. Если это vftable, то ее, я думаю, ты сразу отличишь)

ЗЫ что-то давно я не отписывался на этом форуме)) пора возвращаться)

Добавлено через 9 минут
Цитата:
Сообщение от xkor Посмотреть сообщение
предположительно при том что на самом деле это не структура а класс и соответственно это ссылка на его таблицу методов)
не факт, кстати))
Если брать тот же cpp, то там разница структуры и класса только в доступе "по умолчанию" и мб еще каких-то мелочах. Но между тем структура так же может иметь методы, в т.ч. и виртуальные

Последний раз редактировалось Aries, 31.01.2012 в 16:31. Причина: Добавлено сообщение
Aries вне форума   Ответить с цитированием
Старый 31.01.2012, 17:41   #8
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Да клиент эту функцию не использует при удалении, но она работает.

Добавлено через 2 минуты
Нагуглил исходники какого то бота L2Tower там так описывается эта структура

struct ItemInfo
{
void *vftable;
int itemId;
int itemType;
int type;
int quantity;
}; // struct ItemInfo

Только непонятно при чем тут указатель на vftable
действительно, это же не структура а класс.
в экземпляре класса первый DWORD это указатель на VMT
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 31.01.2012, 18:43   #9
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

В таком случае почему тогда объявлено как struct ItemInfo и поля которыя я привел в 1 посте все находятся прямо в стеке при вызове функции UNetworkHandler::RequestDestroyItem. Если это был бы класс то через стек передавался только указатель на него.

Добавлено через 2 минуты
Кстати функция UNetworkHandler::SendDestroyItem(int, __int64) не вызывает UNetworkHandler::RequestDestroyItem(struct ItemInfo), видимо это какая то старая функция которая сама формирует пакет, но она работает .
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 31.01.2012 в 18:43. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
Старый 31.01.2012, 19:52   #10
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

какие параметры у UNetworkHandler::RequestDestroyItem?
сейчас у самого времени нет смотреть...
Просто туда не обязательно может передаваться указатель на структуру/класс.

Цитата:
Сообщение от Yegor Посмотреть сообщение
Кстати функция UNetworkHandler::SendDestroyItem(int, __int64) не вызывает UNetworkHandler::RequestDestroyItem(struct ItemInfo), видимо это какая то старая функция которая сама формирует пакет, но она работает .
вот тебе и ответ на вопрос)))
UNetworkHandler::RequestDestroyItem(struct ItemInfo)

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

Последний раз редактировалось Aries, 31.01.2012 в 19:53. Причина: Добавлено сообщение
Aries вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:18.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!