Показать сообщение отдельно

  #13  
Старый 07.09.2008, 19:20
fromRIDDER
Новичок
Регистрация: 02.08.2008
Сообщений: 8
Провел на форуме:
8620

Репутация: 12
По умолчанию

Почему брикпоинт на CreateFileA.
Функций открытия файла на так уж много, и все они в конечном счёте вызывают CreateFileW. Но если поставить бряк на него, то будет слишком много ложных остановок: функция используется не только для работы с файловой системой. Я всегда ставлю бряк на CreateFileA, а после остановки жму Alt+F9 (OllyDbg), какая бы функция не использовалась, почти всегда попадешь в пользовательский код.

На что ставить memory breakpoint.
После нужной остановки на бряке CreateFileA, ставишь бряк на ReadFile (или трейсишь до её использования). Когда остановишься: проверяешь по дескриптору из какого объекта происходит чтение; смотришь в аргументах указатель буфера, в который будет чтение; по какому смещению в объекте. Редко когда обработка прочитанных данных идёт сразу вслед за чтением, поэтому, чтобы не тратить время, ставим memory breakpoint на кусок памяти, куда прочитали. После срабатывания бряка анализируем ситуацию.
 
Ответить с цитированием