MasterGH Опубликовано 6 февраля, 2013 Поделиться Опубликовано 6 февраля, 2013 Задание. Поиск инструкций работающих только с одним адресом определённой структурыДаноНекоторый начальный адрес структурыНекоторый размер структурыЦельВо время игры найти часто обращаемые инструкции на которых проскакивает постоянно одинаковый адрес входящий в диапазон адресов от начала структуры до её конца. Возможность начать и остановить сбор данных.ПрименениеЕсли найдётся хотя бы одна инструкция работающая только с определённой структурой, то её можно использовать для поиска этой структуры и изменения данных в ней. Это может избавить от поиска указателей.Описания решенияМожно начать с формы на которой два поля ввода Начального адреса структуры и её размера. Кнопка включающая и выключающая сканирование.И наконец Мемо для вывода лога результата.Этап 1. Собираем в список1 часто обращаемые инструкции.При старте используя таймер можно последовательно устанавливать бряки типа байт на обращение к адресу структуры. За раз это можно сделать 4 раза используя аппаратный бряки. Если прошла секунда, а обращения не было, то ставим бряк на следующий адрес пока не закончится адреса структуры. Если бряк сработал более раза меньше чем за 1/3 секунды, то адрес структуры запоминаем в список.После того как добрались до конечного адреса, выводим в Мемо лог списка и начинаем этап 2Этап 2. Собираем в список2 инструкции, на которых часто проскакивает только один адрес из структуры.Делаем цикл. Берём из списка этапа1 адрес структуры. Ставим на него бряк. Узнаем инструкции за секунду и затем на каждой инструкции ставим бряк на выполнение и сравниваем адреса с адресом из списка этапа1. Если в течении уже 1/3 секунды постоянно проскакивал этот адрес,то значит его, дизассемблерную инструкцию и кол-во итераций выводим в мемо. Затем переходим по следующему адресу из списка1 и так пока все не закончится. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения