THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

Большинство пользователей современных компьютерных систем, так или иначе, сталкиваются с запуском программ, которые в большинстве своем сводятся к тому, чтобы исполнить исполняемый файл. Грубо говоря, во всех программах для запуска основного приложения используется объект формата EXE. Но это не всегда так.

В устаревших ОС вроде DOS или отличных от Windows такие файлы могут иметь совершенно другое расширение, хотя принцип старта остается абсолютно неизменным.

Исполнить исполняемый файл: что это значит?

Для полного понимания сути происходящего сначала стоит разобраться с тем, что собой представляет любой процесс запуска приложения. Тот же исполняющий файл «Навител» или любой другой программы представляет собой некий апплет, в котором прописан код запуска, распознаваемый операционной системой или дополнительными приложениями, для этого предназначенными. Но тут стоит понимать, что программы, состоящие исключительно из одного исполняемого файла, сегодня неактуальны. Как правило, в пакет включается еще огромное количество сопутствующих компонентов в виде тех же динамических библиотек, имеющих расширение DLL. Как раз-таки без них исполнить исполняемый файл возможно не всегда.

Суть в том, что при запуске основного модуля программного пакета, который и состоит в старте EXE-файла, некоторые приложения требуют «подгрузки» дополнительных модулей, которые как раз и являются файлами настроек конфигурации (config) или тех же динамических библиотек, содержащих данные о программе.

Кстати, иногда сами динамические библиотеки способны исполнять роль программ. Так, например, старт любого VST-инструмента в современной студии (DAW) происходит именно по этому принципу. Программа как таковая в виде версии Standalone может отсутствовать, но плагин в виде ее аналога с расширением DLL распознается любой программой.

Программы-исполняемые файлы: типы

Но и это еще не все. Расширение исполняемых файлов сегодня определить не так и просто, не говоря уже о файлах формата EXE или COM. Отдельно стоит отметить не только упомянутые выше стандарты, но и архивные данные.

По сути, архивы формата SFX (Self-Extracting) представляют собой самостоятельно извлекаемые данные на основе срабатывания алгоритма распаковки. такого типа проще простого. Достаточно лишь сделать двойной клик, и операция при выборе места извлечения будет произведена автоматически. На мобильных устройствах используются форматы вроде JAR, JAD APK и т. д., относящиеся к разряду установщиков.

Можно ли открыть исполняемые файлы?

Многих пользователей интересует вопрос редактирования запускаемых файлов. Сразу же стоит всех огорчить. Дело в том, что те же «экзешники» представляют собой компилированные программы, исходный код которых обычно просмотреть невозможно. Можно, конечно, применить утилиты вроде Disassembler, но и они при условии написания приложения изначально на языке C++ этого результата могут и не дать.

Как произвести простейшее редактирование?

Как уже понятно, EXE-файл в его читабельном виде открыть невозможно, поскольку сама же программа может быть написана на разных языках программирования. То же самое касается и динамических библиотек. Зато файлы конфигурации открыть можно даже в стандартном «Блокноте». А если его запустить от имени админа, можно установить даже запреты доступа к некоторым сайтам в Интернете, а после этого сохранить конфигурацию, что в обычном режиме не представляется возможным. Те же самые «конфиги» редактируются элементарно.

Можно ли сделать любой файл исполняемым?

В принципе, любой файл, находящийся на жестком диске, является исполняемым. Точнее, исполнить исполняемый файл - значит, запустить приложение, отвечающее за его открытие. Даже в автозагрузке сделать запуск файла при старте системы можно совершенно элементарно.

Достаточно внести процесс в список и указать сопутствующий объект, который будет загружаться немедленно (например, открытие документа Office). Сделать файл исполняемым - это еще далеко не самое главное.

Резюме

Таким образом, завершая тему, стоит отметить, что файлы или объекты, отвечающие за старт какого-нибудь приложения, в стандартном варианте открыть можно только двойным кликом. А вот редактировать их не представляется возможным. Правда, если программы имеют статус свободно распространяемых по лицензии GNU, вносить изменения в программный код приложений можно очень даже запросто.

