Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > нахождение точки входа в дизасемблере


Автор: zebrazoo 20.3.2012, 21:39
Всем доброго времени суток!

Стоит такая задача. Есть старая прога самописная, которая имеет некий механизм сверки с файлом контрольных сумм. Для работоспособности программы соответственно нужен файл, но он утерян. Программа (написана на Дельфи) логически выполняет следующие действия:
1. Отображение формы с кнопкой
2. По нажатию на кнопку происходит чтение файла и некая сверка данных в нем.
3. При ошибке сверки выводится фиксированное сообщение в поле вывода (TText или TRichText) вида "Ошибка бла-бла-бла"
4. Особенность проги в том, что она использует самописную DLL из которой и вызывает функции осуществляющие сверку и возвращающие сообщения (или их текст, точно неизвестно)

Каким способом можно найти точку интерактивно (в дебагере), где осуществляется сверка и соответственно место финального перехода по ошибке сверки?
Пытаюсь освоить IDA, но может лучше SoftIce для данной задачи?
Какие способы установки брейкпоинтов, хуков и т.п. нужно использовать для отлова таких событий, как добавление текста в текстовое поле?
Как установить брейкпоинт и найти код, который выводит заданное сообщение, если текст этого сообщения (т.е. адрес строки) легко находится в DLL?
Буду признателен за любую помощь. Опыт программирования большой, но с ассемблером слабоватый, а с дизасемблером еще меньше. Концепции по верхам знаю, нехватает практики и толчка в нужном направлении smile

Автор: 500mhz 20.3.2012, 22:02
ollydbg для этих целей в самый раз
ну и поставь на CreaтeFile или ReadFile остановку, посмотри что читает и куда и зачем

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)