По C# и CE

Статус
В этой теме нельзя размещать новые ответы.

JOPANUS

Новичок
Автор темы
17
1
Решил сделать maphack на C# для wacraft'a 3 по этому примеру
Код:
 _MemoryWrite($GameDLL + 0x3A14F0, $WarcraftHandle, 0x87, "BYTE")
        _MemoryWrite($GameDLL + 0x3A14F1, $WarcraftHandle, 0xDB, "BYTE")
        _MemoryWrite($GameDLL + 0x3A159B, $WarcraftHandle, 0x87, "BYTE")
        _MemoryWrite($GameDLL + 0x3A159C, $WarcraftHandle, 0xDB, "BYTE")
Вот такое я написал на С#
Код:
mem.WriteByte((IntPtr)GameDll + 0x3A14F0, 0x87);
                mem.WriteByte((IntPtr)GameDll + 0x3A14F1, 0xDB);
                mem.WriteByte((IntPtr)GameDll + 0x3A159B, 0x87);
                mem.WriteByte((IntPtr)GameDll + 0x3A159C, 0xDB);
И получается так что когда я активирую мапхак написанный на AutoIt(первый код) всё нормально работает, когда активирую свой на C# игру крашит с такой ошибкой
upload_2017-9-25_7-34-44.png

Тоже самое сделал на CE и в итоге крашит. Почему так происходит и что я делаю не так?
 

JOPANUS

Новичок
Автор темы
17
1
Вот я нашел функцию для С#:VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect); Исходя из адреса который защищён
zoSbdk0.png
мне в NewProtect надо записать Execute/Read/Write, а в OldProtect Execute/Read?
 

SR_team

like pancake
BH Team
4,809
6,488
Вот я нашел функцию для С#:VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect); Исходя из адреса который защищён
zoSbdk0.png
мне в NewProtect надо записать Execute/Read/Write, а в OldProtect Execute/Read?
old - пустая переменная, которая передается как указатель. Туда будет записано старое значение перед тем как установится новое
 
Статус
В этой теме нельзя размещать новые ответы.