Но это частный случай, который, в общем-то, с основной темой и не связан. Другое дело - запуск исполняемого файла, о котором пользователь и представления не имеет. В данном случае акцент следует сделать на вирусах, которые могут приходить в виде тех же вложений электронной почты. Если видите, что прикрепленный файл не имеет значка, не вздумайте его открывать. Хотя в равной степени это касается и вирусов, которые маскируются под такие сообщения. В этом случае вредоносная программа сможет исполнить исполняемый файл или встроенный в него код совершенно запросто, а потом возникнет огромная куча проблем.

И вызов (запуск) исполняемого файла в данном случае уже может не зависеть от самого пользователя, поскольку вирус внедрился в систему. Остается только уповать на универсальные программы в виде портативных версий или же на утилиты модификаций Rescue Disk с загрузкой и проверкой системы еще до начала старта Windows.

Исполняемый файл как таковой, что самое интересное, в загрузчике отсутствует. Зато есть конфигуратор BIN, который и отвечает за старт системы. Кроме того, в устаревших версиях Windows можно встретить еще и папки вроде i386, в которых располагаются драйверы и некоторые другие сопутствующие утилиты. Но в новых версиях системы таких объектов нет.

Любой юзер компьютерной системы, так или иначе, сталкивался с понятием исполняемого файла программы. И не всегда (хотя и очень часто) исполняемые файлы имеют расширение EXE, общепринятое для Windows-систем. Чтобы разобраться в вопросе расширений, рассмотрим общую информацию о таких объектах и некоторые их основные типы.

Отличия исполняемых файлов от других объектов

Прежде чем утверждать, что исполняемый файл программы имеет расширение только лишь одного определенного типа, следует разобраться с тем, как отличить такой объект от других.

На самом деле, среди основных отличий исполняемых файлов от других информационных данных выделяют несколько основных:

  • само расширение, указывающее на содержание в файле либо машинного, либо байт-кода виртуальной машины;
  • сигнатура (содержимое в виде уникальных байт-последовательностей);
  • атрибуты в файловой системе (execute и др.).

К сожалению, даже если знаешь, что исполняемые файлы имеют расширение имени, например, EXE, просмотреть содержимое обычными средствами не получится, поскольку такие объекты обладают компилированным содержимым, которое при просмотре отображается в виде бессмысленного набора символов. В лучшем случае придется использовать средства Disassembler или что-то еще, позволяющее произвести декомпиляцию. Но сейчас не об этом.

Структура исполняемых файлов

Что касается построения файлов такого типа, как правило, они содержат заголовки (предполагаемое исполнение инструкций, параметры, форматы кода), сами инструкции (машинные, исходные или байт-коды).

Иногда в структуру могут включаться описания окружения, данные для отладки, требования к ОС, списки сопутствующих библиотек, изображения, звук, графика, иконки ярлыков и т. д. Кстати, многие, наверное, обращали внимание, что в большинстве своем в каждой операционной системе иконка у такого файла имеется изначально (при условии, что он со старта должен в ней работать).

Принцип работы

Собственно, несмотря на то, что исполняемые файлы имеют расширение разного типа, работают они похожим образом.

При запуске исполняемый файл загружается в память компьютера. При этом происходит инициализация и настройка окружения, «подтягивание» дополнительных библиотек, если применение таких предусмотрено программой, настройка некоторых дополнительных операций и само исполнение инструкций методами, прописанными в файле.

Какое расширение имеют исполняемые файлы программ?

Теперь подходим непосредственно к вопросу расширений. Само собой разумеется, что абсолютно все привести не получится (это займет уж слишком много времени). С другой стороны, можно отметить наиболее популярные и самые распространенные.

Итак, в зависимости от типа содержимого и задается расширение. Так, например, в Windows самые распространенные исполняемые файлы имеют расширение EXE. Это относится ко всем программам, рассчитанным на работу в среде этих операционных систем. Такие объекты содержат Очень похожими (тоже с содержанием таких кодов) являются файлы BIN.

Еще одним типом исполняемых файлов являются пакетные объекты типа CMD, BAT и COM, причем первый тип является Windows, а второй и третий относятся к системам DOS.

Вероятно, многие встречали и файлы MSI и MSU. Это может быть либо «родной» инсталлятор Windows, либо установщик апдейтов системы.

Кроме всего прочего, отдельную категорию составляют скрипты и макросы (VB, VBS, VBE, SCR, JS, JSE). Еще часто встречаются файлы вроде JAR и JAD, предназначенные для установки приложений на мобильные гаджеты или использование в среде JAVA. Все такие объекты в содержании имеют уже не машинные коды, а коды виртуальных машин.

Какое расширение имеют исполняемые файлы в разных системах?

Если посмотреть внимательно, можно заметить, что в некоторых системах встречаются и достаточно специфичные компоненты. Например, в Windows имеется специальная категория исполняемых компонентов (PS1 - исполняемый файл PowerShell, PIF - информация о приложениях, WSF - файл сценария и т. д.).

Вообще, в любой системе можно найти и стандартные, и специальные компоненты. Однако есть и некоторые общие форматы (например, HTA - исполняемый документ HTML), которые работают везде и независимо от применяемой «операционки».

Что же касается других систем, например, в «маках» исполняемые файлы имеют расширение APP, если это программы, и PKG, если это дистрибутив.

А вот с Linux-системами дело обстоит несколько иначе. Дело в том, что в них понятие расширения отсутствует как таковое. Распознать исполняемый файл можно только по атрибутам (скрытый, только для чтения, системный и т. д.). Таким образом, отпадает даже проблема изменения расширений, чтобы запустить или прочитать искомый файл.

Впрочем, в любой системе или даже в мобильных гаджетах можно найти огромное количество объектов такого типа. Далеко ходить не нужно. В той же ОС Android исполняемый файл установщика имеет расширение APK, а в «яблочных» девайсах это файлы IPA.

Заключение

Вот вкратце и все, что касается расширений исполняемых файлов. Конечно, в данном случае упор делался в основном на объекты, присутствующие в Windows-системах, а остальные были затронуты вскользь и, так сказать, для общего развития. И, как уже понятно, разнообразие объектов исполняемого типа настолько велико, что привести какую-то сводную таблицу с указанием абсолютно всех расширений просто не представляется возможным, поэтому мы ограничились наиболее распространенными форматами.

Операционная система Linux, в отличие от Windows, определяет какие файлы являются программами не по расширению, а по специальному флагу исполняемости. У каждого файла есть три основных флага, чтение, запись и исполнение. Они определяют что система может делать с этим файлом.

Когда вы загружаете различные установщики программ из интернета или создаете скрипт в текстовом редакторе, для них устанавливаются флаги по умолчанию - только чтение и запись. Вы не сможете запустить такой файл как программу, с ним нужно сделать еще кое-что. В этой статье мы рассмотрим как сделать файл исполняемым в Linux.

Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?

Программа - это набор инструкций, которые по очереди выполняет процессор над данными, чтобы получить определенный результат. Но это вы, наверное, уже знаете.

На самом деле для процессора нет разницы между данными и инструкциями. И те и другие состоят из байт, проще говоря цифр. Когда-то договорились, что определенные сочетания цифр будут означать то или иное действие процессора, а во всем остальном это те же данные. Поэтому для процессора нет никакой разницы что выполнять - исполняемый файл linux или обычный текстовый файл. Оба могут быть успешно выполнены, вот только во втором варианте инструкции не имеют никакого смысла.

Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости - это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах - сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик - это ld-linux.so.2.

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

