Hello! I’ve been interested in memory reading of games, and decided to try my hand at EVE!
I’ve followed this guide at:
# 2019-09-15 EVE Online Memory Reading
Today I explored memory reading EVE Online. This is for advanced users who want to learn how the memory reading for EVE Online works and maybe customize it. To make this easier, I took the reference implementation and improved it.
The original tutorial was published in 2016, and the memory reading was discussed in this thread: https://forum.botengine.org/t/advanced-do-it-yourself-memory-reading-in-eve-online/68
I used the implementation from there as a basis so the Python side of things might already look familiar to you.
In contrast to the older code, today's version also supports reading from a file containing a sample of the client process. This new feature allows us to repeat the reading as often we want, without having to start an instance of the game client. In addition to that, another new feature lets you save the result of the memory reading to a JSON file for easy inspection and further processing. This JSON file contains the UI tree read from the EVE Online client. To use this feature, add the `--output` parameter when running the program.
Below is an example of a full command-line; in this case, it reads the memory contents from a [file saved earlier](https://forum.botengine.org/t/how-to-collect-samples-for-memory-reading-development/50):
dotnet run -- --source="C:\path-to-a-process-sample-file.zip" --output="C:\path\to\directory\with\write\access"
So the result of today's exploration is a .NET console app which supports both from a live client process and a saved process. All the memory reading functions are inlined in the source code so that you don't have to look up DLL files or other assemblies to see the implementation.
I added this program to the repository here: https://github.com/Viir/bots/commit/92410ac78c46957462431719f0c34781e2620da5
as well as:
This file has been truncated.
# How to Collect Samples for 64-bit Memory Reading Development
This guide explains how to save an example of a game client process to a file. Such examples are to support the development of memory reading frameworks or bots.
The tool we use in this guide works only for 64-bit processes.
The tool copies the memory contents of a chosen Windows process (such as a game client) and takes a screenshot from its main window and writes those to a file. This data is used in development to correlate screen contents with memory contents.
Here you can see a typical scenario where we use this tool: https://forum.botengine.org/t/mining-bot-i-cannot-see-the-ore-hold-capacity-gauge/3101
**Steps to collect a sample:**
+ Download and unpack the zip-archive from [https://github.com/Arcitectus/Sanderling/releases/download/v2020-04-12/2020-04-12-read-memory-64.zip](https://github.com/Arcitectus/Sanderling/releases/download/v2020-04-12/2020-04-12-read-memory-64.zip)
+ Find the game client in the Windows Task Manager.
+ Make sure the name of the game client displayed in the Windows Task Manager does not contain `(32 bit)`.
+ Read the process ID of the game client process in the `PID` column in the Task Manager.
+ Ensure the game client window is visible and not minimized.
+ Use the Windows Command Prompt to run the tool, using the following command:
read-memory-64-bit.exe save-process-sample --pid=12345
as well as other post
However after installing the eve-online-memory-reading tool and running it after I took multiple different snapshots of the memory, I keep getting this error in the windows console:
“Did not find the root of the UI tree”
Would anyone happen to know what I’m doing wrong?