October 10, 2019

Mod версия

Мод версия реализует простую защиту, основанную на запросах к серверу. Впрочем, человек с головой на плечах с лёгкостью ее обойдёт)

Вся магия происходит в классе smali/com/pk/taxoid/libs/d/a/a.smali:

В оригинальный класс добавлено 2 переменных:

Переменная count - это количество обращений к серверу мододела (об этом ниже)

Переменная timestamp это дата обращения. Timestamp это количество миллисекунд прошедшее с 1 января 1970 года. Можешь посмотреть википедию, если хочется больше объяснений.

Внутри существующего метода run() вставлен вызов нового метода setNewTimer()

Если результат выполнения метода doGet() меньше 100, то переменной e присваивается значение 30

Глянем метод doGet()

 public static long doGet() throws Exception {
        if (count >= 600) {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(((HttpURLConnection) new URL("http://taxoid.freeoda.com/?customer=96").openConnection()).getInputStream()));
            StringBuffer stringBuffer = new StringBuffer();
            while (true) {
                String readLine = bufferedReader.readLine();
                String str = readLine;
                if (readLine != null) {
                    stringBuffer.append(str);
                } else {
                    bufferedReader.close();
                    String stringBuffer2 = stringBuffer.toString();
                    count = 0;
                    timeStamp = Long.parseLong(stringBuffer2);
                    return Long.parseLong(stringBuffer2);
                }
            }
        } else {
            count++;
            return timeStamp;
        }
    }

Вот примерная схема работы этого кода:

  • если count равно 600 или больше
    • Подключаемся к серверу http://taxoid.freeoda.com/?customer=96
    • Смотрим, какую строку он выдаёт
      • Если строка существует, то сохраняем ее значение в переменную
      • Если строка не существует, то создаём ее самостоятельно, ставим count = 0, и присваиваем значение строки в переменную timestamp
  • Иначе, прибавляем единицу к count и возвращаем переменную timestamp

Грубо говоря, timestamp устанавливается на сервере, и ты можешь работать ровно до того момента, как он не пересечёт определенную отметку, устанавливаемую мододелом.

Сервер, кстати, до сих пор работает:

Всё ущё возвращает 0

Но сама эта проверка ни что иное, как собачий пук, потому что легко убирается всего лишь удалением условия с doGet() в методе setNewTimer()

Прочие изменения

smali/com/pk/taxoid/libs/d/d.smali:

Уменьшен триггер с 0x331 (817) до 0x1 (1)

smali/com/pk/taxoid/libs/i.smali:

Переменная k теперь равна 2000 вместо 0

Переменная n равна 2000 вместо 1000

smali/com/pk/taxoid/widget/FastPanel.smali:

Верхняя панель ввода радиуса автозахвата. Увеличен лимит до 20 000. Важно понимать, что лимит можно сделать хоть 100 000, но работать это будет только в том случае, если это поддерживает сервис.

Вот и все фишки данного мода. Такие дела.