В операционной системе Linux, для управления флагами файлов используется утилита chmod. Синтаксис вызова утилиты:

  • Категория - флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие - может быть + (плюс) , что будет значить установить флаг или - (минус) снять флаг.
  • Флаг - один из доступных флагов - r (чтение), w (запись), x (выполнение).

Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:

chmod u+x адрес_файла

Этого в большинстве случаев бывает достаточно, но если мы хотим чтобы файл могли выполнять и другие пользователи, нужно указать также другие категории: g и o :

chmod ugo+x адрес_файла

Посмотреть флаги в терминале можно с помощью утилиты ls:

ls -l каталог_с_файлами

Это значит, что все флаги включены для всех категорий. Первое rwx - флаги владельца, второе - группы, а третье - для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

chmod u-x адрес_файла

Как установить фалг исполняемости в GUI

Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы :

Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.

Выводы

Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!

Многие пользователи компьютерных систем наверняка в той или иной степени сталкивались с понятием исполняемого файла программы. Исполняемые файлы не всегда, но довольно часто имеют расширение EXE, которое является общепринятым для операционных систем семейства Windows. Чтобы немного прояснить вопрос, связанный с расширениями, мы рассмотрим общую информацию об этих объектах, а также рассмотрим некоторые типы основных расширений.

Чем исполняемые файлы отличаются от других объектов

Прежде чем утверждать, что исполняемый файл программы может иметь расширение только одного определенного типа, необходимо разобраться в том, как отличить такой объект от других. К основным отличиям исполняемых файлов от других информационных данных можно отнести следующие факторы: само расширение, которое указывает на содержание в файле либо машинного, либо байт-кода виртуальной машины, сигнатура, атрибуты в файловой системе. Однако даже если пользователь знает, что исполняемые файлы имеют расширение имени типа EXE, то обычными средствами посмотреть содержимое не получится, поскольку такие объекты обладают компилированным содержимым, которые отображается при просмотре в виде бессмысленного набора символов. В общем случае пользователю придется использовать средства Disassembler, или что-то подобное, что позволяет выполнить декомпиляцию. Но речь пойдет не об этом.

Исполняемые файлы: структура

Что же касается построения исполняемых файлов, то они должны содержать заголовки (предполагаемое выполнение инструкций, параметры и форматы кода) и непосредственно сами инструкции (исходные, машинные или байт-коды). В некоторых случаях в структуру могут быть включены данные для отладки, описания окружения, требования к операционной системе, списки соответствующих библиотек, звук, графика, изображения, иконки ярлыков и тому подобное. Многие из вас наверняка обращали внимание на то, что в большинстве своем у каждого такого файла в операционной системе изначально имеется иконка.

Принцип работы

Несмотря на то, что исполняемые файлы могут иметь расширение различных типов, работают они по одному принципу. Исполняемый файл при запуске загружается в память компьютера. При этом осуществляется настройка окружения и инициализация, подтягиваются дополнительные библиотеки, если их использование предусмотрено программой. Также на данном этапе происходит настройка некоторых дополнительных операций и само исполнение инструкций теми методами, которые прописаны непосредственно в файле.

Исполняемые файлы программ: какое расширение они имеют?

Теперь перейдем к рассмотрению вопроса, связанного с расширениями. Разумеется, совершенно все типы рассмотреть не получится, это займет очень много времени. Мы отметим только наиболее распространенные и популярные варианты. Итак, расширение задается в зависимости от типа содержимого. Так, например, в операционной системе типа Windows наиболее распространенные исполняемые файлы обладают расширением EXE. Это относится ко всем программам, которые рассчитаны на работу в среде данных операционных систем. Такие объекты содержат в себе машинные коды. Файлы BIN являются очень похожими. Пакетные файлы типа CMD, BAT и COM являются еще одним типом исполняемых файлов. Первый тип в данном случае является пакетным файлом Windows. Файлы второго и третьего типа относятся к операционным системам семейства DOS. Многие из вас вероятно уже встречали файлы типа MSI иMSU. Это может быть установщик обновлений системы, или родной инсталлятор операционной системы Windows. Отдельную категорию файлов составляют макросы и скрипты. Это файлы с расширениями JSE, JS, SCR,VBE, VBS, VB. Часто также встречаются файлы JAD иJAR, которые предназначены для установки приложений в мобильные устройства или использование в среде JAVA. В своем содержании такие объекты имеют уже не машинные коды, а коды виртуальных машин.

