Я использую Cheat Engine для получения адресов для редактирования чего-либо в приложении. Но кажется, что я делаю это неправильно при установке значений в Visual Studio с помощью Read/WriteProcessMemory и Visual Basic.Read/WriteProcessMemory с использованием значений CheatEngine с указателем VB
Вот значение, которые я получил в Чите Engine. Теперь, как я могу перевести эту информацию и использовать ReadProcessMemory, чтобы получить значение?
Вот мой код, который не работает и дает другое значение:
Dim hp = OpenProcess(2035711, 0, ComboBox1.SelectedItem)
Dim Pointer = 0
ReadProcessMemory(hp, 22724000, Pointer, 4, 0)
Dim Address As Integer = Pointer + Convert.ToInt32("784B2", 16)
Dim value As Integer = 0
ReadProcessMemory(hp, Address, value, 4, Nothing)
MsgBox(value)
Во-первых, вы можете выразить свой номер в шестнадцатеричном виде, поэтому вам не нужно будет преобразовывать строку. Таким образом, вы можете использовать 'Address = Pointer + & H784B2'. Что касается проблемы, кажется, что ваш адрес ошибочен. Похоже, что это должно быть: 'Dim Address As Integer = & H21EF80 + & H784B2'. То есть базовый адрес (& H21EF80) плюс смещение (& H784B2). Вы уверены, что базовый адрес правильный? –
@ChrisDunaway Я не уверен, что это правильно, но я буду исследовать и попытаться узнать, как это сделать ... Но спасибо за информацию. По крайней мере, я кое-что знаю о СЕ. : D –
@ChrisDunaway Я не уверен, правильно ли адрес (с добавленным указателем), потому что он не дает правильных значений и всего 0. Значение, которое я ожидаю, равно 1. Как получить статический указатель ? Я только выяснил, что указатель менялся, и ничто (в списке указателей в CE) не дает точных значений при перезапуске игры. Поэтому в основном изображение, связанное с вопросом, не является статичным. –