Перейти к содержанию
Авторизация  
LuBu

[Cheat Engine] поиск списка

Рекомендуемые сообщения

Написал на С++ обычную программку, которая добавляет в vector 20 элементов по очередно, после нажатия кнопки.
Подключил Cheat Engine и смог найти кол-во массива на текущий момент.
После сделал как в видеоуроках от gamehacklab. Начал искать адрес, в надежде узнать кто использует это кол-во и все безрезультатно.

Помогите мне разобраться, как находить список, массив через CheatEngine. 

Все бы ничего, если бы один замечательный инструмент Dissect Data/Structures в Cheat Engine работал бы правильно. 
А то постоянно то Pointer отображается как Float, то Byte как Int....

Так что обычным анализом в этом инструменте не получится найти. 

Отладчик VCH использую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, LuBu сказал:

Помогите мне разобраться, как находить список, массив

Ты не сможешь найти то, что не знаешь как устроено, работает и хранится в памяти. Изучи указатели, контейнеры и ООП. Заодно разберёшься с хуками виртуальных методов. А потом, выкинь СЕ и начинай использовать IDA + ReClass.

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, LuBu сказал:

Помогите мне разобраться, как находить список, массив через CheatEngine. 

в c++ возьми указатель на вектор и посмотри его значение в режиме отладки или просто выведи на экран. Скопируй это значение в поле адреса CE Dissect Data/Structures, после чего изучай структуру. Попробуй потом также сделать и с другими типами/контейнерами/классами/чем угодно вообще и повторяй до тех пор, пока не поймёшь как оно всё работает.

1 час назад, JustHack сказал:

А потом, выкинь СЕ и начинай использовать IDA + ReClass.

CE+Ghidra с задачами справляются не хуже.

Изменено пользователем youneuoy
  • Понравилось 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, youneuoy сказал:

в c++ возьми указатель на вектор и посмотри его значение в режиме отладки или просто выведи на экран. Скопируй это значение в поле адреса CE Dissect Data/Structures, после чего изучай структуру. Попробуй потом также сделать и с другими типами/контейнерами/классами/чем угодно вообще и повторяй до тех пор, пока не поймёшь как оно всё работает.

CE+Ghidra с задачами справляются не хуже.

Точняк, как я сам не додумался до этого, спасибо)

Изменено пользователем LuBu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это нормально что элементы в массиве находятся в разных областях памяти?
Я думал что они будут распологаться опираясь на какой - нибудь шаг. Допустим начальный элемент в позиции 00FF, а дальше + 0A.

Просто пошерстил отладчиком, а они вообще где попало лежат. Если это так, то это очень сильно меняет процесс поиска

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, LuBu сказал:

Это нормально что элементы в массиве находятся в разных областях памяти?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вы правы, я ошибся.

Я выводил адресс объекта сразу после его создания, а нужно было вначале занести в вектор, а уже после выводить. Тогда да откладываются в памяти друг за другом.

P.S. Как закрывать тему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, LuBu сказал:

P.S. Как закрывать тему?

Вот так :)

  • Смешно 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.