Какое расширение имеют исполняемые файлы в различных ОС?

Если внимательно посмотреть, то можно заметить, что в некоторых ОС встречаются довольно специфичные компоненты. Так, например, в операционной системе Windows имеется специальная категория исполняемых файлов. Вообще, в любой операционной системе можно найти как стандартные, так и специальные компоненты. Однако имеются и некоторые общие форматы, например, HTA, исполняемый документ HTML. Они работают практически везде вне зависимости от используемого типа операционной системы. Что же касается других типов систем, то, например, в «маках» исполняемые файлы обладают расширением APP для программ и PKG для дистрибутивов. В операционных системах семейства Linux дело обстоит немного иначе. Проблема заключается в том, что в таких операционных системах понятие расширения вообще отсутствует. Можно распознать исполняемый файл по атрибутам, например, системный, скрытый, только для чтения и т.д. В результате проблема изменения расширения для запуска или прочтения искомого файла пропадает. Впрочем, в любой операционной системе даже на мобильных устройствах можно найти огромное число объектов данного типа. Не нужно далеко ходить. В той же операционной системе семейства Android исполняемый файл установщика имеет расширение APK. В яблочных устройствах исполняемые файлы имеют расширение IPA.

Заключение

Подведем итог нашего небольшого обзора о расширении исполняемых файлов. Упор в данном случае делался в основном на объекты, которые присутствуют в операционных системах семейства Windows. Остальные операционные системы были затронуты только вскользь для общего развития. Как уже стало ясно, разнообразие исполняемых файлов очень велико. Невозможно привести какую-то сводную таблицу с указанием совершенно всех типов расширений. Поэтому в данной статье мы ограничились только наиболее распространенными форматами

Вконтакте несомненно является очень распространенной социальной сетью, где люди не только переписываются друг с другом, но также и обмениваются различными файлами. В связи с этим многие пользователи данной социальной сети зачастую сталкиваются с проблемой, когда во время попытки прикрепления файла к сообщению появляется ошибка с текстом «Не удалось загрузить файл. Файл не должен быть исполняемым, а его размер не должен превышать 200 МБ».

Если с размером файла все понятно, то вот что значит «Файл не должен быть исполняемым» знает далеко не каждый.

В данной статье мы расскажем что такое исполняемый файл и что делать, чтобы обойти данное предупреждение.

Исполняемый файл — что это?

Исполняемый файл это файл, который содержит для компьютера готовый набор команд, который можно сразу загрузить в память и приступить к его исполнению.

Как правило это файлы с расширением.exe, .bat, .com.

Также иногда вконтакте не хочет загружать архивы, в которых запакованы.exe файлы, ссылаясь на всю ту же ошибку.

Связано это с вопросами безопасности, ведь.exe файлы являются первыми по популярности в рейтинге по подвержению заражению вирусами. И чтобы хоть как — то снизить риск распространения компьютерных вирусов через вконтакте разработчики решили попросту запретить передавать друг другу самый подверженный заражению тип файла — исполняемый файл.

Как обойти ошибку?

Обойти данное ограничение достаточно просто. Нужно всего лишь на одно из разрешенных, например.doc, отправить его адресату и сказать, чтобы он после скачивания файла поменял расширение обратно на то, которое было у файла изначально.

Смена расширения у файла

Из альтернативных способов можно отметить загрузку файла, который отказывается загружать вконтакте, на любое облачное хранилище типа Яндекс диска или Гугл диска, а затем отправку ссылки на него адресату вконтакте.


Лучший способ отблагодарить автора статьи- сделать репост к себе на страничку

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама