Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Баг-репорты (http://mangos.ytdb.ru/forumdisplay.php?f=27)
-   -   Wpe pro (http://mangos.ytdb.ru/showthread.php?t=3071)

Onfus 30.11.2010 17:01

Wpe pro
 
Недавно игрок выдал сведения о данной программе, точнее о найденном изъяне. Программа не пашет на мангосе в 99% случаев, однако речь пойдёт о более интересном. Как я понял, есть некий нпс в даларане, через которого реализуется возможность рисовать себе любой предмет. Информацию уточню, однако у кого какие мысли по поводу защиты от данной программы. На данном форуме тем про данную программу поиск не выдал.

YuruY 30.11.2010 17:18

Цитата:

Программа не пашет на мангосе в 99% случаев
Давно смотрю отзывы в инете насчет Тринити - их ядро зато для WPE сплошная дыра. =)

MaS0n 30.11.2010 18:35

WPE внедряет свою dll в клиент, и перехватывает пакеты после отправки их серверу, т.е если защищатся на стороне сервера, надо просто проверять приходящие данные

Пара примеров действующих уже защит :

От подмены спеллов защищает проверка, есть ли этот кастуемый спелл в книжке, соотв. всякие death touch идут лесом

Можно подменить итем при покупке у вендора, но купить например уголь и получить в инвентарь т10 не получится. Проверка наличия этого итема у вендора. Не видал еще у вендоров угля и т10 вместе

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

Вобщем если хорошо подумать и знать как именно рисуют шмот, то можно и закрыть дырку

А 100% защиты нет, только варден или внешний античит

rsa 30.11.2010 22:18

Вообще говоря wpe это уже не софтина а принцип - замена содержимого пакетов по некоей маске. Тем же самым вполне может заниматься iptables на промежуточном роутере (кстати таким образом шлется большой привет и вардену и 4х сокетному редиректу в 4.х ;)
Все случаи использования эксплойтов с помощью впе закрыть невозможно - кто его знает как извратятся малолетние кульхацкеры. Но по факту отлова дырки закрываются и вполне успешно. В мангосе действительно закрыто множество дыр из до сих пор торчащих в тринити. Но осталось еще не так уж и мало. Я недавно в своем античите прикрыл еще парочку мне известных (например каст оживления покойниками), но думаю это соревнование кто-кого будет существовать столько же сколько мангос ;)

Onfus 01.12.2010 18:30

Использую:
MaNGOS 10721
YTDB 572
ScriptDev2 1871
Как оказалось, впе работает с любым вендором. За 5 дней распространения программы, пол сервера оделось в фулл а8. Ситуация плачевная. Что делать?

ПС: Думал провести тесты на тринити, а там ещё хуже - чтобы увидеть репозиторий тринити, нужно зарегистрироваться на их форуме, однако требуется код друга при регистрации, т.е. нужно иметь друга с регистрацией. В мире и так хватает людей с... а тут ещё добавок. Зачем было так делать, не понятно. Если защита от спама, то можно было реализовать режим чтения только что зарегистрированным пользователям на 3 дня.

LordJZ 01.12.2010 18:40

Цитата:

Сообщение от Onfus (Сообщение 16752)
...чтобы увидеть репозиторий тринити...

http://code.google.com/p/trinitycore/source/list

Onfus 01.12.2010 19:42

Один игрок поделился полной информацией по поводу данной программы. Тестировали программу при мне, шмот само собой рисовался. Пришла идея провести тесты данной программы на ядре тринити. Есть очень много проектов - однодневок. (однодневки удобны тем, что на них как правило админы - новички и они в принципе не знают, как защищаться, например от ДОС атак. Cisco, router - новые слова для них) Зашли на 3-4 сервера с онлайном в 1-10 человек. Проверили ядро командой: .server info Операционки были разные: win32, win64, linux. Произвели тестирование Wpe pro и были в шоке - программа не работает. В игре идёт ответ на рисование любого предмета - предмет не найден.

Подведём итог: Нужно в срочном темпе разбирать данную проблему... :)

rsa 01.12.2010 20:20

Не знаю как на чистом ядре (давно не проверял) но ни один старый (и опубликованный на вовж...) способ рисования через впе у меня не работает. Проверяли игроки-кульхацкеры а не я (у меня за успешное читерство призы а не баны ;).
А, да, на 10105 да еще и скорее всего без патчей Карателя есть минимум 3 способа "рисования". Все заткнуты даже в чистом ядре, причем давно.

Onfus 01.12.2010 20:29

Цитата:

Сообщение от rsa (Сообщение 16759)
Не знаю как на чистом ядре (давно не проверял) но ни один старый (и опубликованный на вовж...) способ рисования через впе у меня не работает. Проверяли игроки-кульхацкеры а не я (у меня за успешное читерство призы а не баны ;).
А, да, на 10105 да еще и скорее всего без патчей Карателя есть минимум 3 способа "рисования". Все заткнуты даже в чистом ядре, причем давно.

Цитата:

Использую:
MaNGOS 10721
YTDB 572
ScriptDev2 1871
Мой косяк, подпись исправлю.

Lurker 02.12.2010 16:44

Цитата:

Сообщение от Onfus (Сообщение 16757)
Один игрок поделился полной информацией по поводу данной программы. Тестировали программу при мне, шмот само собой рисовался. Пришла идея провести тесты данной программы на ядре тринити. Есть очень много проектов - однодневок. (однодневки удобны тем, что на них как правило админы - новички и они в принципе не знают, как защищаться, например от ДОС атак. Cisco, router - новые слова для них) Зашли на 3-4 сервера с онлайном в 1-10 человек. Проверили ядро командой: .server info Операционки были разные: win32, win64, linux. Произвели тестирование Wpe pro и были в шоке - программа не работает. В игре идёт ответ на рисование любого предмета - предмет не найден.

Подведём итог: Нужно в срочном темпе разбирать данную проблему... :)

Чтобы разбирать проблему нужно как минимум расписать метод "рисования", вы пока только очем-то туманном говорите и ничего конкретного.

rsa 02.12.2010 17:02

Он пишет про подмену ида вещи при покупке у торговца (берешь самую дешевую а получаешь самую дорогую, в тч и за марки). Пофикшено аллах помнит когда.

zhenya 03.12.2010 06:48

угу. проверка на есть ли итем в вендор листе уже существует очень давно.

AndreyVolkov 03.12.2010 15:41

Предварительно проверено лично.
Mangos rev.: 10795
ScriptDev2 rev.: 1892
UDB rev.: 394

Берем вендора фруктов в Даларане, берем ID "Красного яблока", в замену проставляется ID любой вещи, маунтов и т.д. Итог, при покупке яблока в сумку падает нужная вещь. Стоимость списывается именно вещи. Т.е. маунт 20т голды, а не 25 меди как яблоко. Все шмотки за баджи, осколки и т.д - стоят 0. Арена сэт - стоит 0.
Короче все покупается по себестоимости.

Lurker 03.12.2010 16:06

ну если по себестоимости берется об-чем речь тогда, я думал найден какой-то Другой метод...

Stoun 03.12.2010 16:09

Цитата:

ну если по себестоимости берется об-чем речь тогда
собестоемость item_template.BuyPrice

zhenya 03.12.2010 17:50

получается отвалилось
Код:

    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;
    }

?

PSZ 03.12.2010 19:00

Хм. Все эти проверки на месте.

Stoun 03.12.2010 21:45

Mangos_rev: 10795
Сам проверил, работает, место бананов получаю клинки неумолимого...

rsa 03.12.2010 22:45

Проверил, получаю бананы. Судя по коду вместо бананов я фиг чего получу, хотя использование в коде
if (Item *it = StoreNewItem( dest, item, true ))
тогда как все проверки мы делаем не на приходящий от игрока item а на
crItem->item, вычисляемый от позиции в вендорлисте, далеко не есть хорошо. Возможно эксплойт сложнее и цепляется еще за чтото.

Vladimir 04.12.2010 05:24

Востановлена корректность работы проверки в [10821] для вендоров.
Мои кривые руки ее сломали при добавлении конвертации BOA предметов при покупке.

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

Vladimir 05.12.2010 11:14

Спасибо YuruY за информацию.

https://gist.github.com/728959 добавляет проверки для квестов против подмены пакетов.
Я не добавил в репо по причине не 100% уверенности что все виды внутренних квестов охвачены (из-за добавленного требования присуствия в querst book они не будут работать если я какие забыл). Если проблем не найду - добавлю чуть позже в репозитарий.

rsa 07.12.2010 11:44

Цитата:

Сообщение от Vladimir (Сообщение 16874)
Спасибо YuruY за информацию.

https://gist.github.com/728959 добавляет проверки для квестов против подмены пакетов.
Я не добавил в репо по причине не 100% уверенности что все виды внутренних квестов охвачены (из-за добавленного требования присуствия в querst book они не будут работать если я какие забыл). Если проблем не найду - добавлю чуть позже в репозитарий.

требует серьезной доработки. часть легальных квестов после этого сдать нельзя, примеры - цепочка ДК начиная со 2го.


Текущее время: 16:54. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS