-
Автор темы
- #1
Всем привет. У меня проблема с исключениями при попытке сравнить два значения в ассемблерном коде. Я в ассемблере достаточно слабо разбираюсь, поэтому прошу помощи разобраться с этими исключениями и помочь найти мою ошибку в коде.
Вот мой код ниже:
Вот скрины с исключениями:
Вот мой код ниже:
dllmain.cpp:
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "Main.h"
#include <iostream>
using namespace main_jni;
typedef jint(JNICALL* GetCreatedJavaVMs)(JavaVM*[I], jsize, jsize[/I]);
void init()
{
HMODULE jvm_dll = GetModuleHandleA("C:\\Program Files\\Java\\jdk-16.0.2\\bin\\server\\jvm.dll");
GetCreatedJavaVMs JNI_GetCreatedJavaVMs = (GetCreatedJavaVMs)GetProcAddress
(jvm_dll, "JNI_GetCreatedJavaVMs");
jint getJVM = JNI_GetCreatedJavaVMs(&jvm, 1, nullptr);
jint A_Thread = jvm->AttachCurrentThread((void**)&env, NULL);
if(env != nullptr)
main_jni::init_cheat();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)init, 0, 0, 0);
}
return TRUE;
}
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_cheat();
}
namespace mappings
{
jobject getMinecraft();
jobject getPlayer();
}
Mappings.cpp:
#include "Main.h"
using namespace main_jni;
jobject mappings::getMinecraft()
{
jclass MinecraftClass = env->FindClass("djz"); //net/minecraft/client/Minecraft
jmethodID getInstance = env->GetStaticMethodID(MinecraftClass, "<init>", "()Lnet/minecraft/client/Minecraft;"); ////net/minecraft/client/Minecraft.getInstance
return env->CallStaticObjectMethod(MinecraftClass, getInstance);
}
jobject mappings::getPlayer()
{
jclass PlayerClass = env->FindClass("djz"); //net/minecraft/client/Minecraft
jfieldID getPlayer = env->GetFieldID(PlayerClass, "s", "()Lnet/minecraft/client/Minecraft;"); //net/minecraft/client/Minecraft.player
return env->GetObjectField(PlayerClass, getPlayer);
}
Soft.cpp:
#include "Main.h"
using namespace main_jni;
void main_jni::init_cheat()
{
if (GetAsyncKeyState(VK_UP))
{
jclass Entity = env->FindClass("aqa"); //net/minecraft/entity/Entity
env->CallVoidMethod(Entity, env->GetMethodID(Entity, "i", "(Z)V"), true); //net/minecraft/entity/Entity.setGlowing
}
if (GetAsyncKeyState(VK_DOWN))
{
jclass Entity = env->FindClass("aqa"); //net/minecraft/entity/Entity
env->CallVoidMethod(Entity, env->GetMethodID(Entity, "i", "(Z)V"), false); //net/minecraft/entity/Entity.setGlowing
}
}
Вот скрины с исключениями:
Пожалуйста, авторизуйтесь для просмотра ссылки.