Вопрос Jni VimeWorld доступ к ave

Начинающий
Статус
Оффлайн
Регистрация
12 Мар 2023
Сообщения
2
Реакции[?]
0
Поинты[?]
0

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

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Добрый день форумчане, решил попробовать разобраться с JNI на проекте VimeWorld.

1) Нужно было получить GetCreatedJavaVM (отличный от дефолтного) - я нашел
2) Нужно было найти кастомный ваймовский classLoader - я нашел
3) Хотел попробовать получить field из класса ave (extra.jar) - ничего не возвращает


C++:
jclass aveClass = FindClass(env, "ave");
jfieldID aCField = env->GetFieldID(aveClass, "aC", "Lbnm;"); // null

При попытке получить какой-либо field возвращает null

Буду рад помощи на форуме или в дискорде. (Предоставлю класс лоадер и GetCreatedJavaVM)
 
эксперт в майнкрафт апи
Read Only
Статус
Оффлайн
Регистрация
25 Янв 2023
Сообщения
676
Реакции[?]
284
Поинты[?]
22K
:kappa::kappa::kappa::kappa::kappa:
Добрый день форумчане, решил попробовать разобраться с JNI на проекте VimeWorld.

1) Нужно было получить GetCreatedJavaVM (отличный от дефолтного) - я нашел
2) Нужно было найти кастомный ваймовский classLoader - я нашел
3) Хотел попробовать получить field из класса ave (extra.jar) - ничего не возвращает


C++:
jclass aveClass = FindClass(env, "ave");
jfieldID aCField = env->GetFieldID(aveClass, "aC", "Lbnm;"); // null

При попытке получить какой-либо field возвращает null

Буду рад помощи на форуме или в дискорде. (Предоставлю класс лоадер и GetCreatedJavaVM)
ну ващет смысла от того что ты JNIEnv получил НЕТ.вот лайфхак кста :da: (сработает ток в треде где в Tls есть JavaThread(например, хук свапбаффера(ток не lwjgl функция, вайм ее чекает сука) - отличное место где можно отлавливать поток майна и делать свои грязные делишки)
C++:
// JavaThread хранится в ThreadLocalStorage каждого потока
// Джава аллокает себе слот с помощью TlsAlloc
// выловить запись в dword думаю не составит труда, этот dword и будет аргументом tlsIndex
LPVOID javaThread = TlsGetValue(tlsIndex);
// JNIEnv лежит в каждом JavaThread оффсетом.Выхватить его можно также хуком любой нативной функции
// ибо у них у всех одно соглашение о вызове(JNICALL), где rcx - первый аргумент т.е
// lea rcx, javaThread + jniEnvOffset
JNIEnv* env = javaThread + jniEnvOffset;
получить jfieldID/jmethodID ты можешь через рефлекцию(FromReflect).
все это делалось одним вечером и на след утро я заболел настолько что до сих пор откисаю.перед сном меня крашнуло с валидным jfieldID/jmethodID, так шо реверси функи/пиши свои.не удивлюсь, если FromReflect после этого сообщения у тебя не будет работать :da:
 
Последнее редактирование:
Сверху Снизу