Куда приходят запросы от клиента

ncknxk

Путник
Пользователь
Сообщения
13
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
1
Хроники
  1. Prelude
  2. Harbingers of War
  3. Age of Splendor
  4. Rise of Darkness
  5. Scions of Destiny
  6. Oath of Blood
  7. Interlude
  8. The 1st Throne: The Kamael
  9. The 1st Throne: Hellbound
  10. The 2nd Throne: Gracia
  11. The 2nd Throne: Freya
  12. Chaotic Throne: High Five
  13. Goddess of Destruction Awakening
  14. Goddess of Destruction Harmony
  15. Goddess of Destruction Tauti
  16. Goddess of Destruction Glory Days
  17. Goddess of Destruction Lindvior
  18. Valliance / Epeisodion / Raiders
  19. Ertheia / Dimensional Strangers
  20. Infinite Odyssey
  21. Helios
  22. Grand Cursade
  23. Salvation
  24. Fafurion
  25. Shadow of the Kamael
  26. Prelude Of War
  27. Homunculus
  28. Return Of The Queen Ant
  29. Master Class
Исходники
Присутствуют
Сборка
L2J_Mobius_Essence_8.2_HeartOfVolcano
Здравствуйте, я дебажу сервер и мне нужно понять входную точку запросов от клиента может кто то сталкивался и может подсказать, заранее спасибо.
 
Здравствуйте, я дебажу сервер и мне нужно понять входную точку запросов от клиента может кто то сталкивался и может подсказать, заранее спасибо.
нууу, посмотрите где используется "getSupplier" в ClientOutgoingPackets / ExClientOutgoingPackets и там вешайте дебагер :\
 
Если дебажишь через ide)) ставишь брекпойнт допустим в классе где обрабатываются байпасы, и потом смотришь весь стектрейс
 
почему то по этим словам ничего не находит в проекте :unsure:
Java:
    private final int _packetId;
    private final Supplier<ClientPacket> _packetSupplier;
    private final Set<ConnectionState> _connectionStates;
    
    ExClientPackets(int packetId, Supplier<ClientPacket> packetSupplier, ConnectionState... connectionStates)
    {
        // Packet id is an unsigned short.
        if (packetId > 0xFFFF)
        {
            throw new IllegalArgumentException("Packet id must not be bigger than 0xFFFF");
        }
        
        _packetId = packetId;
        _packetSupplier = packetSupplier != null ? packetSupplier : () -> null;
        _connectionStates = new HashSet<>(Arrays.asList(connectionStates));
    }
    
    public int getPacketId()
    {
        return _packetId;
    }
    
    public ClientPacket newPacket()
    {
        final ClientPacket packet = _packetSupplier.get();
        if (Config.DEBUG_EX_CLIENT_PACKETS)
        {
            if (packet != null)
            {
                final String name = packet.getClass().getSimpleName();
                if (!Config.ALT_DEV_EXCLUDED_PACKETS.contains(name))
                {
                    PacketLogger.info("[C EX] " + name);
                }
            }
            else if (Config.DEBUG_UNKNOWN_PACKETS)
            {
                PacketLogger.info("[C EX] 0x" + Integer.toHexString(_packetId).toUpperCase());
            }
        }
        return packet;
    }
 
Оверпостинг
Если дебажишь через ide)) ставишь брекпойнт допустим в классе где обрабатываются байпасы, и потом смотришь весь стектрейс
да дебажу через интелиджи идею, не совсем понял про какие байпасы речь

Java:
    private final int _packetId;
    private final Supplier<ClientPacket> _packetSupplier;
    private final Set<ConnectionState> _connectionStates;
   
    ExClientPackets(int packetId, Supplier<ClientPacket> packetSupplier, ConnectionState... connectionStates)
    {
        // Packet id is an unsigned short.
        if (packetId > 0xFFFF)
        {
            throw new IllegalArgumentException("Packet id must not be bigger than 0xFFFF");
        }
       
        _packetId = packetId;
        _packetSupplier = packetSupplier != null ? packetSupplier : () -> null;
        _connectionStates = new HashSet<>(Arrays.asList(connectionStates));
    }
   
    public int getPacketId()
    {
        return _packetId;
    }
   
    public ClientPacket newPacket()
    {
        final ClientPacket packet = _packetSupplier.get();
        if (Config.DEBUG_EX_CLIENT_PACKETS)
        {
            if (packet != null)
            {
                final String name = packet.getClass().getSimpleName();
                if (!Config.ALT_DEV_EXCLUDED_PACKETS.contains(name))
                {
                    PacketLogger.info("[C EX] " + name);
                }
            }
            else if (Config.DEBUG_UNKNOWN_PACKETS)
            {
                PacketLogger.info("[C EX] 0x" + Integer.toHexString(_packetId).toUpperCase());
            }
        }
        return packet;
    }
нашел спасибо!
 
Последнее редактирование модератором:
Найди класс RequestBypassToServer и поставь в нём брекпойнт там где идёт считывание пакета, там будет что то типа readD()
При нажатие в игре на какую нибудь кнопку в альт б или в диалоге с нпс, у тебя сработает брекпойнт. Дальше в идее посмотришь стектрейс вызова
 
Найди класс RequestBypassToServer и поставь в нём брекпойнт там где идёт считывание пакета, там будет что то типа readD()
При нажатие в игре на какую нибудь кнопку в альт б или в диалоге с нпс, у тебя сработает брекпойнт. Дальше в идее посмотришь стектрейс вызова
понял спасибо
 
Назад
Сверху Снизу