Чтение строки из адреса памяти другого процесса - PullRequest
0 голосов
/ 30 апреля 2020

У меня неверная информация о p c адресации, а также я думаю, что я делаю что-то не так с моим кодом, поэтому он не может найти нужную мне информацию по адресу.

Я использовал Google и нашел способ читать строку из адреса памяти.

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
class Program
    {
        const int PROCESS_WM_READ = 0x0010;

        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

        [DllImport("kernel32.dll")]
        public static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);

        public static void Main(string[] args)
        {
            Process process = Process.GetProcessById(10828);
            IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id);

            int bytesRead = 0;
            byte[] buffer = new byte[24]; //'Hello World!' takes 12*2 bytes because of Unicode 

            // 0x0046A3B8 is the address where I found the string, replace it with what you found
            ReadProcessMemory((int)processHandle, 0x00C716EC, buffer, buffer.Length, ref bytesRead);
            Console.WriteLine(Encoding.Unicode.GetString(buffer) + " (" + bytesRead.ToString() + "bytes)");

            Console.ReadLine();
        }
    }

плохо сейчас объясню вам, что я хочу и в чем моя проблема, есть приложение с именем gta-sa.exe, его онлайн-игры, и у него есть textdraw, чтобы показать какая-то строка на экране игры, я использовал чит-движок, чтобы найти адрес этой строки, которая показывает, что информация о чит-движке - это процесс удара 000036F4-gta_sa.exe Значение адреса 00C716E C NickName

, как вы видите

ReadProcessMemory((int)processHandle, 0x00C716EC, buffer, buffer.Length, ref bytesRead);

Я использовал 0x00C716EC в качестве адреса, но он показывает странную информацию вроде ???? в утешении! как я могу получить эту строку NickName? не могли бы вы сказать мне и помочь мне понять мою ошибку?

...