I have a question, does Sanderling support the 64-bit EVE client?

Does the latest Sanderling support 64-bit EVE clients? I want to test my code on the EVE test Server, but I found that I can’t use Sanderling.

Has anyone encountered such a problem?

I did not see such a problem, but I also did not yet see an example of an 64-bit EVE client.
If we have an example of such a client, I can take a look at it.
You can follow this guide to record an example of the game client:

I have used the WindowsProcessMeasurement tool and I have measured it.

do you have a mailbox? I sent it to you in the form of an email attachment?

Using the results of the tool measurement, the download link is as follows:
https://1drv.ms/u/s!AiGAk-I9iM9wgwEjWbSlwV_DInfY

1 Like

Thank you for the sample.

Behind this link, I found sample e94e064c90a7a2af1be3ac92e3d7a342455662474afb4ce7c1225adee3957e69.
I have briefly looked into this file. From what I saw so far, it looks ok, I can continue with this.

How do you analyze the record an example of the game client?
Is the current Sanderling available directly, or do you need to wait for your new Sanderling?

The next step in analysis is to load the process sample in this function:

This function will search the memory contents of the process sample, to find python objects and the structure of the UI tree.

It is directly available at GitHub - Arcitectus/Sanderling: APIs and libraries to read information directly from the EVE Online game client.

EVE currently has 64 clients that have started beta testing. I regained the memory of the 64-bit client and found something different from the previous one, but I don’t know how to modify it. The 64-bit memory measurement is linked as follows:

1 Like

EVE currently has 64 clients that have started beta testing. I regained the memory of the 64-bit client and found something different from the previous one, but I don’t know how to modify it. The 64-bit memory measurement is linked as follows:

I followed this link and found sample ae324d8a3ea67307e8d2d50beee0cca02b7b3113710f31f69a32b3930fc7ee73

To summarize the current status, I see two samples:

People can use these to test when we have some adapted memory reading code.

When running 64-bit eve client, I can use the tool impoved by you to measure the memory sample, but it seems can not be parsed. It means I can not see the data hierarchy in the Sanderling. What should I do now?

When running 64-bit eve client, I can use the tool impoved by you to measure the memory sample, but it seems can not be parsed. It means I can not see the data hierarchy in the Sanderling. What should I do now?

I don’t know how to change it.

@taitan520 you receive the same message when you try to explore the samples?

Error executing command 'read-memory-measurement-from-process-measurement':
System.ArgumentNullException: La valeur ne peut pas être null.
Nom du paramètre : source
   à System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)

After coordinating with Kaboonus, if you are still looking for other people who encountered such a problem, you could also ask around on the EVE Online discord channel at https://discord.gg/h3JpnYu


In case people become interested and stumble on this topic:
I found some interesting stuff for people who are interested in adapting the memory reading code to work with the varian of the EVE Online discovered by @taitan520:

If the only difference is a switch from 32 bit to 64 bit memory pointers, the code changes should be relatively simple. We have a reference code for the EVE Online memory reading, which is optimized for best readability (by humans) and contains documentation of the diverse subfunctions.
The code is located at http://domääne.de/sanderling/Optimat.EveOnline.Tut.Memread.zip
I found it via the thread at Advanced Do It Yourself Memory Reading In EVE Online

2 Likes

Hello everyone,
I’m using sanderling for couple of years for my own implementation of intel tool. Amazing work @Viir thank you a lot.
Anyway I’m as good programmer as google can teach me, so I’m struggling to update Sanderling to be able to read 64b client (sure it’s working on 32b).
I understood that Viir already adopted memory reading for 64b client, but it’s in form of some kind of .dll which I’m not able understand how to use it in Sanderling.

I’m using 2018-07-30 (I know it’s older, but it’s working for my purposes just fine).
Is there some kind of way how to add to this version reading for 64b client, or rewriting 32b reading into 64b for kind of self-learned programmer? :slight_smile:

I would appreciate any help.
Thank you!

Yeah, which route to take depends on people’s prior experience. Using the DLL is the way for people who already have significant experience with a programming language that easily integrates .NET assemblies.
But most people using Sanderling don’t have this kind of prior experience. Also, dealing with the DLL directly is unnecessarily complicated for most applications. For people who want to develop intel tools or bots, there is an easier way to use memory reading.

Now that you post this question, I notice that I did not make a separate announcement of this particular development yet, so here is a summary of what happened next:
After implementing the 64-bit memory reading and said DLL, I looked for a way to package this in a way that is both easier to use for beginners and also a good starting point for typical applications.
As a result of this exploration, we now have two complete examples of how to use the new memory reading for 64-bit clients, without worrying about such implementation details like the DLL. These examples are two bots:

Since these have the most usage and test coverage, these are the best starting points for people wanting to develop an intel tool or bot that works with the 64-bit client.
A quick summary of what these examples get you:

  • No need to think about a DLL, just write your program.
  • No need to use a programming language as complex as C#. No runtime exceptions like in C#. Instead, static analysis checks your program to point out problems before you start your program.
  • Parsing of the memory reading, to transform it in a form that is easier to use. The parsing also includes parsing of strings into numbers with uniform units (E.g., distance texts in the overview window).
  • In the mining bot: A framework that makes it easy to build advanced EVE Online bots, based on the learnings from bot development projects like the mission running bot and the anomaly ratting bot.

As always, I am glad to answer questions in case you run into problems.

(For best visibility, post in a topic that has a title matching your question. I nearly missed your post here since it was at the end of such an old topic.)

Thank you for your promt answer.
I had a look into your new developed framework, and I’m afraid I’m way more familiar with older sanderling than this new language … I’m quite lost in it :frowning:

So simply, that dll is something which can be used in old sanderling? if so, I’ll try to learn more how to work in c# … if not, is there a way? or I’ll need to use that new framework?

No, you don’t need to use it. I don’t see how to support C#.

I have to say I’ve tried …

but honestly? there is just exe which does not do anything, so … very stupid question how are bots run on your new reading ?? like where’s interface for writing a bot? or there isn’t any? it’s just cmndline only?

What catched my attention is this:

If I understand this statement of yours, adapting existing 32bit memory reading to 64b reading for former sanderling would not be that hard.
I’ll be really thankfull if you (or somebody else) point me what roughly needs to be changed, and I’ll try to do my best to learn rest :wink: