Сейчас на форуме: (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Поиск указателей через Cheat Engine
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 ноября 2013 03:20 · Поправил: 339970
· Личное сообщение · #1

Попытался пройти по дереву указателей и найти статический указатель к одной игре через Cheat Engine 6.2.

На третьем уровне указателей споткнулся о такую штуку, что указатель содержит адрес другого адреса, но доступ к адресу указателя происходит только из того другого адреса, который он содержит: все равно что А указывает на Б, но к А обращается только Б. Выглядит как инструкция "mov esi, [esi]"



Скрин приложен, там обведена кружками и стрелочками с нумерацией логика моих действий:
1. Ввожу в поиск значение указателя третьего уровня, из которого было обращение к указателю второго уровня
2. По значению нахожу адрес
3. Добавляю этот адрес для ослеживания
4. Запускаю отладчик и меняю значение, чтобы узнать, кто и откуда обращается к отслеживаемому адресу указателя третьего уровня
5. Получаю обращение из инструкции "mov esi, [esi]", но при этом регистр esi содержит то же самое значение указателя второго уровня, через которое я вышел на указатель третьего уровня

Пробовал все перезапускать, комбинация отступов сохраняется (+10, +8, +0), адреса естественно меняются, и аналогично на указателе третьего уровня такая же проблема.

В ассемблере я полный нубас, хоть и изучаю потихоньку.




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 20 ноября 2013 05:31
· Личное сообщение · #2

> указатель содержит адрес другого адреса, но доступ к адресу указателя происходит только из того другого адреса, который он содержит

Жесть

Очень сложно понять, не понимая что вы понимаете под понятием указателя и адреса

Похоже на связанный список наверно.

| Сообщение посчитали полезным: 339970

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 ноября 2013 11:37 · Поправил: 339970
· Личное сообщение · #3

Спасибо, опыта нет, но продолжаю разбираться. Дорогу осилит идущий.

Моя задача - используя возможности Cheat Engine найти статические (то есть, не меняющиеся после перезапуска игры), указатели на различные переменные (типа там хп, мана, патроны). Исследуеммая программма написана на C++, с использованием указателей, поэтому я так их пониманию, как переменные, содержащие адреса в памяти.

Алгоритм действий такой, что я отслеживаю, с каких адресов игра пишет в отслеживаемый адрес (поначалу это найденная переменная, а потом другие указатели), через опцию в CE "Find out what acsesses this address", и затем начинаю последовательно отслеживать каждый найденный адрес, развлетвляясь? если таких найденных адресов несколько.




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 20 ноября 2013 18:11 · Поправил: DenCoder
· Личное сообщение · #4

339970 пишет:
указатели на различные переменные (типа там хп, мана, патроны).

Как правило, отдельно на каждую характеристику/свойство указателей не делают. Ввиду более чем 30-летней практики --> ООП <--, скорее вы найдёте указатели на объекты структур/классов. Как правило, постоянные или редко меняющиеся характеристики типа имени персонажа, цвета, расы, касты... находятся в объекте одной структуры (на него должен быть указатель). Динамические объекты типа боеприпасов, артефактов..., которые могут находиться, кончаться, теряться, ломаться, улучшаться, обмениваться - в другом объекте. В последнем случае как минимум по указателю на каждый имеющийся в наличии объект внутри другого объекта. Совокупность постоянных и динамических объектов могут быть в одном объекте, описывающем персонажа в каждый момент времени. В зависимости от реализации и применённой техники всё может быть куда сложнее. Даже пустой слот может иметь постоянный указатель в объекте персонажа. Я бы начал со списка объектов, у которых есть названия

И да, объекты могут объединяться в списки. В этом случае обычно в начале (но необязательно так!) один или два указателя на соседние объекты такой же структуры, может быть указатель на родительский, на дочерние, на зависимые, от кого зависит и т.п. Применяются также списки с хедером, в котором если список пуст, оба указателя указывают на тот же адрес, содержащий их.

-----
IZ.RU


| Сообщение посчитали полезным: 339970

Ранг: 27.8 (посетитель), 51thx
Активность: 0.030
Статус: Участник

Создано: 20 ноября 2013 20:30
· Личное сообщение · #5

Cheat Engine программа
Разбоирайтесь с сазработчиком.
ИМХа

| Сообщение посчитали полезным: 339970
 eXeL@B —› Вопросы новичков —› Поиск указателей через Cheat Engine
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати