Вопрос Майнкрафт крашит после длл инъекции

Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2023
Сообщения
7
Реакции[?]
1
Поинты[?]
1K

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

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

Спасибо!

Всем привет. Я никак не могу понять в чем проблема. Похоже проблема с маппингами, но я их использую как я считаю корректно. Если есть тут шарящие люди за JNI и маппингами Forge 1.16.5, помогите пожалуйста разобраться, где я мог допустить ошибку. Я использую jdk8_202, JAVA_HOME и LIB так же под этим jdk. Посмотрите пожалуйста код, уже третий день ебусь с этой проблемой:

C++:
Main.h

#pragma once
#include "JNI/jni.h"
#include <Windows.h>
#include <iostream>
#include <thread>
#include <chrono>

namespace main_jni
{
    JNIEnv* env;
    JavaVM* jvm;

    void init();
}

namespace AutoSprint
{
    void setSprint(bool b);
    void AutoSprint();
}

namespace Minecraft_Cheat
{
    jobject getInstance();
    jobject getPlayer();
    void init();
}

C++:
Minecraft.cpp

#include "Main.h"

jclass Minecraft_Cheat::Mappings::Minecraft::MinecraftClass()
{
    jclass MinecraftClass = env->FindClass("djz"); // net/minecraft/client/Minecraft
    return MinecraftClass;
}

jobject Minecraft_Cheat::Mappings::Minecraft::getMinecraft()
{
    jobject getMinecraft = env->CallStaticObjectMethod(Minecraft_Cheat::Mappings::Minecraft::MinecraftClass(),
            env->GetStaticMethodID(MinecraftClass(), "C", "()Ldjz;")); // net/minecraft/client/Minecraft.getInstance
    return getMinecraft;
}

C++:
#include "Main.h"

namespace Minecraft_Cheat
{
    jobject Minecraft_Cheat::getInstance()
    {
        jclass MinecraftClass = main_jni::env->FindClass("djz"); // net/minecraft/client/Minecraft

        jobject getMinecraft = main_jni::env->CallStaticObjectMethod(MinecraftClass,
            main_jni::env->GetStaticMethodID(MinecraftClass, "C", "()Ldjz;")); // net/minecraft/client/Minecraft.getInstance

        return getMinecraft;
    }

    jobject Minecraft_Cheat::getPlayer()
    {
        jclass playerClass = main_jni::env->FindClass("dzm");  // net/minecraft/client/entity/player/ClientPlayerEntity

        jfieldID playerField = main_jni::env->GetFieldID(playerClass, "s", "Ldzm"); // net/minecraft/client/Minecraft.player

        jobject playerObject = main_jni::env->GetObjectField(Minecraft_Cheat::getInstance(), playerField);
        return playerObject;
    }

    void Minecraft_Cheat::init()
    {
        while (1)
        {
            if (!Minecraft_Cheat::getInstance())
                std::cout << "getInstance error" << std::endl;
            if (!Minecraft_Cheat::getPlayer())
                std::cout << "getPlayer error" << std::endl;
            /*if (!Minecraft_Cheat::Mappings::World::getWorld())*/
            AutoSprint::AutoSprint();

            std::this_thread::sleep_for(std::chrono::milliseconds(5));

        }
    }
}
C++:
#include "Main.h"

typedef jint(JNICALL* GetCreatedJavaVMs)(JavaVM**, jsize, jsize*);

void main_jni::init()
{
    HMODULE _jvm = GetModuleHandleW(L"C:\\Program Files\\Java\\jre1.8.0_202\\bin\\server\\jvm.dll");
    if (!_jvm)
        return;

    auto JNI_GetCreatedJavaVMs = (GetCreatedJavaVMs)GetProcAddress(_jvm, "JNI_GetCreatedJavaVMs");
    if (!JNI_GetCreatedJavaVMs)
        return;

    /*JNI_GetCreatedJavaVMs(&main_jni::jvm, 1, NULL);
    main_jni::jvm->AttachCurrentThread((void**)&env, NULL);*/
    if (main_jni::env != nullptr)
        Minecraft_Cheat::init();


}


BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
{
    switch(reason)
    {
        case DLL_PROCESS_ATTACH:
            CreateThread(0, 0, (LPTHREAD_START_ROUTINE)main_jni::init, 0, 0, 0);
            break;

        case DLL_THREAD_ATTACH:
            break;

        case DLL_THREAD_DETACH:
            break;

        case DLL_PROCESS_DETACH:

            if (lpReserved != nullptr)
            {
                break; 
            }

            break;
    }
    return TRUE;
}
 
Последнее редактирование:
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Сен 2021
Сообщения
425
Реакции[?]
121
Поинты[?]
162K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Попробуй скомпилить длл в Debug, после запусти Майнкрафт, в визуал студио нажми кнопку "отладка" и в ней кнопка "присоединиться к процессу", далее выбери процесс игры (javaw.exe) и нажми "ок". Далее инжекть дллку и визуал студио укажет на ошибку в коде там где крашит
 
Эксперт
Статус
Оффлайн
Регистрация
17 Янв 2020
Сообщения
2,197
Реакции[?]
718
Поинты[?]
79K
Товары в продаже
1
Попробуй скомпилить длл в Debug, после запусти Майнкрафт, в визуал студио нажми кнопку "отладка" и в ней кнопка "присоединиться к процессу", далее выбери процесс игры (javaw.exe) и нажми "ок". Далее инжекть дллку и визуал студио укажет на ошибку в коде там где крашит
одним словом: продебаж
 
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Сен 2021
Сообщения
425
Реакции[?]
121
Поинты[?]
162K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2023
Сообщения
7
Реакции[?]
1
Поинты[?]
1K
Попробуй скомпилить длл в Debug, после запусти Майнкрафт, в визуал студио нажми кнопку "отладка" и в ней кнопка "присоединиться к процессу", далее выбери процесс игры (javaw.exe) и нажми "ок". Далее инжекть дллку и визуал студио укажет на ошибку в коде там где крашит
Это очень полезная подсказка. Но, на жаль, я не могу тем самым проверить маппинги и где в них я мог ошибиться. Дллка то вроде грузит, но функция автоспринта решила послать меня нахуй. И как я понял ошибка где-то в main_jni::init() и Minecraft_Cheat::init()
 
Последнее редактирование:
Сверху Снизу