Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 22:42   #1
zebrazoo
Новичок
Джуниор
 
Регистрация: 20.03.2012
Сообщений: 2
По умолчанию нахождение точки входа в дизасемблере

Всем доброго времени суток!

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

Каким способом можно найти точку интерактивно (в дебагере), где осуществляется сверка и соответственно место финального перехода по ошибке сверки?
Пытаюсь освоить IDA, но может лучше SoftIce для данной задачи?
Какие способы установки брейкпоинтов, хуков и т.п. нужно использовать для отлова таких событий, как добавление текста в текстовое поле?
Как установить брейкпоинт и найти код, который выводит заданное сообщение, если текст этого сообщения (т.е. адрес строки) легко находится в DLL?
Буду признателен за любую помощь. Опыт программирования большой, но с ассемблером слабоватый, а с дизасемблером еще меньше. Концепции по верхам знаю, нехватает практики и толчка в нужном направлении
zebrazoo вне форума Ответить с цитированием
Старый 20.03.2012, 23:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но может лучше SoftIce для данной задачи?
Ух ты... А может лучше сначала Ассемблер изучить? А заодно понять саму схему программы, и то как ее части взаимодействуют?
Цитата:
но с ассемблером слабоватый, а с дизасемблером еще меньше.
Отето оч. плохо, ибо не зная асма тебе будет не просто понять что какая команда делает. И потом - уверен что тебе полюбому придется еще изучать функции WINAPI, чтоб узнать какая из функций работает с файлом, и возможно криптоаналитику...
Короче это далеко не так просто, и даже на пальцах не расскажешь все о реверсинге.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование в строчный тип данных(Ошибка не содержит статического метода "Main", подходящего для точки входа) aly-lucenko Помощь студентам 8 02.10.2011 11:36
Нахождение точки на медиане треугольника в координатной плоскости. Вадим Буренков Свободное общение 4 22.06.2010 19:18
Точки на плоскости, нахождение квадрата PastoriXx Общие вопросы .NET 6 28.05.2010 06:45
Точки и нахождение ближайшей пары точек Salim Помощь студентам 0 15.06.2009 23:32
Нахождение трассы движения точки на плоскости Эмиль_C++ Общие вопросы C/C++ 4 20.04.2009 14:26