C# でプロセスからメモリを読み込もうとしています。特定のアドレスから読み取る方法を見つけました:
public static byte[] ReadMemory(Process process, int address, int numOfBytes, out int bytesRead)
{
IntPtr hProc = OpenProcess(ProcessAccessFlags.All, false, process.Id);
byte[] buffer = new byte[numOfBytes];
ReadProcessMemory(hProc, new IntPtr(address), buffer, numOfBytes, out bytesRead);
return buffer;
}
private int getVal(Process proc, int address)
{
int bytesRead;
byte[] value = ReadMemory(proc, address, 4, out bytesRead);
int am = BitConverter.ToInt32(value, 0);
return am;
}
public void threadFunction()
{
Process[] processes = Process.GetProcessesByName("gta_sa");
foreach (Process process in processes)
{
int ServerPointer = getVal(process, 0xB6F5F0);//Its about this line
MessageBox.Show(ServerPointer.ToString());
}
}
しかし、私がウェブを見ていると、私はこれを見つけ続けます:
しかし、0xB6F5F0 の代わりに、実際にはアドレス samp.dll+2071C0 を読み取る必要があります (このアドレスは Web で見つけました)。
誰も私がこれを行う方法を知っていますか?
前もって感謝します