c# inject
Столкнулся с такой проблемой
Делаю лаунчер и пытаюсь чтобы при запуске клиента шёл инжект .dll и смена байт по определенном адресу Вот инжект .dll как то сделал, но сменить при этом байты по определенному адресу не знаю как Может ли кто-нибудь дать пример как такое можно реализовать? |
Re: c# inject
Вроде нашел пример, но теперь такая ошибка
Код:
System.ComponentModel.Win32Exception: "32-разрядные процессы не могут получить доступ к 64-разрядному процессу." private void Start_Click(object sender, RoutedEventArgs e) { Process.Start("BlackDesert64.exe", "Kirito," + "135635"); Thread.Sleep(1500); string strDLLName = "steam_api64.dll"; int processId = GetProcessId("BlackDesert64"); if (processId >= 0) { InjectDLL(OpenProcess(2035711U, 1, processId), strDLLName); Thread.Sleep(500); Process[] processesByName = Process.GetProcessesByName("BlackDesert64"); int processHandle = OpenProcess(0x1F0FFF, false, processesByName[0].Id); ReadProcessMemory(processesByName[0].MainModule.BaseAddress.ToInt64() + 43055736L, 11, processHandle); string hex = ConvertStringToHex("127.0.0.1"); WriteProcessMemory(processesByName[0].MainModule.BaseAddress.ToInt64() + 43055736L, StringToByteArray(hex), processHandle); } } [DllImport("kernel32.dll")] public static extern bool ReadProcessMemory(int hProcess, long lpBaseAddress, byte[] buffer, int size, int lpNumberOfBytesRead); |
Re: c# inject
inject dll происходит, но вот изменить байты по адресу не дает
как исправить это? Код:
32-разрядные процессы не могут получить доступ к 64-разрядному процессу. |
Re: c# inject
Ну так видимо твоё приложение работает как 32-разрядное.
|
Re: c# inject
Цитата:
|
Re: c# inject
https://docs.microsoft.com/ru-ru/vis...rget-platforms
+ bool ReadProcessMemory(Int64 hProcess, ...) |
Re: c# inject
Цитата:
но у меня он меняет ip не на 127.0.0.1 а на 127.0.0.120 почему так выходит? |
Re: c# inject
Покажи WriteProcessMemory и ConvertStringToHex
|
Re: c# inject
|
Re: c# inject
Ещё StringToByteArray сбрось.
Что-то ты странное делаешь. var addressBytes = IPAddress.Parse("127.0.0.1") .GetAddressBytes(); |
Текущее время: 08:12. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot