Начинающий
- Статус
-
Оффлайн
- Регистрация
- 30 Янв 2019
- Сообщения
- 136
- Реакции
- 1
-
#1
Автор темы
Что делать если такая ошибка ? : An error has occurred. For more information check the log file : C:UsersxxxDesktopggGH_Inj_Log.txt . Я посмотрел в лог файле было написано :
03-11-2019 13:30:44
Version : 3.3
File : C:Users
Guided Hacking Injector использую. 3.3 версия.
Начинающий
- Статус
-
Оффлайн
- Регистрация
- 18 Сен 2019
- Сообщения
- 109
- Реакции
- 4
-
#2
не используй gh инжектор используй другой
Начинающий
- Статус
-
Оффлайн
- Регистрация
- 30 Янв 2019
- Сообщения
- 136
- Реакции
- 1
-
#3
Автор темы
не используй gh инжектор используй другой
Я бы не юзал его, но другие инжекторы тоже 0. Я Осирис использую
broihon / gh-injector-library
Goto Github
PK
View Code? Open in Web Editor
NEW
21.0
149.0
368 KB
A feature rich DLL injection library.
Home Page: https://guidedhacking.com/resources/guided-hacking-dll-injector.4/
C 24.31%
manual-mapping
shellcode-injection
pe-loader
pe-format
gh-injector-library’s Introduction
A feature-rich DLL injection library which supports x86, WOW64 and x64 injections.
It features five injection methods, six shellcode execution methods and various additional options.
Session separation can be bypassed with all methods.
If you want to use this library with a GUI check out the GH Injector GUI.
Injection methods
- LoadLibraryExW
- LdrLoadDll
- LdrpLoadDll
- LdrpLoadDllInternal
- ManualMapping
Shellcode execution methods
- NtCreateThreadEx
- Thread hijacking
- SetWindowsHookEx
- QueueUserAPC
- KernelCallback
- FakeVEH
Manual mapping features:
- Section mapping
- Base relocation
- Imports
- Delayed imports
- SEH support
- TLS initialization
- Security cookie initalization
- Loader Lock
- Shift image
- Clean datadirectories
Additional features:
- Various cloaking options
- PEB unlinking
- PE header cloaking
- Thread cloaking
- Handle hijacking
- Hook scanning/restoring
Getting started
You can easily use mapper by including the compiled binaries in your project. Check the provided Injection.h header for more information.
Make sure you have the compiled binaries in the working directory of your program.
On first run the injection module has to download PDB files for the native (and when run on x64 the wow64) version of the ntdll.dll to resolve symbol addresses. Use the exported StartDownload function to begin the download.
The injector can only function if the downloads are finished. The injection module exports GetSymbolState and GetImportState which will return INJ_ERROR_SUCCESS (0) if the PDB download and resolving of all required addresses is completed.
Additionally GetDownloadProgress can be used to determine the progress of the download as percentage. If the injection module is to be unloaded during the download process call InterruptDownload or there’s a chance that the dll will deadlock your process.
#include "Injection.h" HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME); auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA"); auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetSymbolState"); auto GetImportState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetImportState"); auto StartDownload = (f_StartDownload)GetProcAddress(hInjectionMod, "StartDownload"); auto GetDownloadProgressEx = (f_GetDownloadProgressEx)GetProcAddress(hInjectionMod, "GetDownloadProgressEx"); //due to a minor bug in the current version you have to wait a bit before starting the download //will be fixed in version 4.7 Sleep(500); StartDownload(); //since GetSymbolState and GetImportState only return after the downloads are finished //checking the download progress is not necessary while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, false) != 1.0f) { Sleep(10); } #ifdef _WIN64 while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, true) != 1.0f) { Sleep(10); } #endif while (GetSymbolState() != 0) { Sleep(10); } while (GetImportState() != 0) { Sleep(10); } DWORD TargetProcessId; INJECTIONDATAA data = { "", TargetProcessId, INJECTION_MODE::IM_LoadLibraryExW, LAUNCH_METHOD::LM_NtCreateThreadEx, NULL, 0, NULL, NULL, true }; strcpy(data.szDllPath, DllPathToInject); InjectA(&data);
Credits
First of all I want to credit Joachim Bauch whose Memory Module Library was a great source to learn from:
https://github.com/fancycode/MemoryModule
He also made a great write-up explaining the basics of mapping a module:
https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/
I also want to thank Akaion/Dewera for helping me with SEH support and their C# mapping library which was another great resource to learn from:
https://github.com/Dewera/Lunar
Big thanks to mambda who made this PDB parser which I could steal code from to verify GUIDs:
https://bitbucket.org/mambda/pdb-parser/src/master/
gh-injector-library’s People
Contributors
gh-injector-library’s Issues
this variable is unused?
How to handle Error code: 0x1010000C
Hi I get this error upon injecting (sometimes). I am wondering if this is fault of my dll, or the injector.
SR_NTCTE_ERR_RPM_FAIL 0x1010000C//ReadProcessMemory : win32 error : reading the results of the shellcode failed
Albeit I only get this error maybe 3/10 injections.
support uwp apps
after alot of tries trying to inject dll into uwp apps, i did a research and turns out the dll needs a permission or something like that.
maybe support uwp apps if possible?
Manual map injection keep failing
Hi I have a problem with injection of dll
Log file:
03-01-2023 16:10:26
Version : GH Injector V4.7
OS : Windows 10 22H2 (Build 19045)
File : hello_world86.dll
Target : x86process.exe
Target PID : 7360
Source : Manual Mapping.cpp in MMAP_NATIVE::ManualMap at line 291
Errorcode : 0x00400002
Advanced errorcode : 0xC0000034
Injectionmode : ManualMap
Launchmethod : NtCreateThreadEx
Platform : x64/x86 (native)
HandleValue : 0x00000000
Flags : 0x00FE0000
Code:
int main() {
HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME);
auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA");
auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetSymbolState");
auto GetImportState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetImportState");
auto StartDownload = (f_StartDownload)GetProcAddress(hInjectionMod, "StartDownload");
auto GetDownloadProgressEx = (f_GetDownloadProgressEx)GetProcAddress(hInjectionMod, "GetDownloadProgressEx");
Sleep(500);
StartDownload();
while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, false) != 1.0f)
{
Sleep(10);
}
while (GetSymbolState() != 0)
{
Sleep(10);
}
while (GetImportState() != 0)
{
Sleep(10);
}
DWORD TargetProcessId = FindProcessId("x86process.exe");
DWORD flags = MM_DEFAULT;
INJECTIONDATAA data =
{
"",
TargetProcessId,
INJECTION_MODE::IM_ManualMap,
LAUNCH_METHOD::LM_NtCreateThreadEx,
flags,
2000,
NULL,
NULL,
true
};
strcpy(data.szDllPath, "hello_world86.dll");
InjectA(&data);
return 0;
}
C# and a couple of other questions
Hello,
I first want to congratulate with you for this project. The community know this as the most powerful injector library. Congratulation!
- I was wondering if there is a C# wrapper or if someone that has the pinvoke signatures to share.
- I saw the Lunar project in C# from which this project is inspired, but it seems to lack most of the features. What you can tell me about this? Do you still recommend it?
- Is this compatible with Net Core (version 5) ? I mean injecting in a .Net core process along with the new way to load and unload assemblies through AssemblyLoadContext.
- Does it works with hooking a suspended process?
- I comes from EasyHook and I like it, but development is stalled from very long time and I can only use it in .Net Framework projects while I abandoned this died technology long time ago in favour of .Net core and now the recent NET 5.
Basically I would like to ask how it would compare and if it can perform at least the same tasks (which will me more than satisfying for me).
Many thanks
Cannot run the program
When I download the GH Injector.zip, extract it and try to run it does nothing.
Cannot find the function GetImportState
Hi,
My test failed at finding function GetImportState. But ok with InjectA and GetSymbolState. Can somebody help?
auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, «InjectA»);
if (InjectA == nullptr)
{
printf(«[x] Cannot find the function InjectA!n»);
return -1;
}
auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, «GetSymbolState»);
if (GetSymbolState == nullptr)
{
printf(«[x] Cannot find the function GetSymbolState!n»);
return -1;
}
auto GetImportState = (f_GetImportState)GetProcAddress(hInjectionMod, «GetImportState»);
if (GetImportState == nullptr)
{
printf(«[x] Cannot find the function GetImportState!n»);
return -1;
}
Filename logging in error log is not formatted correctly
What you see in log:
Source : Injection.cppr.cpp in InjectWImports at line 116
Injection.cppr.cpp should be: Injection.cpp
Bug appears to stem from:
memcpy(data.szFileName, __FILENAMEW__, ((size_t)lstrlenW(__FILENAMEW__)) * 2);
#define __FILENAMEW__ (wcsrchr(__FILEW__, '\') + 1)
Similarly:
InjectWImports should be InjectionW
You can see, both the strings are double the length they should be
I can fix it
This shit crashes with csgo now 😡😡😡😡
time to write my own injector i guess 😐
A question about isThreadInAlertableState
Hello, I have a question about the function IsThreadInAlertableState of ProcessInfo
In the x64 region:
//…
else if (ctx.Rip == m_WaitFunctionReturnAddress[2])
{
return (ctx.Rsi == TRUE);
}
else if (ctx.Rip == m_WaitFunctionReturnAddress[3])
{
return (ctx.Rsi == TRUE);
}
//…
There is a reason why its rsi?
I thought it was r9 for NtWaitForMultipleObjects and r8 for NtSignalAndWaitForSingleObject
Download/import failure. Error code: 0x0000003d
This happens when i’m running the injector.
The injector requires PDB files for the ntdll.dll to work.
These files will be downloaded from the Microsoft Symbol Server
and will take up about 5MB.
Do you want to download the files now?
—> Clicked Yes
Download/import failure. Error code: 0x0000003d
The injector cannot function without the PDB files.
Please restart the injector.
Debug log:
Injection module loaded at 00007FFB385B0000
Set print callback: 00007FF7F76B2700
Creating DragDrop window
HWND = 00070106
Loading settings
Don’t update check
Settings loaded successfully
Tooltips enabled
GH Injector V4.5
Initializing GUI
GUI initialized
Old index = -1
Dock = 0
SYMBOL_PARSER: RVA 00016A10 -> LdrLoadDll
SYMBOL_PARSER: RVA 0000FBF0 -> LdrUnloadDll
SYMBOL_PARSER: RVA 0001733C -> LdrpLoadDll
SYMBOL_PARSER: RVA 000168A0 -> LdrGetDllHandleEx
SYMBOL_PARSER: RVA 00081AD0 -> LdrGetProcedureAddress
SYMBOL_PARSER: RVA 0009D130 -> NtQueryInformationProcess
SYMBOL_PARSER: RVA 0009D4D0 -> NtQuerySystemInformation
SYMBOL_PARSER: RVA 0009D2B0 -> NtQueryInformationThread
SYMBOL_PARSER: RVA 000A3C00 -> memmove
SYMBOL_PARSER: RVA 00087D00 -> RtlZeroMemory
SYMBOL_PARSER: RVA 0002A9A0 -> RtlAllocateHeap
SYMBOL_PARSER: RVA 00024760 -> RtlFreeHeap
SYMBOL_PARSER: RVA 00019580 -> RtlAnsiStringToUnicodeString
SYMBOL_PARSER: RVA 0009D470 -> NtOpenFile
SYMBOL_PARSER: RVA 0009CED0 -> NtReadFile
SYMBOL_PARSER: RVA 0009D2F0 -> NtSetInformationFile
SYMBOL_PARSER: RVA 0009D030 -> NtQueryInformationFile
SYMBOL_PARSER: RVA 0009CFF0 -> NtClose
SYMBOL_PARSER: RVA 0009D110 -> NtAllocateVirtualMemory
SYMBOL_PARSER: RVA 0009D1D0 -> NtFreeVirtualMemory
SYMBOL_PARSER: RVA 0009D810 -> NtProtectVirtualMemory
SYMBOL_PARSER: RVA 0009D750 -> NtCreateSection
SYMBOL_PARSER: RVA 0009D310 -> NtMapViewOfSection
SYMBOL_PARSER: RVA 0009E620 -> NtCreateThreadEx
SYMBOL_PARSER: RVA 000DC010 -> RtlQueueApcWow64Thread
SYMBOL_PARSER: RVA 000108F0 -> RtlInsertInvertedFunctionTable
SYMBOL_PARSER: RVA 00047C14 -> LdrpHandleTlsData
SYMBOL_PARSER: RVA 0007D040 -> LdrLockLoaderLock
SYMBOL_PARSER: RVA 0007DEB0 -> LdrUnlockLoaderLock
SYMBOL_PARSER: RVA 00081680 -> RtlAddVectoredExceptionHandler
SYMBOL_PARSER: RVA 00082080 -> RtlRemoveVectoredExceptionHandler
SYMBOL_PARSER: RVA 0009D490 -> NtDelayExecution
SYMBOL_PARSER: RVA 0016A520 -> LdrpHeap
SYMBOL_PARSER: RVA 0017F500 -> LdrpInvertedFunctionTable
SYMBOL_PARSER: RVA 0017F3E8 -> LdrpVectorHandlerList
SYMBOL_PARSER: RVA 00164520 -> LdrpTlsList
SYMBOL_PARSER: RVA 0002A0A0 -> RtlRbRemoveNode
SYMBOL_PARSER: RVA 0016B468 -> LdrpModuleBaseAddressIndex
SYMBOL_PARSER: RVA 0016B478 -> LdrpMappingInfoIndex
SYMBOL_PARSER: RVA 00012224 -> LdrProtectMrdata
SYMBOL_PARSER: RVA 0001A360 -> LdrpPreprocessDllName
SYMBOL_PARSER: RVA 0001FA14 -> LdrpLoadDllInternal
SYMBOL_PARSER: RVA 00067AC0 -> RtlAddFunctionTable
SYMBOL_LOADER::Cleanup
Native ntdll symbols loaded
All symbols loaded
Import handler (wow64) failed: 0000003D
All symbols loaded
Import handler (wow64) failed: 0000003D
All symbols loaded
Import handler (wow64) failed: 0000003D
Processlist updated
Processlist updated
Beginning download(s)
All symbols loaded
All symbols loaded
Import handler (wow64) failed: 0000003D
Import handler (wow64) failed: 0000003D
built with qt5.15.2 + msvc v143 vs2022
running on win11 build 22000.527.0
Unable to inject the dll
Hi,
I can’t seem to successfully inject my dll
the error I got from GH_Inj_Log.txt
30-12-2020 13:55:51
Version : GH Injector V3.4
OS : Windows 10 Enterprise 1909 (Build 18363)
File : (nullptr)
Target : (undetermined)
Target PID : 1220
Source : Import Handler.cpp in ResolveImports at line 36
Errorcode : 0x0000001C
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : ---
HandleValue : 0x00000000
Flags : 0x00000000
I have tried to use another injection mode and launchmethod but still no luck
below is my code
HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME); auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA"); INJECTIONDATAA data = { "C:\Users\Nanda Abi Fahmi\source\repos\TestFunctionInjection\TestFunctionInjection\testdll.dll", PID, INJECTION_MODE::IM_LoadLibraryExW, LAUNCH_METHOD::LM_NtCreateThreadEx, NULL, 0, NULL, 0, true }; InjectA(&data);
I am wondering if I’m missing something
Thanks
Won’t run on Windows 11
Hey,
I can’t seem to start this application on Windows 11.
Info:
OS: Windows 11 Pro
Version: 21H2
Build: 22000.588
When I try to run the application, nothing happens and I don’t get any error messages (not in Event Viewer aswell).
Any suggestions?
Feature Request, Manual Map from file in memory
I don’t know how to ask for a request here at github so I’m putting it as an issue. Can we manual map from a file in memory, like a file downloaded with libcurl? I tried to read your code but it’s kinda complicated so I was never able to implement it, but maybe you can….
Shellcode Injector execution time exceeded SR_REMOTE_TIMEOUT
Hello ,I want to use manual mapping injector my shellcode
I copy my test DLL shellCode and let it point to pRawData
Please tell me what I’m doing wrong?
Missing LICENSE
This project is missing a LICENSE file.
What is the license for this project? Can I re-use it in my project? If yes, under what conditions?
Can’t get the DLL’s path after manual map injection w/ erase PE
Is there anyway to get the DLL’s name and path when using manual map injection and erase PE?
I understand that its by design so that it could hide the DLL, but maybe there are other methods to find it?
I’m using V4.4 and used the Kernel32’s GetModuleFileName, with the DllMain’s first argument as the hmodule and got an empty string as result.
Don’t know how to make it run
I just tried to run the example in Readme. I added a «main» function to make it compilable. But it reports error when going to main function with the error code «0xC0000005». I didn’t arrange anything else except adding main() arranged the «data» and deteled the strcpy function;
X86 compilation fails
X86 compilation fails due to the below error originated in pch.cpp
:
Error C2664: '_invalid_parameter_handler _set_thread_local_invalid_parameter_handler(_invalid_parameter_handler)': cannot convert argument 1 from 'void (__stdcall *)(const wchar_t *,const wchar_t *,const wchar_t *,unsigned int,uintptr_t)' to '_invalid_parameter_handler' (55, 70)
Replacing auto old = _set_thread_local_invalid_parameter_handler(ImTheTrashMan);
with
auto old = _set_thread_local_invalid_parameter_handler(reinterpret_cast<_invalid_parameter_handler>(ImTheTrashMan));
makes the compilation succeeds.
I have only tested the compilation and I don’t know if this change is the correct one.
Thanks and keep the good work! This library is amazing!
P.S. There are several suggestions/optimizations that R# recommends (for example making old
const just to mention one specific to this section of code). May be you may want to apply such kind optimizations to make the project cleaner and better.
P.S.2: I am not sure if you left spaces in the library name for any particular reason, but if there is no particular reason then it would be much better to remove them and rename with something like «GHInjectorX86» or whatever you like more. Spaces can create troubles in paths (without spaces I would have saved myself from writing escaping code).
P.S.3: I noticed that «Debug|x64» is the only configuration configured as «Use Multi-Byte Character Set», all the others with «Use Unicode Characters Set». Multi-Byte Character Set cause LoadLibrary to fail (it just block) at least in C#, but I have to deduce this also applies to unmanaged code. I had to compile into Unicode in order to make it work. Not sure why this configuration is the only one to use Multi-byte, may be you just missed it out.
Change Help button to link to the thread not the resource
(K32)GetModuleBaseNameW: win32 error: failed to resolve the file name of the target process
Hello,
using GH Library I would like to launch a process in a suspended state (probably using CreateProcess since I believe that should be the only one to provide this functionality), enable an hook and then resume the process. In the other issue you said me that this is only possible with NtCreateThreadEx which is the one I use by default (and If I am not wrong the recommended one).
This is how I do the injection:
var siex = new Kernel32.STARTUPINFOEX();
CreateProcess(targetExe, null, null, null, false, CREATE_PROCESS.CREATE_SUSPENDED, null, null, siex, out var notepad));
var id = new Native.InjectiondataW
{
szDllPath = dllToInject,
ProcessID = notepad.dwProcessId,
Mode = LoadLibraryExW,
Method = NtCreateThreadEx,
GenerateErrorLog = false
};
InjectW(ref id)
It continue until the attachment to the process and then:
K32GetModuleBaseNameW failed: 00000006
Error code: InjErrCantGetExeFilename
(K32)GetModuleBaseNameW: win32 error: failed to resolve the file name of the target process
The handle is invalid.
Tried with all the injection modes available, but same error.
Then I decided to go deeper and discovered that here is the call function that failed:
Basically GetModuleBaseNameW fails to resolve the executable name and stop execution. On non suspended process it works.
I suspect that it fails because on a suspended process only NTDLL is the one working while GetModuleBaseNameW should belong to Kernel32. May there are alternative function available in NTDLL that could do the same.
Anyway, I commented that code and manually added the already known executable name with the following code:
As a result of this change the execution continued and completed with success.
Surprisingly I was also able to enter into the injected dll and resume the process.
So, is really necessary that call at GetModuleBaseNameW ??? I see that it fills InjectiondataW->szTargetProcessExeFileName
.
If you need to know the exe file name the user can just fill that field them self and we are good to go. It would be fine if you could implement such functionality in your lib and if you need I could provide some working code to simplify the process. A function like CreateAndInject(bool suspended)
.
I really like this lib, it’s the only one that works, there are little things to improve and fix, but is still amazing!
My injector closes when I finish injecting.
Hello, First I must say: Great Library, what I like the most is how stable it is.
I made my Own Wrapper for .NET. I am trying all the methods with different flags. and it works perfectly.
But the Problem is that When I finish Injecting, my application (Injector) closes. and it does not generate the .log either .
I really have no idea what is going on. I don’t have any specific details. any ideas?
No injection methods working
Same error with every injection methods, with multiple different x86 DLLs and processes. This error occurs when building according to the directions here: https://github.com/multikill/GH_Injector_MSVC_2019_QT_5_15_0
Version : GH Injector V3.4
OS : Windows 10 Home 2004 (Build 19041)
File : (nullptr)
Target : (undetermined)
Target PID : 7452
Source : Injection.cppr.cpp in InjectWImports at line 116
Errorcode : 0x0000001D = #define INJ_ERR_SYMBOL_INIT_FAIL 0x0000001D
//SYMBOL_PARSER::Initialize : symbol error :
initialization failed (symbol error 0x40000001 - 0x40000014)
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : ---
HandleValue : 0x00000000
Flags : 0x00000000
Injection.cpp:
{
#pragma EXPORT_FUNCTION(__FUNCTION__, __FUNCDNAME__)
LOG("InjectW called with pData = %pn", pData);
ERROR_DATA error_data{ 0 };
DWORD RetVal = INJ_ERR_SUCCESS;
if (!pData)
{
INIT_ERROR_DATA(error_data, INJ_ERR_ADVANCED_NOT_DEFINED);
return InitErrorStruct(nullptr, pData, -1, INJ_ERR_NO_DATA, error_data);
}
RetVal = ResolveImports(error_data);
if (RetVal != INJ_ERR_SUCCESS)
{
INIT_ERROR_DATA(error_data, INJ_ERR_ADVANCED_NOT_DEFINED); // <------ error here line 116
return InitErrorStruct(nullptr, pData, -1, RetVal, error_data);
}```
How do i get it to inject into a game called PolyGon
also do i need to simply get visual studio for this? or just get game running, and start that one injection method?
Error 0x0000001C
The library builds fine but when I try to use it I get the error 0x0000001C
If I use the already built dll works fine. Maybe there is some configuration missing in Visual Studio?
Version : GH Injector V3.4
OS : Windows 10 Enterprise 2004 (Build 19035)
File : (nullptr)
Target : (undetermined)
Target PID : 31360
Source : Injection.cppr.cpp in InjectWImports at line 116
Errorcode : 0x0000001C
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : —
HandleValue : 0x00000000
Flags : 0x00000000
Shell failed with 0x0040000A
Heyo, just tried injecting and it just said Shell failed with 0040000A.
I have no idea, what that could mean tbh, in the code it said not being able to get some import. But it was an internal error afaik.
I would greatly appreciate the help.
For the DLL I injected, it’s a basic 64bit DLL with the default Settings for a DLL in VS.
Only thing i «imported» is D3D9 for an Overlay.
I used the Manual Mapping Method.
Manual Map Crashing
LoadLibrary works fine but Manual Map crashes the target process. Even with an minimal dllmain with only return TRUE;
inside crashes for some reason.
Library/GUI Version: 4.4
Options
• NtCreateThread
• Erase PEH
• Run DllMain
• Resolve Delay Imports
• Execute TLS
• Set Page Protections
• Enable exceptions
• Initialize security cookie
OS
Edition: Windows 10 Home Single Language
Version: 21H2
OS build: 19044.1526
How to inject
Hello.
Can you tell me how to inject some dll into some process with that library ?
Causes windows to force shutdown because of internal errors.
using 20H2 19042.1165
If you tries to use any method that doesnt use loadlib, it causes windows to force reboot.
not sure if this is only happening to me or smth.
GetDownloadProgress Doesn’t work correctly…
I tried to access it through my wrapper.
The float type in vb would be single. however it still doesn’t work.
Couldn’t you change the return to an integer?
such as GetSymbolState and GetImportState work fine.
injection keep failing
log file :
06-03-2022 16:39:18
Version : GH Injector V4.6
OS : Windows 10 21H2 (Build 19044)
File : D:visual studio projectc++ dll internal chitasd.dll
Target : ac_client.exe
Target PID : 12404
Source : NtCreateThreadEx WOW64.cpp in SR_NtCreateThreadEx_WOW64 at line 251
Errorcode : 0x10100009
Advanced errorcode : 0x00000102
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : wow64
HandleValue : 0x00000000
Flags : 0x00000000
debug console:
Injection module loaded at 00007FFD0BBC0000
Set print callback: 00007FF785CD2740
Creating DragDrop window
HWND = 000A06F0
Loading settings
Added file: D:/visual studio project/c++ dll internal chit/asd.dll
Settings loaded successfully
Tooltips enabled
GH Injector V4.6
Initializing GUI
GUI initialized
Console docked: right
Injector ready
Processlist updated
Launching injection thread
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
InjectW called with pData = 0000002C06F3A180
Attached to target process
Target process name = ac_client.exe
Validating specified file
File validated and prepared for injection:
D:visual studio projectc++ dll internal chitasd.dll
Begin InjectDLL_WOW64
Shell data initialized
Shellsize = 000005D0
Total size = 000009A8
pArg = 00640000
pShell = 006403D0
Shell written to memory
Entering StartRoutine_WOW64
Begin SR_NtCreateThreadEx_WOW64
Creating ProcessInfo
ProcessInfo initialized
Codecave allocated at 0000000000650000
Creating thread with:
pRoutine = 00650018
pArg = 00650000
Thread created with TID = 002710 (010000)
Entering wait state
WaitForSingleObject failed: 00000102
Return from StartRoutine_WOW64
StartRoutine_WOW64 failed: 10100009
Injection finished
Injection thread returned
Check the error log for more information
Injection 1/1 finished
Injection (1/1) failed:
Error = 10100009
if this issue is dumb, im sorry
Recommend Projects
-
ReactA declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
TypescriptTypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlowAn Open Source Machine Learning Framework for Everyone
-
DjangoThe Web framework for perfectionists with deadlines.
-
LaravelA PHP framework for web artisans
-
D3Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
FacebookWe are working to build community through open source technology. NB: members must have two-factor auth.
-
MicrosoftOpen source projects and samples from Microsoft.
-
GoogleGoogle ❤️ Open Source for everyone.
-
AlibabaAlibaba Open Source for everyone
-
D3Data-Driven Documents codes.
-
TencentChina tencent open source team.
Описание GH Injector для читов
Многие пытаются найти хороший инжектор со статусом Undetected, вот как раз хочу предоставить вашему вниманию GH Injector v3.2 для игры
Counter-Strike Global Offensive
, именно этот инжектор многие используют, так как он удобен, и ничего лишнего в нем нету, также в архиве вы увидите две версии инжектора, которые идут на x64 и дополнительно x86, работоспособность его лично сам проверял!.
Все читы на нашем сайте носят исключительно информационный характер, мы не отвечаем за их качество и не заставляем пользоваться ими. Вы и только вы решаете пользоваться читами или нет, дальнейшие последствия ложатся на вас.
Вы сможете скачать файл с нашего сайта через сек.
Скачивание файлов без ограничений доступно только зарегистрированным пользователям. Войдите под своим логином или же зарегистрируйтесь.
Порядок вывода комментариев: |
broihon / gh-injector-library
Goto Github
PK
View Code? Open in Web Editor
NEW
21.0
149.0
368 KB
A feature rich DLL injection library.
Home Page: https://guidedhacking.com/resources/guided-hacking-dll-injector.4/
C++ 75.69%
C 24.31%
dll-injection
manual-mapping
shellcode-injection
pe-loader
pe-format
gh-injector-library’s Introduction
A feature-rich DLL injection library which supports x86, WOW64 and x64 injections.
It features five injection methods, six shellcode execution methods and various additional options.
Session separation can be bypassed with all methods.
If you want to use this library with a GUI check out the GH Injector GUI.
Injection methods
- LoadLibraryExW
- LdrLoadDll
- LdrpLoadDll
- LdrpLoadDllInternal
- ManualMapping
Shellcode execution methods
- NtCreateThreadEx
- Thread hijacking
- SetWindowsHookEx
- QueueUserAPC
- KernelCallback
- FakeVEH
Manual mapping features:
- Section mapping
- Base relocation
- Imports
- Delayed imports
- SEH support
- TLS initialization
- Security cookie initalization
- Loader Lock
- Shift image
- Clean datadirectories
Additional features:
- Various cloaking options
- PEB unlinking
- PE header cloaking
- Thread cloaking
- Handle hijacking
- Hook scanning/restoring
Getting started
You can easily use mapper by including the compiled binaries in your project. Check the provided Injection.h header for more information.
Make sure you have the compiled binaries in the working directory of your program.
On first run the injection module has to download PDB files for the native (and when run on x64 the wow64) version of the ntdll.dll to resolve symbol addresses. Use the exported StartDownload function to begin the download.
The injector can only function if the downloads are finished. The injection module exports GetSymbolState and GetImportState which will return INJ_ERROR_SUCCESS (0) if the PDB download and resolving of all required addresses is completed.
Additionally GetDownloadProgress can be used to determine the progress of the download as percentage. If the injection module is to be unloaded during the download process call InterruptDownload or there’s a chance that the dll will deadlock your process.
#include "Injection.h" HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME); auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA"); auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetSymbolState"); auto GetImportState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetImportState"); auto StartDownload = (f_StartDownload)GetProcAddress(hInjectionMod, "StartDownload"); auto GetDownloadProgressEx = (f_GetDownloadProgressEx)GetProcAddress(hInjectionMod, "GetDownloadProgressEx"); //due to a minor bug in the current version you have to wait a bit before starting the download //will be fixed in version 4.7 Sleep(500); StartDownload(); //since GetSymbolState and GetImportState only return after the downloads are finished //checking the download progress is not necessary while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, false) != 1.0f) { Sleep(10); } #ifdef _WIN64 while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, true) != 1.0f) { Sleep(10); } #endif while (GetSymbolState() != 0) { Sleep(10); } while (GetImportState() != 0) { Sleep(10); } DWORD TargetProcessId; INJECTIONDATAA data = { "", TargetProcessId, INJECTION_MODE::IM_LoadLibraryExW, LAUNCH_METHOD::LM_NtCreateThreadEx, NULL, 0, NULL, NULL, true }; strcpy(data.szDllPath, DllPathToInject); InjectA(&data);
Credits
First of all I want to credit Joachim Bauch whose Memory Module Library was a great source to learn from:
https://github.com/fancycode/MemoryModule
He also made a great write-up explaining the basics of mapping a module:
https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/
I also want to thank Akaion/Dewera for helping me with SEH support and their C# mapping library which was another great resource to learn from:
https://github.com/Dewera/Lunar
Big thanks to mambda who made this PDB parser which I could steal code from to verify GUIDs:
https://bitbucket.org/mambda/pdb-parser/src/master/
gh-injector-library’s People
Contributors
gh-injector-library’s Issues
Cannot find the function GetImportState
Hi,
My test failed at finding function GetImportState. But ok with InjectA and GetSymbolState. Can somebody help?
auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, «InjectA»);
if (InjectA == nullptr)
{
printf(«[x] Cannot find the function InjectA!n»);
return -1;
}
auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, «GetSymbolState»);
if (GetSymbolState == nullptr)
{
printf(«[x] Cannot find the function GetSymbolState!n»);
return -1;
}
auto GetImportState = (f_GetImportState)GetProcAddress(hInjectionMod, «GetImportState»);
if (GetImportState == nullptr)
{
printf(«[x] Cannot find the function GetImportState!n»);
return -1;
}
Error 0x0000001C
The library builds fine but when I try to use it I get the error 0x0000001C
If I use the already built dll works fine. Maybe there is some configuration missing in Visual Studio?
Version : GH Injector V3.4
OS : Windows 10 Enterprise 2004 (Build 19035)
File : (nullptr)
Target : (undetermined)
Target PID : 31360
Source : Injection.cppr.cpp in InjectWImports at line 116
Errorcode : 0x0000001C
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : —
HandleValue : 0x00000000
Flags : 0x00000000
Manual map injection keep failing
Hi I have a problem with injection of dll
Log file:
03-01-2023 16:10:26
Version : GH Injector V4.7
OS : Windows 10 22H2 (Build 19045)
File : hello_world86.dll
Target : x86process.exe
Target PID : 7360
Source : Manual Mapping.cpp in MMAP_NATIVE::ManualMap at line 291
Errorcode : 0x00400002
Advanced errorcode : 0xC0000034
Injectionmode : ManualMap
Launchmethod : NtCreateThreadEx
Platform : x64/x86 (native)
HandleValue : 0x00000000
Flags : 0x00FE0000
Code:
int main() {
HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME);
auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA");
auto GetSymbolState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetSymbolState");
auto GetImportState = (f_GetSymbolState)GetProcAddress(hInjectionMod, "GetImportState");
auto StartDownload = (f_StartDownload)GetProcAddress(hInjectionMod, "StartDownload");
auto GetDownloadProgressEx = (f_GetDownloadProgressEx)GetProcAddress(hInjectionMod, "GetDownloadProgressEx");
Sleep(500);
StartDownload();
while (GetDownloadProgressEx(PDB_DOWNLOAD_INDEX_NTDLL, false) != 1.0f)
{
Sleep(10);
}
while (GetSymbolState() != 0)
{
Sleep(10);
}
while (GetImportState() != 0)
{
Sleep(10);
}
DWORD TargetProcessId = FindProcessId("x86process.exe");
DWORD flags = MM_DEFAULT;
INJECTIONDATAA data =
{
"",
TargetProcessId,
INJECTION_MODE::IM_ManualMap,
LAUNCH_METHOD::LM_NtCreateThreadEx,
flags,
2000,
NULL,
NULL,
true
};
strcpy(data.szDllPath, "hello_world86.dll");
InjectA(&data);
return 0;
}
Feature Request, Manual Map from file in memory
I don’t know how to ask for a request here at github so I’m putting it as an issue. Can we manual map from a file in memory, like a file downloaded with libcurl? I tried to read your code but it’s kinda complicated so I was never able to implement it, but maybe you can….
This shit crashes with csgo now 😡😡😡😡
time to write my own injector i guess 😐
Causes windows to force shutdown because of internal errors.
using 20H2 19042.1165
If you tries to use any method that doesnt use loadlib, it causes windows to force reboot.
not sure if this is only happening to me or smth.
Unable to inject the dll
Hi,
I can’t seem to successfully inject my dll
the error I got from GH_Inj_Log.txt
30-12-2020 13:55:51
Version : GH Injector V3.4
OS : Windows 10 Enterprise 1909 (Build 18363)
File : (nullptr)
Target : (undetermined)
Target PID : 1220
Source : Import Handler.cpp in ResolveImports at line 36
Errorcode : 0x0000001C
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : ---
HandleValue : 0x00000000
Flags : 0x00000000
I have tried to use another injection mode and launchmethod but still no luck
below is my code
HINSTANCE hInjectionMod = LoadLibrary(GH_INJ_MOD_NAME); auto InjectA = (f_InjectA)GetProcAddress(hInjectionMod, "InjectA"); INJECTIONDATAA data = { "C:\Users\Nanda Abi Fahmi\source\repos\TestFunctionInjection\TestFunctionInjection\testdll.dll", PID, INJECTION_MODE::IM_LoadLibraryExW, LAUNCH_METHOD::LM_NtCreateThreadEx, NULL, 0, NULL, 0, true }; InjectA(&data);
I am wondering if I’m missing something
Thanks
Can’t get the DLL’s path after manual map injection w/ erase PE
Is there anyway to get the DLL’s name and path when using manual map injection and erase PE?
I understand that its by design so that it could hide the DLL, but maybe there are other methods to find it?
I’m using V4.4 and used the Kernel32’s GetModuleFileName, with the DllMain’s first argument as the hmodule and got an empty string as result.
Cannot run the program
When I download the GH Injector.zip, extract it and try to run it does nothing.
C# and a couple of other questions
Hello,
I first want to congratulate with you for this project. The community know this as the most powerful injector library. Congratulation!
- I was wondering if there is a C# wrapper or if someone that has the pinvoke signatures to share.
- I saw the Lunar project in C# from which this project is inspired, but it seems to lack most of the features. What you can tell me about this? Do you still recommend it?
- Is this compatible with Net Core (version 5) ? I mean injecting in a .Net core process along with the new way to load and unload assemblies through AssemblyLoadContext.
- Does it works with hooking a suspended process?
- I comes from EasyHook and I like it, but development is stalled from very long time and I can only use it in .Net Framework projects while I abandoned this died technology long time ago in favour of .Net core and now the recent NET 5.
Basically I would like to ask how it would compare and if it can perform at least the same tasks (which will me more than satisfying for me).
Many thanks
Manual Map Crashing
LoadLibrary works fine but Manual Map crashes the target process. Even with an minimal dllmain with only return TRUE;
inside crashes for some reason.
Library/GUI Version: 4.4
Options
• NtCreateThread
• Erase PEH
• Run DllMain
• Resolve Delay Imports
• Execute TLS
• Set Page Protections
• Enable exceptions
• Initialize security cookie
OS
Edition: Windows 10 Home Single Language
Version: 21H2
OS build: 19044.1526
Filename logging in error log is not formatted correctly
What you see in log:
Source : Injection.cppr.cpp in InjectWImports at line 116
Injection.cppr.cpp should be: Injection.cpp
Bug appears to stem from:
memcpy(data.szFileName, __FILENAMEW__, ((size_t)lstrlenW(__FILENAMEW__)) * 2);
#define __FILENAMEW__ (wcsrchr(__FILEW__, '\') + 1)
Similarly:
InjectWImports should be InjectionW
You can see, both the strings are double the length they should be
I can fix it
My injector closes when I finish injecting.
Hello, First I must say: Great Library, what I like the most is how stable it is.
I made my Own Wrapper for .NET. I am trying all the methods with different flags. and it works perfectly.
But the Problem is that When I finish Injecting, my application (Injector) closes. and it does not generate the .log either .
I really have no idea what is going on. I don’t have any specific details. any ideas?
Won’t run on Windows 11
Hey,
I can’t seem to start this application on Windows 11.
Info:
OS: Windows 11 Pro
Version: 21H2
Build: 22000.588
When I try to run the application, nothing happens and I don’t get any error messages (not in Event Viewer aswell).
Any suggestions?
(K32)GetModuleBaseNameW: win32 error: failed to resolve the file name of the target process
Hello,
using GH Library I would like to launch a process in a suspended state (probably using CreateProcess since I believe that should be the only one to provide this functionality), enable an hook and then resume the process. In the other issue you said me that this is only possible with NtCreateThreadEx which is the one I use by default (and If I am not wrong the recommended one).
This is how I do the injection:
var siex = new Kernel32.STARTUPINFOEX();
CreateProcess(targetExe, null, null, null, false, CREATE_PROCESS.CREATE_SUSPENDED, null, null, siex, out var notepad));
var id = new Native.InjectiondataW
{
szDllPath = dllToInject,
ProcessID = notepad.dwProcessId,
Mode = LoadLibraryExW,
Method = NtCreateThreadEx,
GenerateErrorLog = false
};
InjectW(ref id)
It continue until the attachment to the process and then:
K32GetModuleBaseNameW failed: 00000006
Error code: InjErrCantGetExeFilename
(K32)GetModuleBaseNameW: win32 error: failed to resolve the file name of the target process
The handle is invalid.
Tried with all the injection modes available, but same error.
Then I decided to go deeper and discovered that here is the call function that failed:
Basically GetModuleBaseNameW fails to resolve the executable name and stop execution. On non suspended process it works.
I suspect that it fails because on a suspended process only NTDLL is the one working while GetModuleBaseNameW should belong to Kernel32. May there are alternative function available in NTDLL that could do the same.
Anyway, I commented that code and manually added the already known executable name with the following code:
As a result of this change the execution continued and completed with success.
Surprisingly I was also able to enter into the injected dll and resume the process.
So, is really necessary that call at GetModuleBaseNameW ??? I see that it fills InjectiondataW->szTargetProcessExeFileName
.
If you need to know the exe file name the user can just fill that field them self and we are good to go. It would be fine if you could implement such functionality in your lib and if you need I could provide some working code to simplify the process. A function like CreateAndInject(bool suspended)
.
I really like this lib, it’s the only one that works, there are little things to improve and fix, but is still amazing!
Don’t know how to make it run
I just tried to run the example in Readme. I added a «main» function to make it compilable. But it reports error when going to main function with the error code «0xC0000005». I didn’t arrange anything else except adding main() arranged the «data» and deteled the strcpy function;
injection keep failing
log file :
06-03-2022 16:39:18
Version : GH Injector V4.6
OS : Windows 10 21H2 (Build 19044)
File : D:visual studio projectc++ dll internal chitasd.dll
Target : ac_client.exe
Target PID : 12404
Source : NtCreateThreadEx WOW64.cpp in SR_NtCreateThreadEx_WOW64 at line 251
Errorcode : 0x10100009
Advanced errorcode : 0x00000102
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : wow64
HandleValue : 0x00000000
Flags : 0x00000000
debug console:
Injection module loaded at 00007FFD0BBC0000
Set print callback: 00007FF785CD2740
Creating DragDrop window
HWND = 000A06F0
Loading settings
Added file: D:/visual studio project/c++ dll internal chit/asd.dll
Settings loaded successfully
Tooltips enabled
GH Injector V4.6
Initializing GUI
GUI initialized
Console docked: right
Injector ready
Processlist updated
Launching injection thread
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
All symbols loaded
Import handler finished
InjectW called with pData = 0000002C06F3A180
Attached to target process
Target process name = ac_client.exe
Validating specified file
File validated and prepared for injection:
D:visual studio projectc++ dll internal chitasd.dll
Begin InjectDLL_WOW64
Shell data initialized
Shellsize = 000005D0
Total size = 000009A8
pArg = 00640000
pShell = 006403D0
Shell written to memory
Entering StartRoutine_WOW64
Begin SR_NtCreateThreadEx_WOW64
Creating ProcessInfo
ProcessInfo initialized
Codecave allocated at 0000000000650000
Creating thread with:
pRoutine = 00650018
pArg = 00650000
Thread created with TID = 002710 (010000)
Entering wait state
WaitForSingleObject failed: 00000102
Return from StartRoutine_WOW64
StartRoutine_WOW64 failed: 10100009
Injection finished
Injection thread returned
Check the error log for more information
Injection 1/1 finished
Injection (1/1) failed:
Error = 10100009
if this issue is dumb, im sorry
Download/import failure. Error code: 0x0000003d
This happens when i’m running the injector.
The injector requires PDB files for the ntdll.dll to work.
These files will be downloaded from the Microsoft Symbol Server
and will take up about 5MB.
Do you want to download the files now?
—> Clicked Yes
Download/import failure. Error code: 0x0000003d
The injector cannot function without the PDB files.
Please restart the injector.
Debug log:
Injection module loaded at 00007FFB385B0000
Set print callback: 00007FF7F76B2700
Creating DragDrop window
HWND = 00070106
Loading settings
Don’t update check
Settings loaded successfully
Tooltips enabled
GH Injector V4.5
Initializing GUI
GUI initialized
Old index = -1
Dock = 0
SYMBOL_PARSER: RVA 00016A10 -> LdrLoadDll
SYMBOL_PARSER: RVA 0000FBF0 -> LdrUnloadDll
SYMBOL_PARSER: RVA 0001733C -> LdrpLoadDll
SYMBOL_PARSER: RVA 000168A0 -> LdrGetDllHandleEx
SYMBOL_PARSER: RVA 00081AD0 -> LdrGetProcedureAddress
SYMBOL_PARSER: RVA 0009D130 -> NtQueryInformationProcess
SYMBOL_PARSER: RVA 0009D4D0 -> NtQuerySystemInformation
SYMBOL_PARSER: RVA 0009D2B0 -> NtQueryInformationThread
SYMBOL_PARSER: RVA 000A3C00 -> memmove
SYMBOL_PARSER: RVA 00087D00 -> RtlZeroMemory
SYMBOL_PARSER: RVA 0002A9A0 -> RtlAllocateHeap
SYMBOL_PARSER: RVA 00024760 -> RtlFreeHeap
SYMBOL_PARSER: RVA 00019580 -> RtlAnsiStringToUnicodeString
SYMBOL_PARSER: RVA 0009D470 -> NtOpenFile
SYMBOL_PARSER: RVA 0009CED0 -> NtReadFile
SYMBOL_PARSER: RVA 0009D2F0 -> NtSetInformationFile
SYMBOL_PARSER: RVA 0009D030 -> NtQueryInformationFile
SYMBOL_PARSER: RVA 0009CFF0 -> NtClose
SYMBOL_PARSER: RVA 0009D110 -> NtAllocateVirtualMemory
SYMBOL_PARSER: RVA 0009D1D0 -> NtFreeVirtualMemory
SYMBOL_PARSER: RVA 0009D810 -> NtProtectVirtualMemory
SYMBOL_PARSER: RVA 0009D750 -> NtCreateSection
SYMBOL_PARSER: RVA 0009D310 -> NtMapViewOfSection
SYMBOL_PARSER: RVA 0009E620 -> NtCreateThreadEx
SYMBOL_PARSER: RVA 000DC010 -> RtlQueueApcWow64Thread
SYMBOL_PARSER: RVA 000108F0 -> RtlInsertInvertedFunctionTable
SYMBOL_PARSER: RVA 00047C14 -> LdrpHandleTlsData
SYMBOL_PARSER: RVA 0007D040 -> LdrLockLoaderLock
SYMBOL_PARSER: RVA 0007DEB0 -> LdrUnlockLoaderLock
SYMBOL_PARSER: RVA 00081680 -> RtlAddVectoredExceptionHandler
SYMBOL_PARSER: RVA 00082080 -> RtlRemoveVectoredExceptionHandler
SYMBOL_PARSER: RVA 0009D490 -> NtDelayExecution
SYMBOL_PARSER: RVA 0016A520 -> LdrpHeap
SYMBOL_PARSER: RVA 0017F500 -> LdrpInvertedFunctionTable
SYMBOL_PARSER: RVA 0017F3E8 -> LdrpVectorHandlerList
SYMBOL_PARSER: RVA 00164520 -> LdrpTlsList
SYMBOL_PARSER: RVA 0002A0A0 -> RtlRbRemoveNode
SYMBOL_PARSER: RVA 0016B468 -> LdrpModuleBaseAddressIndex
SYMBOL_PARSER: RVA 0016B478 -> LdrpMappingInfoIndex
SYMBOL_PARSER: RVA 00012224 -> LdrProtectMrdata
SYMBOL_PARSER: RVA 0001A360 -> LdrpPreprocessDllName
SYMBOL_PARSER: RVA 0001FA14 -> LdrpLoadDllInternal
SYMBOL_PARSER: RVA 00067AC0 -> RtlAddFunctionTable
SYMBOL_LOADER::Cleanup
Native ntdll symbols loaded
All symbols loaded
Import handler (wow64) failed: 0000003D
All symbols loaded
Import handler (wow64) failed: 0000003D
All symbols loaded
Import handler (wow64) failed: 0000003D
Processlist updated
Processlist updated
Beginning download(s)
All symbols loaded
All symbols loaded
Import handler (wow64) failed: 0000003D
Import handler (wow64) failed: 0000003D
built with qt5.15.2 + msvc v143 vs2022
running on win11 build 22000.527.0
Shellcode Injector execution time exceeded SR_REMOTE_TIMEOUT
Hello ,I want to use manual mapping injector my shellcode
I copy my test DLL shellCode and let it point to pRawData
Please tell me what I’m doing wrong?
How do i get it to inject into a game called PolyGon
also do i need to simply get visual studio for this? or just get game running, and start that one injection method?
A question about isThreadInAlertableState
Hello, I have a question about the function IsThreadInAlertableState of ProcessInfo
In the x64 region:
//…
else if (ctx.Rip == m_WaitFunctionReturnAddress[2])
{
return (ctx.Rsi == TRUE);
}
else if (ctx.Rip == m_WaitFunctionReturnAddress[3])
{
return (ctx.Rsi == TRUE);
}
//…
There is a reason why its rsi?
I thought it was r9 for NtWaitForMultipleObjects and r8 for NtSignalAndWaitForSingleObject
Shell failed with 0x0040000A
Heyo, just tried injecting and it just said Shell failed with 0040000A.
I have no idea, what that could mean tbh, in the code it said not being able to get some import. But it was an internal error afaik.
I would greatly appreciate the help.
For the DLL I injected, it’s a basic 64bit DLL with the default Settings for a DLL in VS.
Only thing i «imported» is D3D9 for an Overlay.
I used the Manual Mapping Method.
Change Help button to link to the thread not the resource
How to handle Error code: 0x1010000C
Hi I get this error upon injecting (sometimes). I am wondering if this is fault of my dll, or the injector.
SR_NTCTE_ERR_RPM_FAIL 0x1010000C//ReadProcessMemory : win32 error : reading the results of the shellcode failed
Albeit I only get this error maybe 3/10 injections.
How to inject
Hello.
Can you tell me how to inject some dll into some process with that library ?
Missing LICENSE
This project is missing a LICENSE file.
What is the license for this project? Can I re-use it in my project? If yes, under what conditions?
No injection methods working
Same error with every injection methods, with multiple different x86 DLLs and processes. This error occurs when building according to the directions here: https://github.com/multikill/GH_Injector_MSVC_2019_QT_5_15_0
Version : GH Injector V3.4
OS : Windows 10 Home 2004 (Build 19041)
File : (nullptr)
Target : (undetermined)
Target PID : 7452
Source : Injection.cppr.cpp in InjectWImports at line 116
Errorcode : 0x0000001D = #define INJ_ERR_SYMBOL_INIT_FAIL 0x0000001D
//SYMBOL_PARSER::Initialize : symbol error :
initialization failed (symbol error 0x40000001 - 0x40000014)
Advanced errorcode : 0x00000000
Injectionmode : LoadLibraryExW
Launchmethod : NtCreateThreadEx
Platform : ---
HandleValue : 0x00000000
Flags : 0x00000000
Injection.cpp:
{
#pragma EXPORT_FUNCTION(__FUNCTION__, __FUNCDNAME__)
LOG("InjectW called with pData = %pn", pData);
ERROR_DATA error_data{ 0 };
DWORD RetVal = INJ_ERR_SUCCESS;
if (!pData)
{
INIT_ERROR_DATA(error_data, INJ_ERR_ADVANCED_NOT_DEFINED);
return InitErrorStruct(nullptr, pData, -1, INJ_ERR_NO_DATA, error_data);
}
RetVal = ResolveImports(error_data);
if (RetVal != INJ_ERR_SUCCESS)
{
INIT_ERROR_DATA(error_data, INJ_ERR_ADVANCED_NOT_DEFINED); // <------ error here line 116
return InitErrorStruct(nullptr, pData, -1, RetVal, error_data);
}```
support uwp apps
after alot of tries trying to inject dll into uwp apps, i did a research and turns out the dll needs a permission or something like that.
maybe support uwp apps if possible?
GetDownloadProgress Doesn’t work correctly…
I tried to access it through my wrapper.
The float type in vb would be single. however it still doesn’t work.
Couldn’t you change the return to an integer?
such as GetSymbolState and GetImportState work fine.
this variable is unused?
X86 compilation fails
X86 compilation fails due to the below error originated in pch.cpp
:
Error C2664: '_invalid_parameter_handler _set_thread_local_invalid_parameter_handler(_invalid_parameter_handler)': cannot convert argument 1 from 'void (__stdcall *)(const wchar_t *,const wchar_t *,const wchar_t *,unsigned int,uintptr_t)' to '_invalid_parameter_handler' (55, 70)
Replacing auto old = _set_thread_local_invalid_parameter_handler(ImTheTrashMan);
with
auto old = _set_thread_local_invalid_parameter_handler(reinterpret_cast<_invalid_parameter_handler>(ImTheTrashMan));
makes the compilation succeeds.
I have only tested the compilation and I don’t know if this change is the correct one.
Thanks and keep the good work! This library is amazing!
P.S. There are several suggestions/optimizations that R# recommends (for example making old
const just to mention one specific to this section of code). May be you may want to apply such kind optimizations to make the project cleaner and better.
P.S.2: I am not sure if you left spaces in the library name for any particular reason, but if there is no particular reason then it would be much better to remove them and rename with something like «GHInjectorX86» or whatever you like more. Spaces can create troubles in paths (without spaces I would have saved myself from writing escaping code).
P.S.3: I noticed that «Debug|x64» is the only configuration configured as «Use Multi-Byte Character Set», all the others with «Use Unicode Characters Set». Multi-Byte Character Set cause LoadLibrary to fail (it just block) at least in C#, but I have to deduce this also applies to unmanaged code. I had to compile into Unicode in order to make it work. Not sure why this configuration is the only one to use Multi-byte, may be you just missed it out.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
|
Authenticator Code |
|
Thread Tools |
|
#121 |
|||||||||||
everett36 n00bie Join Date: Jan 2016
Reputation: 23 Points: 4,388, Level: 6 Level up: 88%, 112 Points needed Activity: 3.9% Last Achievements |
which config i need fpr guideded injector? gta is crahsing |
|||||||||||
everett36 is offline |
|
#122 |
|||||||||||
k0spwn n00bie Join Date: Nov 2015
Reputation: 10 Points: 1,812, Level: 3 Level up: 59%, 288 Points needed Activity: 0% |
Menu is awesome ! Thank you very much for it, I would love to see a «infinite ammo» option though |
|||||||||||
k0spwn is offline |
|
#123 |
|||||||||||
Hikka242 n00bie Join Date: Nov 2017
Reputation: 10 Points: 2,748, Level: 4 Level up: 93%, 52 Points needed Activity: 2.0% Last Achievements |
Steam version crashed |
|||||||||||
Hikka242 is offline |
|
#124 |
|||||||||||
kriegstbrett n00bie Join Date: Oct 2019
Reputation: 319 Points: 415, Level: 1 Level up: 3%, 485 Points needed Activity: 2.0% |
Quote:
Originally Posted by Hikka242 Steam version crashed Iam using the Steam Version too and everything is fine, __________________ Whos this? |
|||||||||||
kriegstbrett is offline |
|
#125 |
|||||||||||
Tyler7777 n00bie Join Date: Oct 2019
Reputation: 10 Points: 412, Level: 1 Level up: 3%, 488 Points needed Activity: 0% |
Hi! Nice cheat! |
|||||||||||
Tyler7777 is offline |
|
#126 |
|||||||||||
Torrento22 n00bie Join Date: Oct 2019
Reputation: 10 Points: 1, Level: 1 Level up: 0%, 1 Points needed Activity: 0% |
for some reason, the latest version does not work. crashes and throws back on the site |
|||||||||||
Torrento22 is offline |
|
#127 |
|||||||||||
captdush n00bie Join Date: Nov 2019
Reputation: 10 Points: 1, Level: 1 Level up: 0%, 1 Points needed Activity: 0% |
Hey, when i use gh injector, in manual map + thead hijacking and phantom V1.2 to FiveM i get this error : An error has occurred. For more information check the log file: And i get this in the log file : 02-11-2019 19:42:48 Can you tell me why pls? Thanks you so much for your work. |
|||||||||||
captdush is offline |
|
#128 |
|||||||||||
Zuqaa an element. Join Date: Nov 2016 Location: France
Reputation: 1499 Points: 30,281, Level: 25 Level up: 87%, 219 Points needed Activity: 3.3% Last Achievements |
changelogs for 1.3 ? ? __________________ Cheated on H1Z1, OW, GTA:O, COD, Warzone and FiveM |
|||||||||||
Zuqaa is offline |
|
#129 |
|||||||||||
datoji n00bie Join Date: Jul 2017
Reputation: 10 Points: 2,229, Level: 4 Level up: 19%, 571 Points needed Activity: 4.7% Last Achievements |
plz add unlimited ammo and giving specific weapon plz if u can |
|||||||||||
datoji is offline |
|
#130 |
|||||||||||
stonedboi n00bie Join Date: May 2017
Reputation: 10 Points: 3,054, Level: 5 Level up: 32%, 546 Points needed Activity: 2.4% Last Achievements |
Looks good lets hope ragemp AC don’t catch on
|
|||||||||||
stonedboi is offline |
|
#131 |
|||||||||||
zdation1 Super l337
Join Date: Feb 2018 Location: Space
Reputation: 5828 Recognitions (2) Points: 17,067, Level: 17 Level up: 48%, 733 Points needed Activity: 3.8% Last Achievements |
Quote:
Originally Posted by stonedboi Looks good lets hope ragemp AC don’t catch on v1.3 is more stable then v1.2 for everyone that had isuues with crashes while runtime(I’am testing new stuff to optimize the Performance). The anti cheat for RageMP stayed the same for years. But Servers can also install anti cheats that can detect obvious memory changes w/o Problem.
|
|||||||||||
zdation1 is offline |
|
#132 |
|||||||||||
Fach123 Posting Well Join Date: Jun 2014
Reputation: -31 Points: 4,052, Level: 6 Level up: 51%, 448 Points needed Activity: 7.7% Last Achievements |
Why did 1.2 stop injecting? |
|||||||||||
Fach123 is offline |
|
#133 |
dronlis n00bie Join Date: Aug 2011
Reputation: 10 |
Yea not injecting v1.2 �� |
dronlis is offline |
|
#134 |
|||||||||||
dejeez n00bie Join Date: Aug 2019
Reputation: 10 Points: 1, Level: 1 Level up: 0%, 1 Points needed Activity: 0% |
the same thing, dll stopped injecting into the game just an hour ago. There seems to be a RAGEMP client update |
|||||||||||
dejeez is offline |
|
#135 |
|||||||||||
Pepstasy n00bie Join Date: Oct 2019
Reputation: -119 Points: 273, Level: 1 Level up: 69%, 127 Points needed Activity: 0% |
it was detected from ragemp |
|||||||||||
Pepstasy is offline |
|
#136 |
|||||||||||
RonnyJeynolds n00bie Join Date: Apr 2016
Reputation: -19 Points: 3,613, Level: 6 Level up: 2%, 887 Points needed Activity: 1.9% Last Achievements |
I’ve tried 1.2, but after the injection it kept crashing… Any idea how to fix this?? |
|||||||||||
RonnyJeynolds is offline |
|
#137 |
|||||||||||
zdation1 Super l337
Join Date: Feb 2018 Location: Space
Reputation: 5828 Recognitions (2) Points: 17,067, Level: 17 Level up: 48%, 733 Points needed Activity: 3.8% Last Achievements |
Quote:
Originally Posted by RonnyJeynolds I’ve tried 1.2, but after the injection it kept crashing… Any idea how to fix this?? Wait for v1.3, this will fix all your isuues. |
|||||||||||
zdation1 is offline |
|
#138 |
|||||||||||
santope101 n00bie Join Date: Aug 2019 Location: Kiyv
Reputation: 10 Points: 271, Level: 1 Level up: 68%, 129 Points needed Activity: 23.1% |
They did an anti-cheat on this cheat on the RedAge server, but still found a way to do this. |
|||||||||||
santope101 is offline |
|
#139 |
|||||||||||
RonnyJeynolds n00bie Join Date: Apr 2016
Reputation: -19 Points: 3,613, Level: 6 Level up: 2%, 887 Points needed Activity: 1.9% Last Achievements |
Can the staff pls approve v1.3?? |
|||||||||||
RonnyJeynolds is offline |
|
#140 |
|||||||||||
datoji n00bie Join Date: Jul 2017
Reputation: 10 Points: 2,229, Level: 4 Level up: 19%, 571 Points needed Activity: 4.7% Last Achievements |
Quote:
Originally Posted by santope101 They did an anti-cheat on this cheat on the RedAge server, but still found a way to do this. how? как? |
|||||||||||
datoji is offline |
|
Similar Threads |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Coding] Phantom Bow Hacks (fixed zero reticle aimbot correction + phantom mortar!!!) | nosale | Battlefield 4 | 5 | 31st March 2015 07:10 PM |
[Question] Last Stand Phantom Objective secret room and… | ILOVEKILLNOOBS | Battlefield 4 | 2 | 20th November 2014 12:25 PM |
[Release] Timiostimios Ghost Recon Phantom Hack V2 | josexdg | Other FPS Games | 7 | 4th August 2014 04:59 AM |
phantom hack | cruelty | Other FPS Games | 4 | 23rd August 2005 11:16 PM |
[Information] True Phantom hack idea | punkass | Battlefield Vietnam | 11 | 26th July 2004 07:39 PM |
Tags |
thread, reversal, vehicle, radar, creator, target, aimbot, bar, health, freeze |
«
Previous Thread
|
Next Thread
»
Forum Jump |
All times are GMT. The time now is 06:21 AM.
Contact Us —
Toggle Dark Theme
Terms of Use Information Privacy Policy Information
Copyright ©2000-2023, Unknowncheats� UKCS #312436
no new posts
0 / 0 / 0 Регистрация: 14.10.2016 Сообщений: 40 |
|
1 |
|
29.10.2017, 13:27. Показов 14122. Ответов 6
Как исправить? Изображения
__________________
0 |
3636 / 2968 / 918 Регистрация: 05.07.2013 Сообщений: 14,220 |
|
29.10.2017, 14:33 |
2 |
написано же, смотри лог файл
0 |
0 / 0 / 0 Регистрация: 14.10.2016 Сообщений: 40 |
|
29.10.2017, 16:30 [ТС] |
3 |
От того, что я в него не посмотрел, проблема не решилась
0 |
2391 / 2217 / 564 Регистрация: 28.12.2010 Сообщений: 8,659 |
|
29.10.2017, 16:40 |
4 |
Ivan228, от того что ты лог тут не привел, проблема тоже не решилась.
0 |
0 / 0 / 0 Регистрация: 14.10.2016 Сообщений: 40 |
|
29.10.2017, 16:49 [ТС] |
5 |
0 |
2391 / 2217 / 564 Регистрация: 28.12.2010 Сообщений: 8,659 |
|
29.10.2017, 16:57 |
6 |
Сообщение было отмечено Ivan228 как решение Решение
0 |
0 / 0 / 0 Регистрация: 14.10.2016 Сообщений: 40 |
|
29.10.2017, 18:52 [ТС] |
7 |
Спасибо, помогло.
0 |
Содержание
- A JNI error has occurred, please check your installation and try again — как исправить?
- Что такое JVM, JNI и JRE?
- Причина проблемы A JNI error has occurred, please check your installation and try again
- Установите одинаковую версию JRE и JDK
- Правильно настройте переменные среды для Java
- A JNI error has occurred, please check your installation and try again при компиляции java программы
- Как исправить ошибки при запуске и компиляции?
- Выводы
- “Error: A JNI error has occurred, please check your installation …” – How to fix it!
- JNI Error in Windows CMD
- JNI Error when starting a Minecraft Server
- JNI Error in Minecraft TLauncher
- Java JNI error message still appears?
- Как исправить ошибку «Произошла ошибка JNI» в Minecraft
- Как исправить ошибку JNI Error has Occurred в Minecraft
- Произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse x86 Windows 8.1
A JNI error has occurred, please check your installation and try again — как исправить?
При запуске какого-либо кода, написанного на Java, программист может получить сообщение об ошибке с текстом «A JNI error has occurred, please check your installation and try again». Обычно причиной ошибки выступает разница в версии компилятора и среды выполнения, из-за чего происходит некорректная интерпретация и выполнение имеющегося кода. Ниже разберём, в чём суть данной ошибки, как её исправить, а также отдельно укажем, как решить данную ошибку при запуске игры Minecraft.
Что такое JVM, JNI и JRE?
Как известно, программы, написанные на «Java», компилируются в байтовый код, который распознаётся виртуальной машиной Ява, называемой «JVM» (Java Virtual Machine). JVM по своей сути является компьютерным симулятором, и при запуске программы написанной на Java, распознаёт инструкции байтового кода, и переводит их в машинные инструкции собственной системы.
JVM должна обеспечивать удобный способ доступа к ресурсам системы – файлам, сетевым соединениям, видеокарте и другим компонентам. Механизмы доступа к этим ресурсам напрямую зависят от системы, в которой работает JVM. Для обеспечения своей работы виртуальная машина использует собственный интерфейс Java, называемый «JNI» (Java Native Interface).
Методы Java, использующие JNI для доступа к службам, квалифицируются термином «native». Квалификатор «native» сообщает виртуальной машине, что код для выполнения при вызове данного метода присутствует во внешней библиотеке. JVM ищет конкретный вызов библиотеки, который необходимо выполнить, на основе полного имени пути к методу и его аргументам. Существует специальное соглашение об именах, позволяющее сопоставить метод с конкретной ссылкой на внешнюю библиотеку.
Данный механизм JNI позволяет программам на Java кодировать имя переносимого метода. И скомпилированный в Виндовс код Java будет отлично запускаться на компьютерах под управлением Линукс или Мак.
Как мы уже писали выше, Java имеет собственные библиотеки для обеспечения базового взаимодействия с системой на уровне чтения-записи файлов, создания сетевых подключений и вывода изображения на экран. Они распространяются с JVM как часть среды выполнения Ява, известные как «JRE» (Java Runtime Environment), независимо от того, является ли она автономной JRE или включена в Java Development Kit (JDK).
Причина проблемы A JNI error has occurred, please check your installation and try again
Текст данной ошибки переводится как «Произошла ошибки INI, пожалуйста, проверьте вашу инсталляцию и попробуйте вновь». Данная ошибка, получаемая при запуске программы на JVM, указывает на проблему с запуском кода, связанного с собственным методом.
Причины проблемы могут быть следующими:
- Повреждена библиотека JDK / JRE, вследствие чего она не может быть загружена, и JVM не сможет выполнить код;
- Повреждён функционал операционной системы, вследствие чего последняя не в состоянии удовлетворить системный вызов, созданный нативным кодом;
- Имеются различия в номерах версий JRE (среда выполнения Java) и JDK (Java Development Kit), что также может вызывать ошибку JNI. Различия в номерах версий приведут к тому, что JVM откажется запускать код, потому что он был скомпилирован для совместимости с версией Java, превышающей максимальную версию, поддерживаемую JVM. Проще говоря, код может быть скомпилирован на одной версии Ява (например, 10), а пытается запускаться с помощью версии Ява 9;
- Также проблема может быть вызвана при попытке запустить файл.jar через командную строку, например с помощью команды java -jar File.jar.
Давайте разберём способы, позволяющие устранить ошибку JNI на вашем ПК.
Установите одинаковую версию JRE и JDK
Исправить ошибку «A JNI error has occurred» поможет обновление JRE и JDK до актуальных синхронных версий. Необходимо убедится в их одинаковой версии, для чего вызовите системную строку (нажмите Win+R, введите там cmd и нажмите ввод), и наберите там:
java -version и нажмите ввод.
Затем наберите: javac –version
Полученные результаты должны совпадать. Если они они не совпадают, то это сигнализирует о несоответствии версии компилятора и среды выполнения Java. Для решения проблемы рекомендуем установить однотипные и актуальные версии компилятора и среды выполнения, после чего вновь используйте команды «java -version» и «javac -version» для проверки, возвращают ли данные команды один и тот же номер версии.
Если версии синхронны, тогда ваш код Java необходимо будет скомпилировать с помощью компилятора новой версии. После этого ошибка «A JNI error has occurred, please check your installation» может быть устранена.
Правильно настройте переменные среды для Java
Для исправления ошибки «A JNI error has occurred» может понадобится настроить переменные среды для Java. Выполните следующее:
Источник
A JNI error has occurred, please check your installation and try again при компиляции java программы
Многие новички, которые изучают программирование на Java при компиляции могут столкнуться с ошибкой «A JNI error has occurred, please check your installation and try again». Ошибка выскакивает даже если запускать совсем простой код типа «hello world!» как в примере ниже.
Пример простого кода Hello World!
Обычно компиляция проходит, но созданный класс не интерпретируется. У большинства пользователей ошибка появляется из-за следующих двух моментов:
- Неправильные пути в переменных средах;
- Вы компилируете файл более новой версией Java, а запустить пытаетесь на более ранней. Например компилировали при помощи Java 10, а запускаете на Java 9.
Как исправить ошибки при запуске и компиляции?
Первое, что следует проверить – пути в переменных средах. По списку первым например стоит путь:
«C:Program Files (x86)Common FilesOracleJavajavapath»
А в конце каталог до jdk:
Операционная система компьютера находит екзешник «java.exe» и первым делом смотрит в «..javapath» и останавливает поиск. Вам нужен файл что лежит в «…jdkbin». В переменных средах сначала нужно поставить jdkbin, а потом уже javapath. В конечном результате путь должен быть примерно такой:
PATH=C:Program Filesjdkbin;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)QuickTimeQTSystem
Во втором случае всё еще проще. Если вы компилируете используя более позднюю версию Java Runtime 54, то соответственно и запуск нужно производить в аналогичной версии. Сама строчка «hello has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0» как раз говорит нам об этом. Проверить это можно вбив фразу в тот же Гугл Переводчик.
Compiled by a more recent version of the Java Runtime
Выводы
Как видим с ошибкой» A JNI error has occurred, please check your installation and try again» при компиляции Java программы в основном сталкиваются новички. Решить проблему можно проверив версии Java при компиляции и запуске файлов программы. А так же просмотреть корректность путей к «jdkbin» и «javapath». Напишите в комментариях помогло ли вам решение и удалось ли запустить вашу первую программу.
Источник
“Error: A JNI error has occurred, please check your installation …” – How to fix it!
You have encountered this JNI Error error message? Don’t panic! The problem can usually be solved quite quickly – and here you can find out how.
Have you encountered this error message or popup?
Error: A JNI error has occurred, please check your installation and try again
The problem comes from the fact that your JRE (Java Runtime Enviroment), that is your installed Java version and your JDK (Java Development Kit) do not work together correctly. Advertisements
Now there are several possible solutions for you. Just choose the scenario that applies to you:
JNI Error in Windows CMD
The problem can occur if you want to call a .jar file via command line (Windows CMD), e.g. via the command java -jar File.jar or if you have compiled your program with Eclipse before.
To fix the error, you need to adjust the environment variables for Java.
- To do this, type “environment variable” in your Windows search and open the “Edit System Environment Variables” item. In this window you click on “Environment variables…”.
System properties – screenshot
- The “Environment variables” window opens. There you select the variable “Path” in the lower window “System variables” and click on “Edit…”.
Environment variables – screenshot
- There you look for the line where the installation path of your Java JDK is stored. In my case this is under C:Program FilesJavajdk-13.0.1bin.
If you don’t have a Java JDK installed yet, you can download and install the .exe installation file (“x64 Installer”) here. Advertisements
- If you do not have this entry, you can add it by clicking the “New” button.
Edit environment variables – screenshot
- Select the line with the Java JDK and click on “Move up” until the entry is at the top. Done!
- Now you have to close and reopen the Windows-CMD once and the error should be fixed.
JNI Error when starting a Minecraft Server
If you try to start your Minecraft server via the official server.jar (error occurs since version 1.17), you may get this error message:
- Download the latest Java JDK version as .exe file (“x64 Installer”) and install by clicking on the .jar file
- Now the server should start again
JNI Error in Minecraft TLauncher
This error message can also appear when launching the Minecraft TLauncher.
- Download the latest Java JDK version as .zip archive (“x64 Compressed Archive”) (see screenshot)
Advertisements Java JDK Download Page
- Right-click on the downloaded file and click “Extract here”.
- Copy the unzipped folder to the directory C:Program FilesJava
- Launch your Minecraft TLauncher and click on the gear in the bottom right corner
- Click at “Java path” on “Browse…” and choose C:Program FilesJavajdkXbinjavaw.exe (replace the X by the name of your JDK folder).
- Save everything – now the game should start again
Advertisements
Java JNI error message still appears?
- Restart your computer
- Uninstall old Java versions under Control Panel > Programs > Programs and Features and install the latest Java JRE and Java SDK.
I hope that you were able to fix the JNI error with the help of this post. If this is still not the case, feel free to write me a comment.
Источник
Как исправить ошибку «Произошла ошибка JNI» в Minecraft
С таким количеством движущихся частей в Minecraft вы неизбежно будете время от времени сталкиваться с проблемой. Иногда бывает очень сложно понять, что вызывает проблему и как ее можно исправить. Если вы сталкиваетесь с сообщением «Произошла ошибка JNI», это довольно просто преодолеть. Вот как позаботиться об этой ошибке.
Как исправить ошибку JNI Error has Occurred в Minecraft
Если вы получаете сообщение об ошибке «Произошла ошибка JNI», это означает, что вам нужно обновить Java. С добавлением обновления «Пещеры и скалы» для правильной работы Minecraft Java Edition теперь требуется последняя версия Java.
Чтобы загрузить последнюю версию Java, перейдите на страницу загрузчика Java и выберите платформу ПК. ты используешь. Установите соответствующий файл установщика и запустите его. Это очень простой процесс, поэтому не беспокойтесь о каких-либо неожиданных шагах. После установки последней версии попробуйте снова запустить Minecraft Java Edition, и все должно работать гладко.
Как упоминалось выше, это не было проблемой, которая раньше была применима к Minecraft Java Edition, потому что она использовалась для поддержки более старых версий Java. Будь то изменение, внесенное для того, чтобы все могли получить наилучшие возможности, или какая-то новая функция в игре больше не может работать в этих предыдущих версиях, это может быть раздражающим, но необходимым шагом для загрузки вашего обновления Java.
Источник
Произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse x86 Windows 8.1
Приведенный выше код отлично работает на ноутбуке моего друга и вызывает эту ошибку на моем ноутбуке. Я запустил код на Eclipse Juno с использованием Java 7. Я также протестировал и запустил множество java-программ на своем ноутбуке, и все они работают хорошо. Это единственная программа, которая выдает такую ошибку. Это мой последний годовой проект, и он мне нужен для работы на моем ноутбуке, буду благодарен всем, кто поможет
У меня была эта проблема некоторое время, но теперь я понял это.
Оказывается, Java JDK 12 имеет как JRE, так и JDK внутри папки bin Java 12 JDK. (Я всегда считал, что JRE и JDK — это разные приложения, но оказалось, что все изменилось)
Моя проблема заключалась в том, что на моем компьютере была установлена Java JDK 12.
В то же время на моем компьютере была установлена Java 8 (JRE).
Итак, мой компьютер запутался.
С моей настройкой среды командной строки для запуска команд Java и Javac:
Я набрал следующие команды:
// это дало мне Java 8
После этого я набрал:
// это дало мне Java 12
Другими словами, моя программа компилируется с Java 12, а я пытаюсь запустить с Java 8.
Чтобы решить эту проблему, я удалил Java 8 JRE со своего компьютера.
Вернулся в командную строку, чтобы проверить, возвращают ли «java -version» и «javac -version» один и тот же номер версии, и да, он возвращает Java 12.
Попытался снова перекомпилировать мою программу и запустить ее. Это сработало!!
Это сработало! Эврика !!
Краткий ответ: щелкните правой кнопкой мыши класс, содержащий основной метод. Щелкните «Запуск от имени». Щелкните «Приложение Java». Сочетание клавиш: Shift + Alt + XJ (удерживая Shift и Alt, нажмите X; затем отпустите Shift и Alt и нажмите J).
Длинный ответ: честно говоря, я не уверен на 100%, почему возникает эта проблема. Это могло быть из-за использования другого jdk. Я столкнулся с той же ошибкой. Решение оказалось проще, чем я предполагал. Я привык запускать свой код с помощью Ctrl + F11. Но когда я запустил его как java-приложение (как я описал в «кратком ответе»), проблема была решена. Не уверен, решает ли это и чужие проблемы, но попробовать стоит. 🙂
Запуск jar-файла из командной строки:
Я получил информацию, которая прояснила проблему:
main/Main has been compiled by a more recent version of the Java Runtime
В этом случае jar был скомпилирован с версией более новой, чем поддерживает jre.
Ошибка: произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse.
Решение: проверьте имя вашего пакета, так как оно может конфликтовать с именем пакета в java. Просто измените имя пакета, чтобы решить вашу проблему. 🙂
У меня были аналогичные проблемы при использовании java в начале имени пакета, например java.jem.pc
Проверьте вывод вашей консоли, я получил:
В моем случае проблема была вызвана версией JDK . Чтобы решить эту проблему, я предлагаю зайти в ваш файл pom и проверить 1.7 .
После этого проверьте версию java в вашем cmd (windows) или терминале (OSX или LINUX), набрав: java -version .
Сравните версию, показанную в командной строке терминала с той, что у вас в файле pom. Убедитесь, что они одинаковые. Затем снова запустите свой проект.
Привет, я столкнулся с аналогичной проблемой с проектом в IntelliJ с зависимостями Maven.
Я решил, что изменил область зависимостей с предоставленной на компиляцию.
IntelliJ :
File > project structure > Modules > Dependencies > scope (provide to compile)
Вы можете сначала проверить консоль, чтобы увидеть фактическое сообщение об ошибке, а затем продолжить поиск ответов для этой ошибки.
Моя консоль показывает ошибку NoClassDefFound для класса jcommander. Ваша ошибка, вероятно, будет отличаться от моей. Причина моей ошибки в том, что класса jcommander нет в моем репозитории M2, поэтому мне просто нужно добавить эту зависимость в свой pom.xml. Вы можете проверить, все ли зависимости классов объявлены и добавлены в текущую конфигурацию и сборку проекта.
Я решил это, изменив свой «Уровень соответствия компилятора». В Eclipse:
Окно -> Настройки -> Java -> Компилятор
Я тоже столкнулся с той же проблемой. Глядя на консоль, которая говорит
решение является:
Check your package name of your project.
Надеюсь, ваша проблема будет решена. Если нет, распечатайте трассировку консоли, чтобы отследить первопричину.
Это может произойти, если версия JDK отличается.
попробуйте это с помощью maven:
в разделе build-> plugins:
Я обнаружил, что добавление этих строк кода в файл pom.xml проекта maven решает для меня аналогичные проблемы: —
Проверьте свою консоль. В нем говорится о проблеме java.lang.SecurityException. Измените свое «имя пакета». Я изменил имя своего пакета с «java.assessment» на «assesment», и у меня это сработало. Если кто-то знает первопричину, дайте мне знать.
ВОЗМОЖНОЕ РЕШЕНИЕ Если ни одно из этих решений не помогло вам, попробуйте это . Наконец-то я получил работу, удалив две папки «.metadata» и «.recommenders» в папке рабочей области. Вы можете найти путь к папке своего рабочего пространства, щелкнув «Файл»> «Переключить рабочее пространство»> «Другое» на панели инструментов приложения Eclipse.
Теперь я полный новичок, плачущий, пока не получил степень SE в Государственном университете Сан-Хосе. Так что я просто делюсь тем, что сработало для меня, не зная, почему именно. Не знаю, какой вред или головная боль, да еще нужно ли было удалить обе вышеупомянутые папки. Но, в конце концов, у меня это сработало, и, похоже, приложение все равно воссоздает свежие версии этих папок.
У меня возникла та же проблема, но в моем случае это было связано с настройками конфигурации в IntelliJ IDEA.
Несмотря на то, что SDK проекта (Файл -> Структура проекта) был установлен на Java 11, JRE в Конфигурациях запуска / отладки (Выполнить -> Изменить конфигурации) был установлен на Java 8. После изменения на Java 11 он работал как очарование.
Я столкнулся с аналогичной проблемой и нашел решение в названии пакета. Я сохранил имя пакета как java.basics. В консоли я получил подсказку, так как в ней было четко указано имя Запрещенного пакета. Итак, я изменил имя пакета, и это сработало.
отредактируйте «.classpath» и включите ниже тег
это может решить вашу проблему.
Надеюсь, это поможет кому-то другому. Я страдал от этого, когда работал над проектом несколько лет назад, а затем несколько дней назад работа в новом проекте начала терпеть неудачу. Я нашел этот пост и пытался вспомнить, что я изменил в своем проекте, а затем я вспомнил, что я изменил свой maven pom и удалил запись для maven-jar-plugin. Когда вы создаете jar-файл, предназначенный для выполнения, вам необходимо включить его, чтобы определенные записи были записаны в манифест. Я открыл старый проект, скопировал эту запись (с некоторыми изменениями в названии проекта), и это сработало.
Я думаю, это произошло потому, что имя вашего класса совпадает с именем другого класса в JDK. Помогите eclipse определить, какой из них вы пытаетесь запустить, выбрав пакет, в котором находится ваш класс. Переходим к запуску конфигурации, выбираем проект и основной класс .
Когда вы нажимаете кнопку поиска, чтобы выбрать основной класс, вы найдете варианты с тем же именем, но с другим пакетом , выберите свой класс.
В моей консоли не было информации, поэтому я отправил мне поиск дополнительных решений и нашел их — уникальные для решений, представленных здесь. Я столкнулся с этим, когда Eclipse Oxygen пытался запустить старую сборку Ant в проекте.
Причина 1 Я настроил Eclipse для использования внешней установки Ant, которая была версии 1.10.2, в которой, по-видимому, были классы, скомпилированные с JDK 9. В Eclipse я получил ошибку JNI, описанную выше (запуск сборки Ant в командной строке дал мне известна ошибка «неподдерживаемая версия major.minor» — Java, которую я использовал в системе, была JDK 8).
Решением был откат к встроенной версии Ant для Eclipse 1.10.1. Я проверил, что это правильное решение, загрузив Ant 1.10.1 отдельно и перенастроив Eclipse для внешнего использования новой версии 1.10.1, и она по-прежнему работала.
Причина 2 Это также может произойти, если у вас неправильно настроены параметры среды выполнения Ant в настройках Eclipse. В зависимости от версии Ant, которую вы используете, вам нужно будет добавить tools.jar из соответствующего JDK в путь к классам, используемый для Ant Runtime (домашние записи). В частности, без правильной настройки Eclipse при запуске целевой Ant будет жаловаться на то, что версия JRE меньше конкретной требуемой версии.
По сути, «правильная конфигурация» означает выравнивание каждого из элементов конфигурации в Eclipse для запуска Ant таким образом, чтобы все они работали вместе. Это включает запись Ant Runtime Home (должна указывать на версию Ant, совместимую с выбранным вами JDK — вы не можете запускать Ant с JDK 8, когда он был скомпилирован с JDK 9); указание того, tools.jar что принадлежит JDK, с которым вы хотите запустить Ant, в настройках Ant Runtime; и, наконец, установка среды JRE вашего сценария сборки на JDK, с которым вы хотите запустить Ant в конфигурации внешних инструментов. Необходимо согласовать все 3 этих параметра, чтобы избежать ошибки, описанной выше. Вам также необходимо учитывать атрибуты, используемые в вашем javac , чтобы убедиться, что используемый вами JDK может выполняться в соответствии с вашими указаниями (например, JDK 7 не может компилировать код с использованием исходной и целевой версии 8).
Более того, если вы действительно просто пытаетесь запустить сценарий сборки Ant для компиляции кода в более старый JDK (например, менее 8 для Oxygen), эта статья помогла получить доступ к запуску Ant для более старого JDK . Существуют замены плагина Ant для нескольких версий Eclipse, инструкции краткие, и важно получить правильную версию плагина для вашего конкретного Eclipse.
Или, проще говоря, вы можете использовать это очень хорошее решение для своей устаревшей компиляции, которая не требует замены вашего плагина Eclipse, а вместо этого меняет javac тег в вашем скрипте сборки (при использовании последней версии JDK).
Источник