Войти или зарегистрироваться

Туториал Замена байт клиента и сервера bukkit с 1.3.1 не работает

Ну расскажите, что делать с 1.4.5, ну поззя.
 
Спросил у автора, насчет 1.3.1 и выше.
автор ответил что с 1.3.1 это не работает.:why:
 
Кто поделется сией тайной, заплачу))
 
Если я не ошибаюсь, то в новых версиях версия протокола криптуется и надо куски кода просто вырезать и заменять простыми.
 
Если я не ошибаюсь, то в новых версиях версия протокола криптуется и надо куски кода просто вырезать и заменять простыми.
Стоит попробовать, но все же, если у вы поставите forge и любые другие моды, это уже сделать будет нельзя.
 
Стоит попробовать, но все же, если у вы поставите forge и любые другие моды, это уже сделать будет нельзя.
Это если forge заменяет класс с версией протокола. И даже если так, можно попробовать задекомпилить/использовать сорцы (если они есть, конечно).
Хотя я сейчас пытаюсь реализовать несколько иную защиту. К сожалению, мои познания в джаве слишком слабы, чтобы это сделать, хотя защита простейшая и в то же время ее не обойдут, если не будут знать, в чем она заключается.
 
Это если forge заменяет класс с версией протокола. И даже если так, можно попробовать задекомпилить/использовать сорцы (если они есть, конечно).
Хотя я сейчас пытаюсь реализовать несколько иную защиту. К сожалению, мои познания в джаве слишком слабы, чтобы это сделать, хотя защита простейшая и в то же время ее не обойдут, если не будут знать, в чем она заключается.
он его заменяет как раз. Да и это уже вообще не имеет смысла. Online-mode: true и свою систему авторизации. Все проблема решена
 
он его заменяет как раз. Да и это уже вообще не имеет смысла. Online-mode: true и свою систему авторизации. Все проблема решена
Какая это проблема решена? Замена байт - неплохой кирпичик в стену защиты от читов в клиенте. Не идеально, но все же. А классы с путями авторизации уже давно научились извлекать и сувать в нодус, ничего тут не поделать.
И ещё: не стыдно ли иметь такое? Во что сервера скатываются? Не майнкрат, а донаткрафт какой-то.
 
Я все таки нашел где запрятали ProtocolVersion :)
NetLoginHandler
Java:
    public void handleClientProtocol(Packet2ClientProtocol par1Packet2ClientProtocol)
    {
        this.clientUsername = par1Packet2ClientProtocol.getUsername();
 
        if (!this.clientUsername.equals(StringUtils.stripControlCodes(this.clientUsername)))
        {
            this.raiseErrorAndDisconnect("Invalid username!");
        }
        else
        {
            PublicKey var2 = this.mcServer.getKeyPair().getPublic();
 
            if (par1Packet2ClientProtocol.getProtocolVersion() != 51)
            {
                if (par1Packet2ClientProtocol.getProtocolVersion() > 51)
                {
                    this.raiseErrorAndDisconnect("Outdated server!");
                }
                else
                {
                    this.raiseErrorAndDisconnect("Outdated client!");
                }
            }
            else
            {
                this.loginServerId = this.mcServer.isServerInOnlineMode() ? Long.toString(rand.nextLong(), 16) : "-";
                this.verifyToken = new byte[4];
                rand.nextBytes(this.verifyToken);
                this.myTCPConnection.addToSendQueue(new Packet253ServerAuthData(this.loginServerId, var2, this.verifyToken));
            }
        }
    }
 
Я все таки нашел где запрятали ProtocolVersion :)
NetLoginHandler
Java:
    public void handleClientProtocol(Packet2ClientProtocol par1Packet2ClientProtocol)
    {
        this.clientUsername = par1Packet2ClientProtocol.getUsername();
 
        if (!this.clientUsername.equals(StringUtils.stripControlCodes(this.clientUsername)))
        {
            this.raiseErrorAndDisconnect("Invalid username!");
        }
        else
        {
            PublicKey var2 = this.mcServer.getKeyPair().getPublic();
 
            if (par1Packet2ClientProtocol.getProtocolVersion() != 51)
            {
                if (par1Packet2ClientProtocol.getProtocolVersion() > 51)
                {
                    this.raiseErrorAndDisconnect("Outdated server!");
                }
                else
                {
                    this.raiseErrorAndDisconnect("Outdated client!");
                }
            }
            else
            {
                this.loginServerId = this.mcServer.isServerInOnlineMode() ? Long.toString(rand.nextLong(), 16) : "-";
                this.verifyToken = new byte[4];
                rand.nextBytes(this.verifyToken);
                this.myTCPConnection.addToSendQueue(new Packet253ServerAuthData(this.loginServerId, var2, this.verifyToken));
            }
        }
    }
ну измени, толку 0 будет, все равно зайдешь с разными версиями
 
Назад
Верх