Гайд Пересобираем джаву aka customjvm [1/2]

Забаненный
Статус
Оффлайн
Регистрация
14 Фев 2025
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет!

Данный метод защиты используют популярные протеры как - Crashdami, kotopushka, argentoz, dream1xd (ну и другие уже нн протеры как Wither aka человек защищающий newcode client (noad)) но это не суть важно

Этот метод защиты хуевый. Он спасает по 1 причине - майнкрафт комьюнити бездари.

У каждого класса есть
Пожалуйста, авторизуйтесь для просмотра ссылки.
и нам нужно переписать этот формат что бы он работал на наших байтах.

Для билда нам потрубуются
1)Openjdk
2) Джава на версию ниже выбранной версии openjdk
3)Cygwin
4) iq




1*. Для начала мы заходим на гитхаб openjdk и скачиваем нужную версию (p.s
Пожалуйста, авторизуйтесь для просмотра ссылки.
лично я буду использывать 21 версию) далее мы скачиваем пока у нас качается мы ищем дждк для сборки нашей джавы на версию ниже например если вы выбрали 21 версию openjdk вам нужна 20 версия джавы ну и по такой же логике 22 версия - 21 версия и т.д
2*. Пока мы качаем этот
Пожалуйста, авторизуйтесь для просмотра ссылки.
заходим на сайт
Пожалуйста, авторизуйтесь для просмотра ссылки.
* и скачиваем его (если у вас unix системы такие как macos, linux как у меня мы можем пропустить этот этап) далее после того как мы скачали наш образ заходим в терминал* и переходим в путь куда вы скачали нашу exe'шку далее пишем setup-x86_64.exe -q -P autoconf -P make -P unzip -P zip
3*. Пока у нас ставиться cygwin мы идем разархивируем openjdk куда хотим в данном примере я образно сделаю это на диск C в папку openjdk далее мы разархивируем джаву которую мы скачали для билда нашей джавы я сделаю это в C:\openjdk\buildjdk примерно с этому времени у нас уже должен был установиться cygwin
4*. Запускаем cygwin(на unix просто терминал и там же путь пишем) и пишем cd /cygdrive/c/openjdk после перехода мы пишем bash configure --with-boot-jdk=buildjdk и ждемс... далее мы пишем make jdk (это будет относительно долго в 1 раз) после этого мы забилдили 1 версию нашей джавы! но вопрос как изменять код? на винде мы пишем make hotspot-ide-project и переходим по пути C:\openjdk\build\windows-x86_64-server-release\ide\hotspot-visualstudio и открываем vcxproj файл через visual studio на unix мы просто открываем нашу openjdk через удобный редактор по пути путьДоopenjdk\src\hotspot
5*. Заходим в jni.cpp и ищем метод JNI_CreateJavaVM этот метод отвечает за запуск джавы тоесть он вызывается когда мы пишем любую комманду напрмер java -version, java -jar и т.д и как настоящие пастеры мы пишем туда print нашей строки
JNI_CreateJavaVM:
[I]JNI_IMPORT_OR_EXPORT[/I] jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, void *args) {
  //Тут так же можно разместить код с антидебагером
  printf("[$] ZalupaGuard -> Creating jvm\n");
  jint result = JNI_ERR;
#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
  __try {
#endif
    result = JNI_CreateJavaVM_inner(vm, penv, args);
#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
  } __except(topLevelExceptionFilter((_EXCEPTION_POINTERS*)_exception_info())) {
  }
#endif
  return result;
}
далее сохраняем файл через комбинацию(p.s Control + S или же на маке Command + S) далее возращаемся в наш cygwin и пишем make jdk после билда переходим в путь до нашего билда в моем случае C:\openjdk\build\windows-x86_64-server-release\jdk\bin\ открываем здесь терминал и для примера пишем .\java.exe -version если вы все сделали правильно вам должно вывести что то по типу
Вывод:
[$] ZalupaGuard -> Creating jvm
openjdk version "21-internal" 2023-09-19
OpenJDK Runtime Environment (build 21-internal-adhoc.root.jdk)
OpenJDK 64-Bit Server VM (build 21-internal-adhoc.root.jdk, mixed mode)
далее нам будет нужно вырезать jvmti (здесь я это делать не буду я ебал) после этого мы заходим в класс arguments.cpp и вырезаем опасные аргументы например -javaagent и т.д

На этом я думаю сегодня мы закончим в следущей части мы перепишем classfileparser и напишем криптер под нашу джаву

Термины:

терминал* - cmd
cygwin* - своеобразный unix-терминал для билда но только для винды
1* - скачка
2* - установка cygwin
3* - подготовка
4* - билд нашей джавы
5* - изменяем код

P.s я не люблю плодить пастеров криптер будет очень хуевый и легкий для дампа
 
Начинающий
Статус
Оффлайн
Регистрация
14 Апр 2023
Сообщения
562
Реакции[?]
6
Поинты[?]
5K
Всем привет!

