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

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 21.01.2010, 04:38   #41
Новичок
 
Регистрация: 21.01.2010
Сообщений: 3
Сказал Спасибо: 0
Имеет 6 спасибок в 2 сообщенях
brat пока неопределено
По умолчанию

Цитата:
Сообщение от Cooper85 Посмотреть сообщение
NetworkPacket: Pointer
А кто-то может поделится примерной структурой этого дела ?
Код:
PNetworkPacket = ^TNetworkPacket;
TNetworkPacket = packed record
    id: byte;  // ID пакета
    res: byte; // тут ничего нужного нет
    id2: Smallint; // второй ID если есть
    size: Cardinal; // размер данных
    data: Pointer; // указатель на данные
  end;

Последний раз редактировалось brat, 21.01.2010 в 04:43.
brat вне форума   Ответить с цитированием
За это сообщение brat нажился 4 спасибками от:
Старый 22.01.2010, 04:18   #42
Новичок
 
Регистрация: 14.08.2009
Сообщений: 14
Сказал Спасибо: 7
Имеет 3 спасибок в 2 сообщенях
Cooper85 пока неопределено
По умолчанию

Теперь другая проблема. Менеджмент памяти в чужом процессе...
reallocmemory при изменении размера данных пакета очевидно не выход...
Если выделять память самостоятельно, то интересно по завершению обработки пакета в дебрях л2 уже выделенный линейкой блок будет освобождаться , или мной созданный. В первом случае - утечка памяти, во втором - как мне освобождать созданные блоки, по таймеру что ли, или по следующему вызову функции скорее всего...

Или все-таки с reallocmemory прокатит...
зы: это все про хук на UNetworkHandler_AddNetworkQueue

Последний раз редактировалось Cooper85, 22.01.2010 в 04:23.
Cooper85 вне форума   Ответить с цитированием
Старый 22.01.2010, 04:38   #43
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Cooper85, у меня не вышло заставить UNetworkHandler_AddNetworkQueue принимать мои пакеты, как я только не выделял память - клиент вылетает с критом при попытке вызвать эту функцию...
ЗЫ хотя возможно эт из за того что я её вызывал в отдельном потоке, лень мне было пробовать вызвать её в еёном потоке)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 26.01.2010, 21:52   #44
Новичок
 
Регистрация: 14.08.2009
Сообщений: 14
Сказал Спасибо: 7
Имеет 3 спасибок в 2 сообщенях
Cooper85 пока неопределено
По умолчанию

Там как я понял, свой менеджер памяти (и не один наверно) в виде класса FMallocWindows(FMalloc). Причем один экземляр FMalloc объявлен в экспорте Core.dll. Наверно тот который инициализируется вместе с AppInit(..).
Теперь интересует все про представление сишных классов в памяти... В частности, как получить указатель на метод класса, имея указатель на экземпляр в памяти.
Cooper85 вне форума   Ответить с цитированием
Старый 26.01.2010, 22:12   #45
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 50
Сказал Спасибо: 10
Имеет 10 спасибок в 1 сообщении
murc пока неопределено
По умолчанию

Тебе для чего это ?
murc вне форума   Ответить с цитированием
Старый 26.01.2010, 22:52   #46
Новичок
 
Регистрация: 14.08.2009
Сообщений: 14
Сказал Спасибо: 7
Имеет 3 спасибок в 2 сообщенях
Cooper85 пока неопределено
По умолчанию

murc,
Цитата:
Сообщение от xkor
заставить UNetworkHandler_AddNetworkQueue принимать мои пакеты
Cooper85 вне форума   Ответить с цитированием
Старый 27.01.2010, 03:53   #47
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 50
Сказал Спасибо: 10
Имеет 10 спасибок в 1 сообщении
murc пока неопределено
По умолчанию

может тогда проще DispatchNetworkQueue хукнуть, подменив указатели на выходе ?
murc вне форума   Ответить с цитированием
Старый 27.01.2010, 14:38   #48
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

а волкер делает так: хукает на WSAAsyncSelect()... а дальше стратегическая тайна.

Добавлено через 48 секунд
Цитата:
Сообщение от murc Посмотреть сообщение
может тогда проще DispatchNetworkQueue хукнуть, подменив указатели на выходе ?
тогда теряем оригинальные пакеты?
__________________
Шожиделать.. ботить хочется..

Последний раз редактировалось destructor, 27.01.2010 в 14:38. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
Старый 27.01.2010, 19:00   #49
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 50
Сказал Спасибо: 10
Имеет 10 спасибок в 1 сообщении
murc пока неопределено
По умолчанию

Причем тут WSAAsyncSelect() и AddNetworkQueue ?

Теоретически (для Интерлюдии)
call DispatchNetworkQueue@UNetworkHandler
в [edi] - адрес структуры TNetworkPacket
меняем на свое, вуаля читем что состряпали
Теоретически все должно пройти норм.

Upd Попробовал вчера подменить в тике клиента когда DispatchNetworkQueue возвращает ноль.. access violation гдето в обработчике пакета, дальше стало лень..

Последний раз редактировалось murc, 28.01.2010 в 12:52.
murc вне форума   Ответить с цитированием
Старый 28.01.2010, 04:53   #50
Пользователь
 
Аватар для Maxno
 
Регистрация: 26.05.2009
Сообщений: 70
Сказал Спасибо: 32
Имеет 13 спасибок в 10 сообщенях
Maxno пока неопределено
Смущение Странно как то...

народ... вот есть список функций в dll в оригинале.. но как мне получить список функций уже с дампа... т.е. если вот xkor приводил пример перехвата функции "UNetworkHandler::AddNetworkQueue"... она выглядит как "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPa cket@@@Z".. как получить?

ЗЫ: список функций взят от Gracia Final Epilogue (Plus)
Вложения
Тип файла: rar asterios-список функций core_engine_fire_nwindow.dll.rar (56.9 Кб, 231 просмотров)
__________________
Home site - www.xmlex.ru
Maxno вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Полезности



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

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


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

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

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