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: Advanced Do It Yourself Memory Reading In EVE Online
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:
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: Support memory reading development for EVE Online · Viir/bots@92410ac · GitHub