На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2
Авторизация  
writeer

c# ReadProcessMemory

Рекомендуемые сообщения

пытаюсь прочить int из  процесса но всегда буфер с байтами пустой

Спойлер

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using HackProcess;

namespace MemoryTest
{
    class Program
    {
        static Process process;

        static void Find(string name)
        {
            var plist = Process.GetProcesses();
            foreach (var Pprocess in plist)
            {
                if (Pprocess.ProcessName == name)
                {
                    process = Process.GetProcessById(Pprocess.Id);
                    return;
                }
            }
        }
        static void Main(string[] args)
        { 
            Find("test");
            HackP.Setproc(process);
            var add = 0x5591B7E388;
            while (true)
            {
                var iint = HackP.ReadInt(add);
                Console.WriteLine(iint);
                string s = Console.ReadLine();
                if(s == "exit")
                {
                    return;
                }
            }
            
        }
    }
}

 

 

та самая dll"ка

Спойлер

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace HackProcess
{
    public class HackP
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(int processAccess, bool bInheritHandle, int processId);

        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool ReadProcessMemory(IntPtr hProcess,IntPtr lpBaseAddress,[Out] byte[] lpBuffer,int dwSize,out IntPtr lpNumberOfBytesRead);

        static Process Proc;
        static byte[] buffer = new byte[] { };
        static IntPtr handel;

        public static void Setproc(Process proc)
        {
            Proc = proc;
            handel = OpenProcess();
        }

        public static IntPtr OpenProcess()
        {
            return OpenProcess(0x001F0FFF, false, Proc.Id);
        }

        public static IntPtr Read(long addres,int byteread)
        {
            IntPtr bytereads;
            ReadProcessMemory(handel, (IntPtr)addres, buffer, byteread, out bytereads);
            return bytereads;
        }

        public static int ReadInt(long addres)
        {
            Read(addres, 4);
            if (buffer.Length != 0)
            {
                return BitConverter.ToInt32(buffer, 0);
            } else { return 0; }
            
        }

    }
}

 

 

Изменено пользователем Xipho
Большие куски кода необходимо не только выделять специальным тегом, но и убирать под спойлер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты создаешь буфер нулевой длины. Выдели хотя бы 4 байта, и посмотри, что будет. Ну и в целом код бы переписать. Что будет, если ты на основе этого кода параллельно будет считывать значения из других адресов? У тебя буфер статичный, и он один. И постоянно будет перетираться, это не дело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, Xipho сказал:

Ты создаешь буфер нулевой длины. Выдели хотя бы 4 байта, и посмотри, что будет. Ну и в целом код бы переписать. Что будет, если ты на основе этого кода параллельно будет считывать значения из других адресов? У тебя буфер статичный, и он один. И постоянно будет перетираться, это не дело.

Спасибо помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр
Авторизация