如何从一个指针,看上去像&QUOT读取;进程名和QUOT; +地址?指针、进程、地址、QUOT

2023-09-04 01:20:24 作者:寄情书

正如标题所说我试图从一个地址我找到了作弊引擎的指针扫描读取。但唯一的问题是我曾经有过一起工作的唯一指针只是指针地址+偏移量。我使用C#.net 4.0,从Visual Studio 2010中,我认为我记得看到之前一些事情,但我没想到这种事,因为它并没有在当时适用于我。

As the title says I'm trying to read from an address I found in Cheat Engine's pointer scan. But the only problem is the only pointers I've ever had to work with are just Pointer Address + Offset. I am using C# .Net 4.0 from Visual Studio 2010. I think I remember seeing something about this before but I didn't think to much about it as it didn't apply to me at the time.

一些关于获得过程或模块ID,并将其添加到指针地址,然后将偏移,并从那里读?但我不记得命令,获得一个进程ID或模块ID:/

Something about getting the Process or Module ID and adding it to the pointer address then adding the offset and reading from there? But I can't remember the commands to get a processes ID or Module ID :/

另外这是一个5级指针,我努力着,我只用1级或2球,但我猜测它的身边一样。刚读指针的地址,直到我得到一个基地址写。

Also this is a level 5 pointer I'm working with, I've only used level 1 or 2 pointers but I'm guessing it's around the same. Just read the address from the pointers until I get a base address to write to.

如果它可以帮助我的指针是这样的: ProcessName.exe+ 003E6D98

If it helps my pointer looks like this: "ProcessName.exe"+003E6D98

这可能帮助,如果你说,为什么在世界上,你需要从.NET三分球发挥 - 约翰·桑德斯

"It might help if you said why in the world you need to play with pointers from .NET" - John Saunders

我想提出一个教练对我的游戏之一。我做了他们之前只是没有这种类型的指针,我忘了究竟是如何处理这种类型的地址。我想我得模块的ID,但我忘了如何。实际上,我pretty的好内存和指针我只是通常有没有进程名的平均地址旁边。

I am making a trainer for one of my games. I've made them before just not with this type of pointer and I forgot exactly how to handle this type of address. I think I have to get the module's id but I've forgotten how. I'm actually pretty good with memory and pointers I just usually have the average address without the process name next to it.

推荐答案

OP回答的问题 - 把为CW答案

string sProcessName = "MyProcessName.exe";
Process[] MyProcesses = Process.GetProcessesByName(sProcessName);
IntPtr hProcModuleBA = MyProcesses[0].MainModule.BaseAddress;
IntPtr PointerAddr = new IntPtr(MyPointer.ToInt32() + BaseAddress.ToInt32());

这将通过您的流程sProcessName搜索,将其添加到阵列MyProcesses。我选择了第一个在列表中,从获得BaseAddress。这是40000:)

This will search through your processes for sProcessName, add it to an array 'MyProcesses'. I chose the first one in the list to get the BaseAddress from. It was 40000 :)