Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   Взлом Ап Очков (https://forum.zone-game.info/showthread.php?t=10988)

Wolfas 09.11.2010 17:42

Взлом Ап Очков
 
Проверил способ взлома Ап очков на сервере AL GO 2.0

И так, как осуществляется:

1. Открываем ArtMoney.
2. Идем к продавцу предметов за АП.
3. Переносим в корзину 10 зелий ценой по 100 АП (не покупая просто переносим в низ).
4. Ищем это число в арт мани.
5. Переносим еще например 10 зелий, чтобы в итоге получилось 20 (не покупаем).
6. Отсеиваем в арт мани.
7. Повторяем 5-6 действия пока не останется одно значение.
8. Теперь берем значение которое осталось и меняем его тип с "целое 4 байта" на "Текст" (путем нажатия ЛКМ на "целое 4 байта")
9. Далее ни чего не стирая подписываем -1000
10. Жмем Ок, заходим в окно игры и видим что значение не купленных еще зелий изменилось на 99999.
11. Покупаем, весь инвентарь заполняется зельями.
12. Делаем релог, смотрим, и у нас 2ккк АП.
13. P.S. Закупаемся всем чем надо и снова ломаем этим же способом и у нас 0 АП.

Вот также видео: http://www.youtube.com/watch?v=kXNrk...eature=related

Нужны идеи по поводу защиты

aspalt 09.11.2010 20:03

Re: Взлом Ап Очков
 
долбанные выродки :D играть нормально не могут..:o

Wolfas 09.11.2010 20:31

Re: Взлом Ап Очков
 
Был бы на их месте, поступил бы также....
Надо это закрывать..

TieLay 09.11.2010 23:02

Re: Взлом Ап Очков
 
Это излечимо только перестройкой моделью взаимодействия клиент-сервер.
В данном случае клиент имеет локальную БД, куда вносятся все изменения на стороне клиента, а сервер потом получает результат и регистрирует в базе не перепроверяя.
А если сделать, что каждый чих постоянно шлётся на сервер и сервер принимает решение о допустимости, то даже такие приколы не помогут ибо будут откинуты сервером.
Вот может в Тере сделают так, что клиент будет отдвавать серверу не результат, а список действий, попытка купить, отказ, попытка одеть, попытка бросить или передать, а уже сервер решает легитимно ли сие. да это потребует очень толстый канал и стабильную связь...

MetaWind 10.11.2010 00:14

Re: Взлом Ап Очков
 
Всё гениальное просто, там после хака зашкаливает значение за 2кк и ап появляется только после релога. Просто ставьте проверку количества АП в CM_ENTER_WORLD и если больше определенного значения то обнуляйте. Как решение фуфло, но как заплатка отлично.

Wolfas 10.11.2010 00:26

Re: Взлом Ап Очков
 
Хм, да если поставить обнулитель после определённого значения, допустим 3кк

Но вот интересно, не умудряться ли игроки, не добираясь до 3кк, получать допустим 2.5кк

MetaWind 10.11.2010 00:34

Re: Взлом Ап Очков
 
если х1-х2 сервер порог в 800000 вполне достаточно. На своем серве пока не заметил читеров АП.
Онлайн вечером 1500-1600 ИМХО давно б додумались)

Wolfas 10.11.2010 05:21

Re: Взлом Ап Очков
 
{Xo_Wind_oX} Прорвете, вдруг у вас этот способ не работает.

MetaWind 10.11.2010 05:48

Re: Взлом Ап Очков
 
В нашу сборку включен этот метод) мы давно пофиксили и флайхак, и АП хак и дюпы личной лавки/ аукциона...

3EBC 10.11.2010 14:50

Re: Взлом Ап Очков
 
Не помню в какой сборки ал, но уже они закрывали этот баг было лично проверино до и после.. Только в какой сборки это было непомню...

Wolfas 10.11.2010 15:17

Re: Взлом Ап Очков
 
{Xo_Wind_oX} А вы можете выложить, патчик, хотя-бы от дюпа ап

MetaWind 10.11.2010 16:20

Re: Взлом Ап Очков
 
Это часть сборки, сборка приватная, увы нет) Используйте энджин, они говорят тоже это пофиксили)

Wolfas 10.11.2010 21:56

Re: Взлом Ап Очков
 
В енджине посмотрю, вы не можете подсказать в каком файле заплатка
или как вы и говорили она в CM_ENTER_WORLD?

Знаю что ещё на 1900+ сборке уников стоял фикс, можно и там поискать..

Wolfas 14.11.2010 03:23

Re: Взлом Ап Очков
 
Да, был закрыт баг, но в al-go его не пофиксели, никто не знает в каком файле стоял фикс?

Добавлено через 13 часов 52 минуты
SM_ABYSS_RANK.java

Код:

/**
 * @author Nemiroff
 *                Date: 25.01.2010
 */
public class SM_ABYSS_RANK extends AionServerPacket
{
        private AbyssRank rank;
        private int currentRankId;
       
        public SM_ABYSS_RANK(AbyssRank rank)
        {
                this.rank = rank;
                this.currentRankId = rank.getRank().getId();
        }

        @Override
        protected void writeImpl(AionConnection con, ByteBuffer buf)
        {
                writeQ(buf, rank.getAp()); //curAP
                writeD(buf, currentRankId); //curRank
                writeD(buf, rank.getTopRanking()); //curRating

                int nextRankId = currentRankId < AbyssRankEnum.values().length ? currentRankId + 1 : currentRankId;
                writeD(buf, 100 * rank.getAp()/AbyssRankEnum.getRankById(nextRankId).getRequired()); //exp %

                writeD(buf, rank.getAllKill()); //allKill
                writeD(buf, rank.getMaxRank()); //maxRank

                writeD(buf, rank.getDailyKill()); //dayKill
                writeQ(buf, rank.getDailyAP()); //dayAP

                writeD(buf, rank.getWeeklyKill()); //weekKill
                writeQ(buf, rank.getWeeklyAP()); //weekAP

                writeD(buf, rank.getLastKill()); //laterKill
                writeQ(buf, rank.getLastAP()); //laterAP

                writeC(buf, 0x00); //unk
        }
}

Если использовать строчку такого вида:

writeQ(buf, rank.getWeeklyAP() < 2000000 ? rank.getWeeklyAP() : 0); //weekAP

Если не на путал с синтаксиом, должно работать как обнулитель


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

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot