Перейти к содержанию

Задание1 для желающих (CE 6.2 Lua)


MasterGH

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

Задание. Поиск инструкций работающих только с одним адресом определённой структуры

Дано

Некоторый начальный адрес структуры

Некоторый размер структуры

Цель

Во время игры найти часто обращаемые инструкции на которых проскакивает постоянно одинаковый адрес входящий в диапазон адресов от начала структуры до её конца. Возможность начать и остановить сбор данных.

Применение

Если найдётся хотя бы одна инструкция работающая только с определённой структурой, то её можно использовать для поиска этой структуры и изменения данных в ней. Это может избавить от поиска указателей.

Описания решения

Можно начать с формы на которой два поля ввода Начального адреса структуры и её размера. Кнопка включающая и выключающая сканирование.

И наконец Мемо для вывода лога результата.

Этап 1. Собираем в список1 часто обращаемые инструкции.

При старте используя таймер можно последовательно устанавливать бряки типа байт на обращение к адресу структуры. За раз это можно сделать 4 раза используя аппаратный бряки. Если прошла секунда, а обращения не было, то ставим бряк на следующий адрес пока не закончится адреса структуры. Если бряк сработал более раза меньше чем за 1/3 секунды, то адрес структуры запоминаем в список.

После того как добрались до конечного адреса, выводим в Мемо лог списка и начинаем этап 2

Этап 2. Собираем в список2 инструкции, на которых часто проскакивает только один адрес из структуры.

Делаем цикл. Берём из списка этапа1 адрес структуры. Ставим на него бряк. Узнаем инструкции за секунду и затем на каждой инструкции ставим бряк на выполнение и сравниваем адреса с адресом из списка этапа1. Если в течении уже 1/3 секунды постоянно проскакивал этот адрес,то значит его, дизассемблерную инструкцию и кол-во итераций выводим в мемо. Затем переходим по следующему адресу из списка1 и так пока все не закончится.

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

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

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

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