Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отличия исполняемых файлов DOS и PE

29K
27 ноября 2009 года
indivisible_int
18 / / 02.02.2008
Здравствуйте, прошу прощения, что может быть, не в тему. Пишу программу с интерфейсом на MFC, которая разбирает исполняемый модуль и выдает о нем различную информацию - эдакий аналог утилиты PEiD. Я сначала отображаю файл в память, как это делается в примере ICZELION'a, потом смотрю на DOS-заголовок, нахожу поле со смещением PE заголовка, перехожу к PE заголовку и сравниваю первый DWORD с сигнатурой PE. Но я хочу, чтобы программа отображала инфу не только о PE файлах, но и о досовских ехешниках, разбирая досовский заголовок. Проблема возникает при скармливании программе файлов вроде TASM.EXE, которые являются чисто досовскими и при переходе на смещение PE заголовка, в указатель на IMAGE_NT_HEADERS пишется левый адрес, в общем случае ненулевой, но при обращении к которому вылетает unhandled exception. Блок try..catch вроде установлен, но видимо, что-то не так. Исходный проект прилагаю.
З.Ы. Прошу низкоуровневиков не судить строго за выбор MFC в качестве интерфейса,так как хочется уделить больше внимания написанию содержательной части, а не прорисовке окон и кнопок.
29K
29 ноября 2009 года
indivisible_int
18 / / 02.02.2008
Проблема решена проверкой на валидность указателя на PE заголовок функцией IsBadReadPtr.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог