Я пытаюсь прочитать значение из памяти в c #, используя базовый адрес и смещения, полученные из Cheat Engine.
Проблема в том, что мне нужно использовать dll внутри exe в качестве отправной точки, потому что ни один из найденных мной указателей не начинается с базового адреса exe.
BaseAddress: "mono-2.0-bdwgc.dll" + 00491DE8
Смещение 1: 98 (шестнадцатеричное)
Смещение 2: 350 (шестнадцатеричное)
Process[] process_search = Process.GetProcessesByName("ProcessName");
if (process_search.Length != 0)
{
ProcessModuleCollection modules = process_search[0].Modules;
ProcessModule dll = null;
foreach (ProcessModule i in modules)
{
if (i.ModuleName == "mono-2.0-bdwgc.dll")
{
dll = i;
break;
}
}
Яв состоянии получить набор DLL, и я могу получить его базовый адрес, выполнив dll.baseAddress.Мне интересно две вещи:
1) Как добавить смещения к базовому адресу, чтобы получить полный адрес указателя
2) Как я на самом деле получаю доступ к значению памяти по этому адресу
Все остальные решения, которые я видел, предназначены для считывания указателей с самого процесса, а не с помощью dll внутри процесса.Я в растерянности относительно того, что делать.Любая помощь приветствуется.