Перейти к содержанию

Запись в память


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

Привет парни, хотел написать на С# под игру DawnOfMan чит на рост популяции, но столкнулся с проблемой, надеюсь кто-то поможет.

 

нашел указатель на значение =1C51594B1E0

 

Спойлер

 

Pgz2k9H.png

 

 

 

потом в программе когда запонляю ф-цию ловлю ошибку System.OverflowException: "Переполнение в результате выполнения арифметической операции." на это строчке :    WriteProcessMemory(handle, (IntPtr)popaddress, PopulationBytes, PopulationSize, out dummy);

 

 

     

    Вот код:
 

Спойлер

 

   //WriteProcessMemory
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [MarshalAs(UnmanagedType.AsAny)] object lpBuffer, int dwSize, out IntPtr lpNumberOfBytesWritten);

        private void WriteBytes()
        {
            var popaddress = 0x1C51594B1E0;
            byte[] PopulationBytes = { 0x40, 0x00, 0x00, 0x00 }; //64 population
            var PopulationSize = 4;
            IntPtr dummy = new IntPtr();

            IntPtr handle = OpenProcess(ProcessAccessFlags.All, false, GetProcess("DawnOfMan"));

            WriteProcessMemory(handle, (IntPtr)popaddress, PopulationBytes, PopulationSize, out dummy);
            CloseHandle(handle);
        }

 

 

 

по этому гайду делал

 

Что я сделал не так?

Изменено пользователем GomTech
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.