问题描述
伙计们,我想为 minecraft 制作一个 dll。目前我需要它使用 Java。我从一个叫 TheQMaks 的人那里找到了它,但它是用 C++ (https://github.com/TheQmaks/SurvivalMC/blob/master/src/c%2B%2B/dllmain.cpp) 编写的。我的问题是:无论如何都可以获取 JVM 并在其中获取所有加载的类,就像在这个项目中使用 Java 中的 Kernel32 库一样。我已经在我的项目中实现了 Kernel32。
public class InjectorController {
static final Kernel32 kernel32 = (Kernel32) Native.loadLibrary("kernel32.dll",Kernel32.class,W32APIOptions.ASCII_OPTIONS);
static final PsapiExt psapi = (PsapiExt) Native.loadLibrary("psapi",PsapiExt.class,W32APIOptions.UNICODE_OPTIONS);
public void inject()
{
try {
} catch (Exception ex) {
ex.printstacktrace();
}
}
public interface Kernel32 extends StdCallLibrary
{
public HANDLE OpenProcess(DWORD_PTR dwDesiredAccess,BOOL bInheritHandle,DWORD_PTR dwProcessId);
public DWORD_PTR GetProcAddress(HANDLE hModule,String lpProcName);
public LPVOID VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,int dwSize,DWORD_PTR flAllocationType,DWORD_PTR flProtect);
public BOOL WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,Pointer lpBuffer,int nSize,Pointer lpNumberOfBytesWritten);
public DWORD_PTR CreateRemoteThread(HANDLE hProcess,int lpThreadAttributes,int dwStackSize,DWORD_PTR loadLibraryAddress,LPVOID lpParameter,int dwCreationFlags,int lpThreadId);
public BOOL CloseHandle(HANDLE hObject);
public int GetLastError();
public HANDLE GetModuleHandle(String string);
public int GetProcessId(HANDLE handle);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)