Вы должны использовать метод проб и ошибок и проверять каждый адрес. Реверс-инжиниринг - это метод проб и ошибок. Вы ищете серебряную пулю, а ее нет.
Если вы уже знаете смещение, вы должны щелкнуть правой кнопкой мыши по каждому адресу и сделать «найти, какие обращения», а иногда «найти то, что пишет», и вы получите список инструкций, касающихся этих адресов и смещений, используемых для их получения. Если смещения не соответствуют вашему «известному» смещению, игнорируйте этот адрес.
Если переменная является той, к которой у вас есть доступ на запись в качестве клиента, например, ваша строка имени, вы можете использовать подход «разделяй и властвуй». Добавьте все адреса в вашу таблицу. Выберите половину из них, нажмите Enter и измените свое имя. Если ваше имя в графическом интерфейсе изменится, то ваш адрес будет выбран, поэтому вы удалите вторую половину. затем вы разделяете и снова завоевываете, эта техника устраняет 50% адресов на каждом шаге. Если ваше имя не изменилось, удалите те, которые вы выбрали, и выполните ту же технику на другой половине адресов.
Последний метод, которым я поделюсь с вами, - это использование ReClass или другого инструмента, который предоставляет вам RTTI или информацию о типе времени выполнения. Когда вы «найдете, к чему обращаетесь», вы получите адрес объекта игрока и относительное смещение. Присоедините ReClass к процессу, введите адрес объекта игрока. Указатель таблицы виртуальных методов (смещение 0x0) будет отображаться с RTTI, который сообщит вам имя класса и его родительских классов. Имейте в виду, это возможно только с двоичными файлами, скомпилированными с Visual Studio, и с RTTI, все еще встроенным.
В заключение, нет мгновенного успеха в обратном инжиниринге. Есть хитрости, но только опыт дает вам понимание, необходимое, чтобы повернуть вспять быстрее. По мере вашего продвижения станет легче.