FTGuard. Game Guard?

Alsander

Путник
Пользователь
Сообщения
14
Розыгрыши
0
Репутация
0
Реакции
4
Баллы
0
От клиента в ответе приходит 0, а должно 104. Ведь ответ от ГГ пришел, но значение в _dx: 0, а должно быть 104. Что это все означает? Куда копать? :)

public class GameGuardReply extends L2GameClientPacket
{
private static final Logger _log = LoggerFactory.getLogger(GameServer.class);
private int _dx;

@Override
protected void readImpl()
{
_dx = readC();
_log.info("packet in readImpl= " + _dx);
}

@Override
protected void runImpl()
{
GameClient client = getClient();
if (_dx == 104)
client.setGameGuardOk(true);
else
client.setGameGuardOk(false);

}

@Override
public String getType()
{
return "[C] CB GameGuardReply";
}
}

Хроники Хай5. Что за ГГ шлет в ответ 104, если включен?

Да ладно ... Не верю!
 
Последнее редактирование модератором:
На лыже глянь, у них пакет этот вроде реализован.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
От клиента в ответе приходит 0, а должно 104. Ведь ответ от ГГ пришел, но значение в _dx: 0, а должно быть 104. Что это все означает? Куда копать? :)

public class GameGuardReply extends L2GameClientPacket
{
private static final Logger _log = LoggerFactory.getLogger(GameServer.class);
private int _dx;

@Override
protected void readImpl()
{
_dx = readC();
_log.info("packet in readImpl= " + _dx);
}

@Override
protected void runImpl()
{
GameClient client = getClient();
if (_dx == 104)
client.setGameGuardOk(true);
else
client.setGameGuardOk(false);

}

@Override
public String getType()
{
return "[C] CB GameGuardReply";
}
}

Хроники Хай5. Что за ГГ шлет в ответ 104, если включен?

:Come On: ... Не верю!
Код:
package GameGuard.network.clientpackets;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;


import proj.gameserver.network.GameClient;
import proj.gameserver.network.clientpackets.L2GameClientPacket;

public class GameGuardReply extends L2GameClientPacket
{
    private final byte[] _reply = new byte[8];
    private static final byte[] VALID =
    {
        (byte) 0x88,
        0x40,
        0x1c,
        (byte) 0xa7,
        (byte) 0x83,
        0x42,
        (byte) 0xe9,
        0x15,
        (byte) 0xde,
        (byte) 0xc3,
        0x68,
        (byte) 0xf6,
        0x2d,
        0x23,
        (byte) 0xf1,
        0x3f,
        (byte) 0xee,
        0x68,
        0x5b,
        (byte) 0xc5,
    };
    @Override
    protected void readImpl()
    {
        readB(_reply, 0, 4);
        readD();
        readB(_reply, 4, 4);
    }

    @Override
    protected void runImpl()
    {
        GameClient client = getClient();
        try
        {
            MessageDigest md = MessageDigest.getInstance("SHA");
            byte[] result = md.digest(_reply);
            if (Arrays.equals(result, VALID))
            {
                client.setGameGuardOk(true);
            }
        }
        catch (NoSuchAlgorithmException e)
        {
            //_log.log(Level.WARNING, "", e);
        }
    }

    @Override
    public String getType()
    {
        return "[C] CB GameGuardReply";
    }
}
ну как то так)
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
ну ты же всё это знаешь.
зачем допрос устаревать?

Если ты знаешь что там за код.
Вот с твоего Arrays метод. Распиши каждое условие.
Код:
public static boolean equals(Object[] a, Object[] a2) {
    if (a==a2)
        return true;
    if (a==null || a2==null)
        return false;

    int length = a.length;
    if (a2.length != length)
        return false;

    for (int i=0; i<length; i++) {
        Object o1 = a[i];
        Object o2 = a2[i];
        if (!(o1==null ? o2==null : o1.equals(o2)))
            return false;
    }

    return true;
}
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Если ты знаешь что там за код.
Вот с твоего Arrays метод. Распиши каждое условие.
Код:
public static boolean equals(Object[] a, Object[] a2) {
    if (a==a2)
        return true;
    if (a==null || a2==null)
        return false;

    int length = a.length;
    if (a2.length != length)
        return false;

    for (int i=0; i<length; i++) {
        Object o1 = a[i];
        Object o2 = a2[i];
        if (!(o1==null ? o2==null : o1.equals(o2)))
            return false;
    }

    return true;
}

Возвращает True , если два указанных массива из объектов
равна друг с другом. Два массива считаются равными, если
Оба массива содержат то же самое число элементов, и все соответствующие
Пары элементов в двух массивов равны. Два объекта
И считаются равна если e1==null ? e2==null
E1.equals (е2)) . Другими словами, два массива равны, если
Они содержат те же самые элементы в том же порядке. Кроме того, два массива
Ссылки считаются равными, если оба NULL
В один массив для проверки на равенство
А2 другой массив для проверки на равенство
return True , если два массива равны
В равно equals() массивов наследуется от Object, так что не смотрите на содержании arrrays, это только рассматривает каждый массив, равный себе.
В Arrays.equals() методы сделать сравнение содержимого массивов. Там же перегрузки для всех примитивных типов, и один для объектов использует собственные объекты equals() методы.
 
upload_2015-10-4_21-35-13.png



Блин:( Вот этот гугл
 
Последнее редактирование:
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Посмотреть вложение 1043



Блин:( Вот этот гугл
Немного не то
 
Почему на каждый запрос разный ответ?
[05.10.15 01:54:46:107] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:54:36:105] INFO clientpackets.GameGuardReply: Result: [B@5c853af0
[05.10.15 01:54:36:105] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:54:46:107] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:54:46:107] INFO clientpackets.GameGuardReply: Result: [B@51221b3d
[05.10.15 01:54:46:107] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:54:56:107] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:54:56:107] INFO clientpackets.GameGuardReply: Result: [B@700a46df
[05.10.15 01:54:56:107] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:06:109] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:06:109] INFO clientpackets.GameGuardReply: Result: [B@4f12646e
[05.10.15 01:55:06:109] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:16:116] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:16:116] INFO clientpackets.GameGuardReply: Result: [B@a5ad706
[05.10.15 01:55:16:116] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:26:115] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:26:115] INFO clientpackets.GameGuardReply: Result: [B@782c37a1
[05.10.15 01:55:26:115] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:36:110] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:36:110] INFO clientpackets.GameGuardReply: Result: [B@1815632
[05.10.15 01:55:36:110] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:46:111] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:46:111] INFO clientpackets.GameGuardReply: Result: [B@40fa4f6c
[05.10.15 01:55:46:111] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:55:56:114] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:55:56:114] INFO clientpackets.GameGuardReply: Result: [B@3dc6463b
[05.10.15 01:55:56:114] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
[05.10.15 01:56:06:104] INFO network.GamePacketHandler: In game: GameGuardReply
[05.10.15 01:56:06:104] INFO clientpackets.GameGuardReply: Result: [B@41f0bc1c
[05.10.15 01:56:06:104] INFO clientpackets.GameGuardReply: Valid: [B@4f39027c
 
Это хешкод обьекта. Чтобы вывести массив нужно юзать Arrays.toString(имя массива)
 

Похожие темы

Ответы
7
Просмотры
Назад
Сверху Снизу