Как определить является ли файл исполняемым?

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

_SG
Сообщения: 53
Зарегистрирован: 28 фев 2009, 10:43
Откуда: Севастополь

Согласен. Но что топик-стартеру вообще надо было?
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

BBB писал(а):Тогда уже еще *.bat, *.cmd
А *.DLL относить к исполняемым?
Исполяемые - это всё, что с кодом, который можно запустить или непосредаственно, или от имени другого процесса. Так что библиотеки (но только dll) - исполняемые, а баты - нет, так как в них вообще нет кода, а есть только инструкции операционки. Баты - это скорее сценарии. Так что .exe, .com и .dll, но ничего другого.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

А как же SYS, VXD?
It's a long way to the top if you wanna rock'n'roll
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

somewhere писал(а):А как же SYS, VXD?
Это вообще вайлы конвигурации. Ищи те, что имеют код. И научись отличать исполняемые файлы от запускаемых. Запускаемым может быть и вордовый текст, если расширение .doc ассоцировано с редактором. А исполняемые исполняются не другой программой, а процессором. .dll исполняется процессором, хотя непосредственно и не запускается. .com и .exe исполняются процессором и запускаются непосредственно. Всё остально исполняется программами. Если же иметь в виду программны файлы, то это всё, что содержит программы и их фрагменты. Тогда баты, скрипты, файлы с макросами и тому подобные файлы тоже программные. Но документы только с содержанием, но без поведения приложений всётаки не являются программными файлами. К программным же следует отнести и файлы с исходными текстами программ, так что, список расширений растёт до полной необозримости. С исполняемыми проще. В принципе библиотечные файлы можно и не относить к исполняемым на том основании, что они не являются запускаемыми (не могут быть запущены с пользовательского интерфейса операционной системы). Но .com и .exe - всё равно исполняемые. .lib тоже библиотечные, следовательно программные, но не исполняемые, так как для запуска должны внедряться в другие файлы на этапе их (эти других файлов) разработки.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):Это вообще вайлы конвигурации.
Ну хз, загляни на досуге в %windir%\system32\drivers, на 95% файлы SYS по сути те же DLL и хедер у них Portable Executable, загружаются точно также через LoadLibrary ядром ОС. Аналогично могут быть загружены прикладной программой. Тогда давайте уж и DLL тоже к "файлам конфигурации" отнесем, потому как способ загрузки SYS и DLL идентичен. VXD - тоже самое.
It's a long way to the top if you wanna rock'n'roll
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):%Ну хз, загляни на досуге в %windir%\system32\drivers, на 95% файлы SYS по сути те же DLL
А в DOSе? Учти, что эти оси односторонне совместимы и попробуй растолковать, как в таком случае винда отличит свои сисы от старых. А то что в LoadLibrarry можно пихать что попало и всё будет работать при условии, что внутри файл всётаки динамический и библиотечный, так это давно известно. Если винде явно указать, чем грузить файл, то она вообще забывает про их типы. Попробуй на досуге переименовать какую-нибудь библиотеку в .txt, а потом учесть переименование в своей приладе.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Вспомил еще, что скрин-сейверы имееют расширение, если правильно помню, *.SCR, но по содержимому это EXE-файл.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):Вспомил еще, что скрин-сейверы имееют расширение, если правильно помню, *.SCR, но по содержимому это EXE-файл.
Тогда и .src - исполняемые.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
nazavrik
Сообщения: 11
Зарегистрирован: 29 сен 2009, 13:12

_SG писал(а):Согласен. Но что топик-стартеру вообще надо было?
Нужно было ровно то, на что я сам позже и ответил. Материал по теме полезный можно посмотреть здесь:
http://www.insidepro.com/kk/019/019r.shtml
http://www.insidepro.com/kk/018/018r.shtml

Алгоритм следующий:

1. Считываем DOS-заголовок, проверяем наличие MZ-сигнатуры.
2. Смещаемся до PE-заголовка, считываем и проверяем наличие соответствующей сигнатуры. Не забывая проверять, чтобы смещение не вылезло за пределы файла.
Ответить