- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试读取进程(游戏)中的float
。
在 Cheat Engine 中查找我可以找到我需要的地址,但是它位于 wow64cpu.dll + 4720
,偏移量为 34。
因此,我尝试在此过程中找到 wow64cpu.dll 的基地址,但这是我感到困惑的地方。
我不明白现在如何使用这个地址,因为我所有的尝试似乎都没有成功。
Process[] processes = Process.GetProcessesByName("Napoleon");
Process process = processes[0];
ProcessModuleCollection modules = process.Modules;
ProcessModule dllBaseAdress = null;
foreach (ProcessModule i in modules)
{
if (i.ModuleName == "wow64cpu.dll")
{
dllBaseAdress = i;
break;
}
}
IntPtr dllPtr = dllBaseAdress.BaseAddress;
int pointer = dllPtr.ToInt32() + 0x4720;
int offset = 34;
IntPtr hProc = OpenProcess(ProcessAccessFlags.All, false, process.Id);
int bytesRead;
byte[] buffer = new byte[4];
ReadProcessMemory(hProc, new IntPtr(pointer + offset), buffer, 4, out bytesRead);
float lightColourScale = BitConverter.ToSingle(buffer, 0);
我的问题是我在使用 DLL 的基地址时哪里出错了,或者可能在其他地方,我不确定如何使用它来查找我的地址?
我还在 x64 中编译了程序,否则它找不到 wow64cpu.dll。
谢谢
最佳答案
您的偏移量必须添加到位置 wow64cpu.dll + 4720
处读取的指针,因此如果您的地址正确,则 float 的位置位于 [wow64cpu.dll + 4720] + 30
。
你的代码是
// Set the addresses to read
var pointer = dllPtr.ToInt32() + 0x4720;
var offset = 34;
// Initialize the buffers
var buffer = new byte[4];
// Find the pointer
ReadProcessMemory(hProc, new IntPtr(pointer), buffer, 4, out bytesRead);
pointer = BitConverter.ToInt32(buffer, 0);
// Add the offset to the value previously found
ReadProcessMemory(hProc, new IntPtr(pointer + offset), buffer, 4, out bytesRead);
var lightColourScale = BitConverter.ToSingle(buffer, 0);
不过,手动调用所有这些函数确实很痛苦。我强烈建议您使用一个注入(inject)库,它为您包装了所有这些调用。
图书馆MemorySharp对你来说会很好(我是作者)。在您的情况下,您可以编写以下代码。
using (var memory = new MemorySharp(ApplicationFinder.FromProcessName("Napoleon").First()))
{
var myValue = memory.Read<float>(memory["wow64cpu.dll"].Read<IntPtr>(4720) + 34, false);
}
Cheat Engine 以十六进制给出它的值。在使用它们之前,您是否在 dec 中转换了它们?
还有一个问题和你的类似:Find address using pointer and offset C#
关于c# - 使用 DLL 基地址读取内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18431399/
目前我有几个配置了以下目录的catalina bases, conf logs server webapps work bin、lib 和common 目录都还在$CATALINA_HOME 中。 我
我是一名优秀的程序员,十分优秀!