![]() |
eXeL@B —› Вопросы новичков —› HELP -> Работа с NTDLL.DLL |
Посл.ответ | Сообщение |
|
Создано: 25 ноября 2007 20:49 · Поправил: GlOFF · Личное сообщение · #1 Из своей программы, получаю адресс загрузки NTDLL.DLL и хочу анализировать PE-заголовок, но при попытки проверки MZ-сигнатуры выдается сообщение об ошибки, ошибка доступа к памяти, доступ к памяти запрешен! VirtualProtect на весь SizeOfImage из NTDLL.DLL тоже не помогает, хотя функция возвращает не ноль. При просмотре программы через ollyDBG, моя программа анализирует загловок NTDLL.DLL и выполняет то, что запланировано без ошибок. Как я понел: При выполнении моей проги в контексте отладчика (т.е. при просмотре в ольке) ошибок при обращении к адрессному пространству NTDLL.DLL - НЕТ, без отладчика как этого добиться??? ![]() |
|
Создано: 27 ноября 2007 13:49 · Личное сообщение · #2 Проблема вся в том, что ntdll.dll загружен системой в том участке памяти, на который доступ пользовательским программам запрещён (как на запись, так и на чтение). При попытке обращения к таким участкам памяти, процессор вызывает так называемую "Exception", что есть вызов системной рутины закрытия текущего процесса и выдачи соответствующего сообщения. Думаю тебе надо анализировать не загруженный в память образ *.dll а через свою программу анализировать сам файл на диске. GlOFF пишет: При выполнении моей проги в контексте отладчика (т.е. при просмотре в ольке) ошибок при обращении к адрессному пространству NTDLL.DLL - НЕТ, без отладчика как этого добиться??? Отладчики, которые работают в 0-вом кольце имеют полный доступ ка всей памяти (если я не ошибаюсь). Поэтому ты через отладчик можешь делать всё что угодно (я подчёркиваю в 0-вом кольце) Для решения задачи предлагаю 2 способа: 1. Анализировать заголовок *.dll прямо на диске (не запуская на исполнение), т.е считывание отдельных разделов в память с последующим анализом. 2. Написать драйвер через который можно получить доступ к уже загруженной в памяти *.dll. Второе не пробовал, но для этого есть отладчики. ![]() |
|
Создано: 27 ноября 2007 21:26 · Личное сообщение · #3 |
![]() |
eXeL@B —› Вопросы новичков —› HELP -> Работа с NTDLL.DLL |