|
Баг-репорты Описываем проблемы и ошибки работы ядра |
|
Опции темы | Поиск в этой теме | Опции просмотра |
30.11.2010, 17:01 | #1 |
Гость
Сообщений: n/a
|
Wpe pro
Недавно игрок выдал сведения о данной программе, точнее о найденном изъяне. Программа не пашет на мангосе в 99% случаев, однако речь пойдёт о более интересном. Как я понял, есть некий нпс в даларане, через которого реализуется возможность рисовать себе любой предмет. Информацию уточню, однако у кого какие мысли по поводу защиты от данной программы. На данном форуме тем про данную программу поиск не выдал.
|
30.11.2010, 17:18 | #2 | |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
Цитата:
|
|
30.11.2010, 18:35 | #3 |
Модератор
|
WPE внедряет свою dll в клиент, и перехватывает пакеты после отправки их серверу, т.е если защищатся на стороне сервера, надо просто проверять приходящие данные
Пара примеров действующих уже защит : От подмены спеллов защищает проверка, есть ли этот кастуемый спелл в книжке, соотв. всякие death touch идут лесом Можно подменить итем при покупке у вендора, но купить например уголь и получить в инвентарь т10 не получится. Проверка наличия этого итема у вендора. Не видал еще у вендоров угля и т10 вместе Нашумевший эксплоит с Темной Скорбью - там хорошая проверка наличия подмененного квеста пролетает, т.к у одного и того же моба и искомый квест и квест на Темную Скорбь. Но можно при комплите квестов проверять завершение предшествующих в кв. цепочке Вобщем если хорошо подумать и знать как именно рисуют шмот, то можно и закрыть дырку А 100% защиты нет, только варден или внешний античит |
30.11.2010, 22:18 | #4 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Вообще говоря wpe это уже не софтина а принцип - замена содержимого пакетов по некоей маске. Тем же самым вполне может заниматься iptables на промежуточном роутере (кстати таким образом шлется большой привет и вардену и 4х сокетному редиректу в 4.х
Все случаи использования эксплойтов с помощью впе закрыть невозможно - кто его знает как извратятся малолетние кульхацкеры. Но по факту отлова дырки закрываются и вполне успешно. В мангосе действительно закрыто множество дыр из до сих пор торчащих в тринити. Но осталось еще не так уж и мало. Я недавно в своем античите прикрыл еще парочку мне известных (например каст оживления покойниками), но думаю это соревнование кто-кого будет существовать столько же сколько мангос |
01.12.2010, 18:30 | #5 |
Гость
Сообщений: n/a
|
Использую:
MaNGOS 10721 YTDB 572 ScriptDev2 1871 Как оказалось, впе работает с любым вендором. За 5 дней распространения программы, пол сервера оделось в фулл а8. Ситуация плачевная. Что делать? ПС: Думал провести тесты на тринити, а там ещё хуже - чтобы увидеть репозиторий тринити, нужно зарегистрироваться на их форуме, однако требуется код друга при регистрации, т.е. нужно иметь друга с регистрацией. В мире и так хватает людей с... а тут ещё добавок. Зачем было так делать, не понятно. Если защита от спама, то можно было реализовать режим чтения только что зарегистрированным пользователям на 3 дня. |
01.12.2010, 18:40 | #6 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
01.12.2010, 19:42 | #7 |
Гость
Сообщений: n/a
|
Один игрок поделился полной информацией по поводу данной программы. Тестировали программу при мне, шмот само собой рисовался. Пришла идея провести тесты данной программы на ядре тринити. Есть очень много проектов - однодневок. (однодневки удобны тем, что на них как правило админы - новички и они в принципе не знают, как защищаться, например от ДОС атак. Cisco, router - новые слова для них) Зашли на 3-4 сервера с онлайном в 1-10 человек. Проверили ядро командой: .server info Операционки были разные: win32, win64, linux. Произвели тестирование Wpe pro и были в шоке - программа не работает. В игре идёт ответ на рисование любого предмета - предмет не найден.
Подведём итог: Нужно в срочном темпе разбирать данную проблему... |
01.12.2010, 20:20 | #8 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Не знаю как на чистом ядре (давно не проверял) но ни один старый (и опубликованный на вовж...) способ рисования через впе у меня не работает. Проверяли игроки-кульхацкеры а не я (у меня за успешное читерство призы а не баны .
А, да, на 10105 да еще и скорее всего без патчей Карателя есть минимум 3 способа "рисования". Все заткнуты даже в чистом ядре, причем давно. Последний раз редактировалось rsa; 01.12.2010 в 20:21. Причина: глянул на ревизию ядра топикстартера |
01.12.2010, 20:29 | #9 | ||
Гость
Сообщений: n/a
|
Цитата:
Цитата:
|
||
02.12.2010, 16:44 | #10 | |
Новичок
Регистрация: 08.03.2010
Сообщений: 13
Сказал(а) спасибо: 32
Поблагодарили 7 раз(а) в 6 сообщениях
|
Цитата:
|
|
02.12.2010, 17:02 | #11 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Он пишет про подмену ида вещи при покупке у торговца (берешь самую дешевую а получаешь самую дорогую, в тч и за марки). Пофикшено аллах помнит когда.
|
03.12.2010, 06:48 | #12 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
угу. проверка на есть ли итем в вендор листе уже существует очень давно.
|
03.12.2010, 15:41 | #13 |
Гость
Сообщений: n/a
|
Предварительно проверено лично.
Mangos rev.: 10795 ScriptDev2 rev.: 1892 UDB rev.: 394 Берем вендора фруктов в Даларане, берем ID "Красного яблока", в замену проставляется ID любой вещи, маунтов и т.д. Итог, при покупке яблока в сумку падает нужная вещь. Стоимость списывается именно вещи. Т.е. маунт 20т голды, а не 25 меди как яблоко. Все шмотки за баджи, осколки и т.д - стоят 0. Арена сэт - стоит 0. Короче все покупается по себестоимости. |
03.12.2010, 16:06 | #14 |
Новичок
Регистрация: 08.03.2010
Сообщений: 13
Сказал(а) спасибо: 32
Поблагодарили 7 раз(а) в 6 сообщениях
|
ну если по себестоимости берется об-чем речь тогда, я думал найден какой-то Другой метод...
|
03.12.2010, 16:09 | #15 | |
Гость
Сообщений: n/a
|
Цитата:
Последний раз редактировалось Stoun; 03.12.2010 в 16:14. |
|
03.12.2010, 17:50 | #16 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
получается отвалилось
Код:
VendorItemData const* vItems = pCreature->GetVendorItems(); VendorItemData const* tItems = pCreature->GetVendorTemplateItems(); if ((!vItems || vItems->Empty()) && (!tItems || tItems->Empty())) { SendBuyError( BUY_ERR_CANT_FIND_ITEM, pCreature, item, 0); return false; } uint32 vCount = vItems ? vItems->GetItemCount() : 0; uint32 tCount = tItems ? tItems->GetItemCount() : 0; if (vendorslot >= vCount+tCount) { SendBuyError( BUY_ERR_CANT_FIND_ITEM, pCreature, item, 0); return false; } VendorItem const* crItem = vendorslot < vCount ? vItems->GetItem(vendorslot) : tItems->GetItem(vendorslot - vCount); if (!crItem) // store diff item (cheating) { SendBuyError( BUY_ERR_CANT_FIND_ITEM, pCreature, item, 0); return false; } Последний раз редактировалось Konctantin; 03.12.2010 в 20:55. Причина: code |
03.12.2010, 19:00 | #17 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
Хм. Все эти проверки на месте.
|
03.12.2010, 21:45 | #18 |
Гость
Сообщений: n/a
|
Mangos_rev: 10795
Сам проверил, работает, место бананов получаю клинки неумолимого... |
03.12.2010, 22:45 | #19 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Проверил, получаю бананы. Судя по коду вместо бананов я фиг чего получу, хотя использование в коде
if (Item *it = StoreNewItem( dest, item, true )) тогда как все проверки мы делаем не на приходящий от игрока item а на crItem->item, вычисляемый от позиции в вендорлисте, далеко не есть хорошо. Возможно эксплойт сложнее и цепляется еще за чтото. |
04.12.2010, 05:24 | #20 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Востановлена корректность работы проверки в [10821] для вендоров.
Мои кривые руки ее сломали при добавлении конвертации BOA предметов при покупке. Если в целом говорить про wpe pro - большую часть подмен можно отследить при аккуратной проверке данных от клиента. Проблема в том что о вариантах проблем или не сообщается разрабочикам и сообщается в бредовой форме, когда даже простого сообщения пакета который присылается при подмене достаточно для нахождение дыры в проверках...
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 04.12.2010 в 05:27. |
16 пользователя(ей) сказали cпасибо: |
05.12.2010, 11:14 | #21 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Спасибо YuruY за информацию.
https://gist.github.com/728959 добавляет проверки для квестов против подмены пакетов. Я не добавил в репо по причине не 100% уверенности что все виды внутренних квестов охвачены (из-за добавленного требования присуствия в querst book они не будут работать если я какие забыл). Если проблем не найду - добавлю чуть позже в репозитарий.
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 05.12.2010 в 11:23. |
07.12.2010, 11:44 | #22 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
|
|