|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.02.2011, 19:15 | #1 |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
Проверка файла на PE заголовок.
На основе прочитанных парочки уроков решил написать программу, определяющую файл на правильность PE-заголовка. Почему то, что бы я не выбрал, выдает что это не PE заголовок. В чем проблема?
Код:
|
21.02.2011, 19:41 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
эмм, а вы где с файла то читаете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.02.2011, 19:51 | #3 |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
эмм...чтения у меня нету
Всегда на таких тупостях подкалываюсь). Я в общем исправил - добавил чтение, но проблема в том, что теперь вместо мессэдж бокса, программа выдает ошибку (инструкция с такого то адреса перешла в другой адрес...т.д. и т.п.) Вот прога с исправлениями: Код:
|
21.02.2011, 21:38 | #4 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
Посмотрите уроки Айцзелиона-он такой пример на пальцах разобрал заодно с СЕХ даже уже лет чуть ли не 15 назад.
invoke ReadFile,hFile,pMemory, sizeof pMemory-1, NULL ,NULL здесь: sizeof pMemory-1 укажет читать из файла 3 байта; 4й параметр не должен быть равным нулю - в него возвращается количество загруженных байт, ежели не хотите выделять отдельную переменную, то поставьте хотя бы esp вообщем сделайте хотя бы так invoke ReadFile,hFile,pMemory, 100h, esp ,NULL но это шибко грубо и чревато ошибками, так что все же рекомендую ознакомится с туториалом приведенным в пример выше
Нет, ну правда..
Последний раз редактировалось yuran666666; 22.02.2011 в 10:43. |
22.02.2011, 18:57 | #5 |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
Спасибо).
А кстати - зачем нужен SEH? |
22.02.2011, 20:40 | #6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
SEH - это механизм обработки исключений возникающих в программе
|
23.02.2011, 00:08 | #7 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
Вот вам пример все оттуда же:
мы даем на съедение данной программе не ПЕ-файл, а какой либо другой, пусть хоть даже текстовый документ, программа же сделает что(возьмем наш вариант программы): 1. Загрузит первые его 0х100 байт в память 2. Прибавит к адресу в памяти по которому загружены эти 100 байт смещение на ПЕ-заголовок, расположенное по смещению 0х3с от начала этого же куска памяти с нашими байтами. Теперь вопрос на засыпку: что произойдет если в данном текстовом документе спустя от начала 0х3с символов будет слово 'fuck'? Программа рассмотрит это байты (аскии коды символов 'fuck') как смещение на пе-заголовок и обратится за поиском РЕ-сигнатуры как минимум к тому месту где их уж точно быть не может, а скорее всего к адресу, запрос доступа к которому вызовет исключение(неразмеченное виртуальное пространство, адреса ниже 0х10000 и выше 0х7ффффффф). Если программа не использует механизм обработки исключений, то вызывается стандартный обработчик, говорящий о том, что инструкция по адресу Х обратилась по адресу У, память не может быть прочитана в данном случае. Вот собственно и все.
Нет, ну правда..
|
23.02.2011, 10:38 | #8 |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
Спасибо). Просто я хотел сам попробовать написать программу, определяющую PE или нет). И хотел обойтись без сеха, но по видимому у меня это не получилось.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка текста из файла!!! | DKENT | PHP | 11 | 09.02.2011 21:01 |
Проверка наличия файла | nervniy | Работа с сетью в Delphi | 4 | 28.10.2010 19:47 |
Проверка на наличие файла | ruavia3 | Microsoft Office Excel | 1 | 05.02.2010 21:13 |
Проверка на наличие файла | Demetrius | Помощь студентам | 12 | 28.07.2009 00:27 |
Проверка атрибутов файла. | v01umE | Общие вопросы C/C++ | 2 | 31.05.2008 08:37 |