-
Notifications
You must be signed in to change notification settings - Fork 3
Home
- Integrate Mem-Eater-Bug into your project.
- Ensure the JNA library is correctly loaded to the APIs build path.
- Create an instance of the API by using new MemEaterBug(...);
- There are several ways to access a process, like the exeFileName or a windowName.
- Take a look into SoliScorer.java for more hints on how to use Mem-Eater-Bug.
- Create an instance of a Mem-Eater-Bug that is linked to the process you are trying to interact with. There are several methods to find a process.
- The process id
- The name of the process exe-File
- A window name of the process
- The process window class name
- Hook up to the process by using hookProcess()
- Interact with the process
- Unhook from the process by using unhookProcess()
For reading and writing process memory you need to know an address and its offsets to the base address.
- Those are found using a Memory Reader like CheatEngine
The procedure then is as follows.
- Get the MemManipulator using memEaterBug.getMemManipulator()
- Find the base address using memManipulator.getBaseAddress()
- Add your base offset and find the your dynamic address using memManipulator.findDynAddress(offsets, startingAddress)
- Then simply read or write using the provided methods, for example memManipulator.readInt(dynamicAddress) or memManipulator.writeInt(dynamicAddress, value)
Mem-Eater-Bug only works on Windows operating systems as it uses the Windows API. It should easily handle 32-bit and 64-bit architectures, however there may be some issues when accessing 32-bit processes on 64-bit architectures. For proper execution one should use a 32-bit Java Runtime Environment in this case. It can be installed in parallel to an 64-bit JRE.
If you are unable to built the project, make sure you have loaded the JNA library correct.
- The library can be found in our folder lib. Make sure that both jar-files are in the build path.
If you get IllegalArgumentException at construction of Mem-Eater-Bug, make sure that you are trying to access the process with the correct names, for example the correct exeFileName. You may check this using the TaskManager, a WindowSpy or similar tools.
When encountering Win32Exceptions the Windows API has thrown an Exception. Most of the time they are related to wrong file type conversions and wrong byte computations. Make sure that you have the correct addresses, offsets and are running on a JRE with the same architecture than the process you are interacting with.