Данный метод защиты используют популярные протеры как - Crashdami, kotopushka, argentoz, dream1xd (ну и другие уже нн протеры как Wither aka человек защищающий newcode client (noad)) но это не суть важно

Этот метод защиты хуевый. Он спасает по 1 причине - майнкрафт комьюнити бездари.

У каждого класса есть
Пожалуйста, авторизуйтесь для просмотра ссылки.
и нам нужно переписать этот формат что бы он работал на наших байтах.

Для билда нам потрубуются
1)Openjdk
2) Джава на версию ниже выбранной версии openjdk
3)Cygwin
4) iq




1*. Для начала мы заходим на гитхаб openjdk и скачиваем нужную версию (p.s
Пожалуйста, авторизуйтесь для просмотра ссылки.
лично я буду использывать 21 версию) далее мы скачиваем пока у нас качается мы ищем дждк для сборки нашей джавы на версию ниже например если вы выбрали 21 версию openjdk вам нужна 20 версия джавы ну и по такой же логике 22 версия - 21 версия и т.д
2*. Пока мы качаем этот
Пожалуйста, авторизуйтесь для просмотра ссылки.
заходим на сайт
Пожалуйста, авторизуйтесь для просмотра ссылки.
* и скачиваем его (если у вас unix системы такие как macos, linux как у меня мы можем пропустить этот этап) далее после того как мы скачали наш образ заходим в терминал* и переходим в путь куда вы скачали нашу exe'шку далее пишем setup-x86_64.exe -q -P autoconf -P make -P unzip -P zip
3*. Пока у нас ставиться cygwin мы идем разархивируем openjdk куда хотим в данном примере я образно сделаю это на диск C в папку openjdk далее мы разархивируем джаву которую мы скачали для билда нашей джавы я сделаю это в C:\openjdk\buildjdk примерно с этому времени у нас уже должен был установиться cygwin
4*. Запускаем cygwin(на unix просто терминал и там же путь пишем) и пишем cd /cygdrive/c/openjdk после перехода мы пишем bash configure --with-boot-jdk=buildjdk и ждемс... далее мы пишем make jdk (это будет относительно долго в 1 раз) после этого мы забилдили 1 версию нашей джавы! но вопрос как изменять код? на винде мы пишем make hotspot-ide-project и переходим по пути C:\openjdk\build\windows-x86_64-server-release\ide\hotspot-visualstudio и открываем vcxproj файл через visual studio на unix мы просто открываем нашу openjdk через удобный редактор по пути путьДоopenjdk\src\hotspot
5*. Заходим в jni.cpp и ищем метод JNI_CreateJavaVM этот метод отвечает за запуск джавы тоесть он вызывается когда мы пишем любую комманду напрмер java -version, java -jar и т.д и как настоящие пастеры мы пишем туда print нашей строки
JNI_CreateJavaVM:
[I]JNI_IMPORT_OR_EXPORT[/I] jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, void *args) {
  //Тут так же можно разместить код с антидебагером
  printf("[$] ZalupaGuard -> Creating jvm\n");
  jint result = JNI_ERR;
#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
  __try {
#endif
    result = JNI_CreateJavaVM_inner(vm, penv, args);
#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
  } __except(topLevelExceptionFilter((_EXCEPTION_POINTERS*)_exception_info())) {
  }
#endif
  return result;
}
далее сохраняем файл через комбинацию(p.s Control + S или же на маке Command + S) далее возращаемся в наш cygwin и пишем make jdk после билда переходим в путь до нашего билда в моем случае C:\openjdk\build\windows-x86_64-server-release\jdk\bin\ открываем здесь терминал и для примера пишем .\java.exe -version если вы все сделали правильно вам должно вывести что то по типу
Вывод:
[$] ZalupaGuard -> Creating jvm
openjdk version "21-internal" 2023-09-19
OpenJDK Runtime Environment (build 21-internal-adhoc.root.jdk)
OpenJDK 64-Bit Server VM (build 21-internal-adhoc.root.jdk, mixed mode)
далее нам будет нужно вырезать jvmti (здесь я это делать не буду я ебал) после этого мы заходим в класс arguments.cpp и вырезаем опасные аргументы например -javaagent и т.д

На этом я думаю сегодня мы закончим в следущей части мы перепишем classfileparser и напишем криптер под нашу джаву

Термины:

терминал* - cmd
cygwin* - своеобразный unix-терминал для билда но только для винды
1* - скачка
2* - установка cygwin
3* - подготовка
4* - билд нашей джавы
5* - изменяем код

P.s я не люблю плодить пастеров криптер будет очень хуевый и легкий для дампа
вообще реально хороший совет, вырезать поддержку java.exe и javaw.exe , запуск можно сделать и без них)
 
Начинающий
Статус
Оффлайн
Регистрация
13 Сен 2022
Сообщения
83
Реакции[?]
3
Поинты[?]
3K
P.s я не люблю плодить пастеров криптер будет очень хуевый и легкий для дампа
кринж, зачем писать говнянный недогайд, а потом оправдываться что ты что то умеешь, но не хочешь это ликать
 
Сверху Снизу