Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
C++ перехват пакетов
#81
Zubastic Написал:Спасибо, вечером проверю, А модификация существующих пакетов работает корректно?

Ну если меняешь константные по размеру переменные, например всякие id'шники, то да. Или если меняешь строки на равные/более короткие, тогда тоже, достаточно остаток строки забить L'\0', и нормально. А вот если в сторону увеличения менять те же строки, то надо старый пакет удалять, и на его основе делать новый, как у меня собственно и сделано.

С другой стороны, никто не отменял округление выделяемого размера памяти, есть предположение, что для выделения памяти используется VirtualAlloc, который в принципе меньше размера страницы (4кб) не выделяет. Так что можно попробовать забить на реаллокацию, и тупо прямо в пакет нахерачить сверху данных, и посмотреть, что выйдет. Вечерком гляну.

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

Есть еще вариант, он не очень красивый, но тем не менее. Можно перехватывать вызов gmalloc, и если игра пытается выделить место под пакет (первый параметр == L"NetPacket"), тогда меняем размер на 64кб, например, которых точно хватит на любые изощрения. Тогда можно будет модифицировать любые игровые пакеты прямо на лету, как в большую, так и меньшую сторону, без всяких утечек памяти и реаллокации.
Ответ
#82
Я над этим тоже думал:
Проблема в том, что необходимо увеличивать/сокращать количество аргументов т.е. например изменить тип системного сообщения (например ddd на dss), а значит удаление и создание нового пакета - самое то.
Я смотрел буфер, там после окончания пакета идет другой пакет (ну или мусор), поэтому мне стремно перетирать буфер.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#83
Zubastic Написал:Я над этим тоже думал:
Проблема в том, что необходимо увеличивать/сокращать количество аргументов т.е. например изменить тип системного сообщения (например ddd на dss), а значит удаление и создание нового пакета - самое то.
Я смотрел буфер, там после окончания пакета идет другой пакет (ну или мусор), поэтому мне стремно перетирать буфер.

Создание нового пакета - это самый чистый способ, тем более игровыми средствами. В этой точке можно: анализировать пакеты, удалять не желательные, модифицировать существующие, и добавлять свои, в общем, все, что нужно для счастья)
Ответ
#84
И мне кажется, что защита этот самый хороший способ блокирует :redlol:
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#85
Zubastic Написал:И мне кажется, что защита этот самый хороший способ блокирует :redlol:

Ну не конкретно этот, а само изменение вмт) это еще лама палила)
Ответ
#86
Интересно как обходить подобное. Ну кроме траплинов внутри функций...
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#87
Zubastic Написал:Интересно как обходить подобное. Ну кроме траплинов внутри функций...


Драйвер писать) в юзермоде мало возможностей)
Ответ
#88
Неподписанные драйвера же на х64 не работают (если не включать режим).
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#89
Zubastic Написал:Неподписанные драйвера же на х64 не работают (если не включать режим).

Купить сертификат не большая проблема, или воспользоваться дырой в уже подписаном драйвере, но свой сертификат конечно лучше. Тут гораздо большие проблемы вызывает PG.
Ответ
#90
Цитата:Здесь присутствуют: 8 (пользователей: 5 , гостей: 3)
Zubastic, Persy, B J, Пионер
Слиш скайп ок да?
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Свой сниффер и редактор пакетов SiriusED 0 462 03-22-2024, 03:28 AM
Последний пост: SiriusED
  Реконструкция пакетов из WSARecv\WSASend ANZO 3 2,492 04-17-2016, 08:34 PM
Последний пост: Necroz-Team
  Подмен пакетов katanasmil 4 3,091 06-16-2014, 07:24 PM
Последний пост: PROGRAMMATOR
  Опкоды пакетов при хуке Mifesto 3 2,435 07-09-2013, 04:18 PM
Последний пост: Mifesto

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)