Введение[править]
Исполни́мый (исполня́емый) мо́дуль, исполнимый файл (англ. executable file) — файл, содержащий программу в виде, в котором она может быть (после загрузки в память и настройки по месту) исполнена компьютером.
Чаще всего он содержит двоичное представление машинных инструкций для определённого процессора (по этой причине на программистском сленге в отношении него используют слово бинарник — кальку с английского binary), но может содержать и инструкции на интерпретируемом языке программирования, для исполнения которых требуется интерпретатор. В отношении последних часто используется термин «скрипт».
Исполнением бинарных файлов занимаются аппаратно- и программно-реализованные машины. К первым относятся процессоры, например, семейств x86 или SPARC. Ко вторым — виртуальные машины, например, виртуальная машина Java или .NET Framework. Формат бинарного файла определяется архитектурой исполняющей его машины. Известны машины, реализованные как аппаратно, так и программно, например, процессоры семейства x86 и виртуальная машина VMware.
Статус исполнимости файла чаще всего определяется принятыми соглашениями. Так, в одних операционных системах исполнимые файлы распознаются благодаря соглашению об именовании файлов (например, путём указания в имени расширения файла — .exe или .bin), тогда как в других исполнимые файлы обладают специфичными метаданными (например, битом разрешения execute в UNIX-подобных операционных системах).
В современных компьютерных архитектурах исполнимые файлы содержат большие объемы данных, не являющихся компьютерной программой: описание программного окружения, в котором программа может быть выполнена, данные для отладки программы, используемые константы, данные, которые могут потребоваться операционной системе для запуска процесса (например, рекомендуемый размер кучи), и даже описания структур окон графической подсистемы, используемых программой.
Зачастую исполнимые файлы содержат вызовы библиотечных функций, например, вызовы функций операционной системы. Таким образом, наряду с процессорозависимостью (машинозависимым является любой бинарный исполнимый файл, содержащий машинный код) исполнимым файлам может быть свойственна зависимость от версии операционной системы и её компонент.
В настоящее время существует большое количество файловых форматов исполняемых файлов для различных операционных систем. При этом документация, хотя и существует, зачастую разрознена или практически недоступна (например, описание формата LX/LE становится всё сложнее и сложнее найти). Плюс к этому различные производители программного обеспечения вводят дополнительные расширения, которые, зачастую, становится трудно сопоставить с оригинальным форматом или они взаимоисключающие.
Данная работа является попыткой составить единый справочник по работе с исполняемыми файлами, их анализа, разбора и создания исполняемого образа, готового для работы в памяти. Скриптовый формат исполняемых файлов оставим на откуп соответствующих руководств по языкам программирования, а рассмотрим именно двоичные форматы.
Что такое InstUp.exe
Файл InstUp.exe принадлежит к программе бесплатный антивирус Avast. Если вы заметили, что она работает на вашем компьютере, не нужно беспокоиться, потому что он не будет делать никакого вреда. Он может использовать очень много ресурсов компьютера временами в то время как Антивирус работает, но в противном случае это не должно беспокоить вас. Если вы удалите InstUp.exe, вы бы в конечном итоге срыв Avast в операции, так что делать это не рекомендуется. Подлинный файл должен находиться в подпапке в C:Program Files.
Отметим, что это не редкость для вредоносных программ, чтобы замаскировать себя как некоторые законные файл так, что когда пользователи просматривать файл, они получают результаты, заявив, что оно является законным. Одним из признаков, которые вы не имеете дело с Avast в файл является, если файл расположен где-нибудь еще кроме в C:Program Files. Если вы заметили его в другом месте, мы рекомендуем вам проверить ваш компьютер на наличие вредоносных программ.
Как открыть файл EXE
Файлы EXE не требуют программы для открытия, потому что Windows знает, как с ними обращаться. Тем не менее, EXE-файлы иногда становятся непригодными для использования из-за ошибки реестра или вирусной инфекции. Когда это происходит, Windows использует другую программу, например, «Блокнот», для открытия файла EXE, что, конечно, не работает.
Исправление этого сбоя включает восстановление правильной ассоциации реестра с файлами EXE.
Некоторые EXE-файлы являются самораспаковывающимися архивами. Эти EXE-файлы могут автоматически извлекаться в определенное место или даже в ту же папку, из которой открывается EXE-файл. Другие могут спросить вас, где вы хотите распаковать содержимое.
Программа типа 7-Zip также может создавать самораспаковывающиеся архивы в формате EXE. Это можно сделать, выбрав 7z в качестве формата архива и включив опцию Создать архив SFX .
Восстановление запуска exe вручную
Вручную действие будет немного сложнее, но зато не требует установки или загрузки программ, подойдёт для компьютера вне сети. Действия будут выполняться в реестре, поэтому не меняйте лишних параметров, так как это может плачевно сказаться на устойчивости системы.
- Нажмите Win + R и введите regedit;
- Найдите HKEY_CLASSES_ROOT.exe, проще всего найти среди большого множества разделов, введя название на клавиатуре, только в быстром темпе;
- Правый клик по значению «По умолчанию» и выберите «Изменить»;
- Замените параметр на слово exefile;
- Теперь в том же разделе найдите группу exefile;
- Откройте параметр «По умолчанию» двойным кликом и установите значение «%1» %*
- Далее перейдите внутрь в раздел shell и затем open;
- Теперь снова в «По умолчанию» вставьте значение «%1» %*
- Перезагрузите ПК.
Этот ряд действий позволяет добиться поставленной цели и восстановить ассоциацию файлов exe. Подобным образом можно делать и с другими форматами, но лучше воспользуйтесь специальными утилитами, вроде предыдущей.
Также следует знать, что существуют тяжелые варианты проблемы, когда даже строка «Выполнить» не работает. Тогда нажмите Ctrl+Alt+Del, затем выберите «Файл» и «Выполнить».
Я должен удалить Wlanext.exe?
Wlanext.exe Файл является важной частью вашей операционной системы WIndows, поэтому его удаление будет иметь долгосрочные последствия для поведения вашей ОС. Во-первых, вы потеряете функцию Extensibility Framework, а это означает, что процессы больше не смогут объединяться вместе, поэтому общее использование ресурсов будет выше
Итак, если у вас есть только один экземпляр wlanext.exeфайл, удалять его не рекомендуется ни при каких обстоятельствах.
Однако есть сценарий, в котором удаление файла допустимо. Если вы видите два активных файлы wlanext.exe в диспетчере задач и вы убедились, что оба подлинные, вы можете безопасно удалить тот, который находится вне C: Windows System32.
Вероятно, он был установлен сторонней утилитой, поэтому ее удаление перенаправит процессы, использующие файл, на основной, расположенный в C: Windows System32.Чтобы избавиться от дополнительных wlanext.exeфайл, перейдите к следующему разделу ниже.
Исполняемый файл COM-формата
Данный
формат исполняемого файла является самым
старым. Если считать началом «нашей эры»
конец 70-х годов, когда появились компьютеры
на базе микропроцессора i8086, то основы
формата COM появились еще «до нашей эры».
В то время были популярны компьютеры на
базе 8-разрядных микропроцессоров i8080
(отечественный аналог — КР580ВМ80). Одной
из отличительных характеристик этих
микропроцессоров была поддержка размера
оперативной памяти не более 64 Кбайт. Таким
образом, размер программы, выполняющейся
на компьютере с микропроцессором i8080,
изначально был ограничен его архитектурой.
А с учетом того, что некоторая часть оперативной
памяти отводилась для программ операционной
системы, — реальный размер программы
был еще меньше. COM-формат поддерживался
операционной системой CP/M фирмы Digital Research
и показал свою эффективность. С появлением
16-разрядного микропроцессора фирмы Intel
i8086/88, возникла необходимость в операционной
системе, которая в полной мере использовала
бы его возможности. Фирма Microsoft разработала
операционную систему MS-DOS. Большинство
программ в то далекое время имело небольшой
размер, и фирма Microsoft, не изобретая заново
велосипед, ввела поддержку COM-формата
в операционную систему MS-DOS. На уроке 10
мы уже обсуждали данный формат исполняемого
файла. При этом отмечалось, что исходный
файл должен удовлетворять определенным
требованиям. Поэтому мы не будем повторять
то, что уже было сказано, а проникнем немного
вглубь вопроса. Для этого в качестве примера
рассмотрим исходный текст программы,
оформленный в соответствии с требованиями
COM-формата (листинг 1).
Листинг
1. Пример исходного файла программы
в COM-формате
;———Prg18_1.asm———————————-
;Пример программы
в COM-формате.
;Основа примера
— программа Prg_3_1.asm (урок 3)
;——————————————————
code segment para public ‘code’ ;начало
сегмента кода
assume cs:code,
ds: code, ss: code
org 100h
main proc
jmp EndData
message db ‘Введите две
шестнадцатеричные цифры,$’
EndData:
;ds инициализирует
система
mov ah,
9
mov dx,
offset message
int 21h
xor ax,
ax ;очистить регистр ax
mov ah,
1h ;1h в регистр ah
int 21h ;генерация
прерывания с номером 21h
mov dl,
al ;содержимое регистра al в регистр dl
sub dl,
30h ;вычитание: (dl)=(dl)-30h
cmp dl,
9h ;сравнить (dl) с 9h
jle M1 ;перейти
на метку M1, если dl<9h или dl=9h
sub dl,
7h ;вычитание: (dl)=(dl)–7h
M1: ;определение
метки M1
mov cl,
4h ;пересылка 4h в регистр cl
shl dl,
cl ;сдвиг содержимого dl на 4 разряда влево
int 21h ;вызов
прерывания с номером 21h
sub al,
30h ;вычитание: (dl)=(dl)-30h
cmp al,
9h ;сравнить (al) с 9h 28
jle M2 ;перейти
на метку M2, если al<9h или al=9h
sub al,
7h ;вычитание: (al)=(al)-7h
M2: ;определение
метки M2
add dl,
al ;сложение: (dl)=(dl)+(al)
mov ax,
4c00h ;пересылка 4c00h в регистр ax
int 21h ;вызов
прерывания с номером 21h
main endp
code ends ;конец сегмента
кода
end main ;конец программы
с точкой входа main
Такая структура
исходного файла для COM-формата обусловлена
тем, что построенный на его основе исполняемый
файл является слепком участка памяти.
После его загрузки операционной системе
не требуется производить никаких настроек.
Интересно
посмотреть на дамп COM-файла (рис. 1).
0000:0000 EB 26 90 C2
E2 E5 E4 E8 F2 E5 20 E4 E2 E5 20 F8 ..&Введите две
ш
0000:0010 E5 F1 F2 ED
E0 E4 F6 E0 F2 E5 F0 E8 F7 ED FB E5 естнадцатеричные
0000:0020 20 F6 E8 F4
F0 FB 2C 24 B4 09 BA 03 01 CD 21 33 цифры,$……!3
0000:0030 C0 B4 01 CD
21 8A D0 80 EA 30 80 FA 09 7E 03 80 ….!..Ђ.0Ђ..~.Ђ
0000:0040 EA 07 B1 04
D2 E2 CD 21 2C 30 3C 09 7E 02 2C 07 …….!,0<.~.,.
0000:0050 02 D0 B8 00
4C CD 21
….L.!
Рис. 1.
Дамп COM-файла
В отличие
от других форматов исполняемых файлов,
как мы увидим ниже, по внешнему виду приведенного
дампа трудно определить (см. рис. 1), что
этот файл тоже может быть загружен и выполнен.
Это действительно образ памяти, который
загружается операционной системой в
сегмент со смещением 100h и исполняется.
Необязательным признаком COM-файла является
наличие в качестве первой инструкции
команды перехода. В нашем случае — это EB 26
(jmp EndData).
Структура программного сегмента [ править | править код ]
При обращении к нерезидентной команде или вызове программы операцией Exec, DOS определяет минимальный адрес, начиная с которого может быть загружена соответствующая программа. Эта область называется программным сегментом.
По смещению 0000 в программном сегменте DOS формирует префикс программного сегмента (PSP). Сама программа загружается по смещению 0100.
Программа завершается переходом по адресу 0000 в программном сегменте, выполнив INT 20, выполнив INT 21 с AH=0 или AH=4C, или обратившись к подпрограмме по адресу 0050 в программном сегмент с AH=0 или AH=4C.
Примечание: при завершении иначе, чем операцией 4C, программа должна предварительно заслать в CS адрес начала своего программного сегмента.
Все четыре способа возвращают управление в резидентную часть COMMAND.COM (при этом операция 4C передает код завершения). Все четыре способа приводят к продолжению выполнения программы, обратившейся к операции Exec (4B). При этом вектора прерываний 22, 23 и 24 (завершение, Ctrl-Break, фатальная ошибка обмена) восстанавливаются из Префикса Программного сегмента возобновляемой задачи. Затем управление передается по адресу завершения. Если программа возвращается в COMMAND.COM, то управление передается в нерезидентную часть. Если это происходит во время выполнения командного файла, оно продолжается, иначе COMMAND выдает на терминал приглашение и ждет ввода следующей команды.
Когда загруженная программа получает управление, имеют место следующие условия:
Переносимый исполняемый файл | |
---|---|
Расширение | .exe , .dll , .ocx , .sys , .scr , .drv , .cpl или .efi |
MIME-тип | application/vnd.microsoft.portable-executable и application/efi |
Тип формата | двоичный, исполняемый, объектный, динамическая библиотека |
Portable Executable (PE, «переносимый исполняемый») — формат исполняемых файлов, объектного кода и динамических библиотек, используемый в 32- и 64-разрядных версиях операционной системы Microsoft Windows. Формат PE представляет собой структуру данных, содержащую всю информацию, необходимую PE-загрузчику для отображения файла в память. Исполняемый код включает в себя ссылки для связывания динамически загружаемых библиотек, таблицы экспорта и импорта API-функций, данные для управления ресурсами и данные локальной памяти потока (TLS). В операционных системах семейства Windows NT формат PE используется для EXE, DLL, SYS (драйверов устройств) и других типов исполняемых файлов.
PE представляет собой модифицированную версию COFF формата файла для Unix. PE/COFF — альтернативный термин при разработке Windows.
На операционных системах семейства Windows NT формат PE в настоящее время поддерживает следующие архитектуры наборов команд: IA-32, IA-64 и x86-64 (AMD64/Intel64). До Windows 2000 Windows NT (таким образом, и PE) поддерживал MIPS, Alpha и PowerPC. Поскольку PE используется на Windows CE, он продолжает поддерживать несколько разновидностей MIPS, ARM (включая Thumb) и SuperH.
Основные «конкуренты» PE — ELF (используемый в Linux и большинстве других версий Unix) и Mach-O (используемый в Mac OS X).
Как открыть EXE-файлы на Mac
Поскольку мы говорим немного больше о нижеследующем, лучше всего, когда у вас есть программа, которую вы хотите использовать на своем Mac, которая доступна только в качестве установщика / программы EXE, заключается в том, чтобы увидеть, есть ли версия для Mac для Mac.
Предполагая, что это недоступно, что часто случается, еще одним популярным вариантом является запуск самой Windows из вашего компьютера macOS через нечто, называемое «эмулятор» или «виртуальная машина».
Эти типы программ эмулируют (таким образом, имя) ПК с Windows, аппаратное обеспечение и все, что позволяет им устанавливать программы на базе ОС Windows.
Некоторые популярные эмуляторы Windows включают Parallels Desktop и VMware Fusion, но есть и другие. Apple Boot Camp — еще один вариант.
Бесплатная программа WineBottler — еще один способ решить эту проблему с программами Windows на Mac. Никаких эмуляторов или виртуальных машин, необходимых для этого инструмента.
Системный реестр
Здесь тоже может быть много чего интересного. Реестр будем монтировать к своему. Для этого скопируем несколько файлов:
- SOFTWARE
- SYSTEM
из каталога C:\Windows\System32\config\ – именно тут хранится системный реестр. Остальные мне пока не нужны. Можно воспользоваться различными утилитами для работы с реестром, хоть даже штатным редактором. Подмонтируем файл и поищем разные интересные места. Например вот:
Ещё один маркер – загрузка чего-то с сервера. Лежит в классическом автозапуске (секция Run). Ещё один маркер. Файл нашёлся в system32. И там же рядом куча других файлов с похожими именами. Работы выше крыши.
Таким образом можно начинать практически с любого места и найти одни маркеры, которые в ходе разбора приведут к другим.
Причины и решение проблемы с EXE
В большинстве случаев источником проблемы служит вирусная активность: проблемные файлы заражены или повреждён системный реестр Windows. Иногда причиной проблемы может быть некорректная работа встроенного в ОС брандмауэра или сбой «Проводника». Рассмотрим решение каждой из проблем по порядку.
Способ 1: Восстановление ассоциаций файлов
Нередко зловредное ПО атакует системный реестр, что приводит к разнообразным сбоям и ошибкам. В случае рассматриваемой нами проблемы вирус повредил ассоциации файлов, вследствие чего система попросту не способна открывать EXE-файлы. Восстановить корректные ассоциации можно следующим образом:
- Откройте меню «Пуск», напечатайте в строке поиска regedit и нажмите Enter. Затем щёлкните правой кнопкой мыши по найденному файлу и выберите вариант «Запуск от имени администратора».
Дважды кликните ЛКМ по параметру «По умолчанию» и напишите в поле «Значение» вариант exefile, после чего нажмите «ОК».
Далее в ветке HKEY_CLASSES_ROOT найдите папку exefile, откройте её и перейдите по пути shell/open/command .
Снова откройте запись «По умолчанию» и установите в поле «Значение» параметр “%1” %* . Подтвердите операцию нажатием на «ОК».
Данный метод помогает в большинстве случаев, но если проблема всё ещё наблюдается, читайте далее.
Способ 2: Отключение брандмауэра Windows
Иногда причиной, по которой не запускаются EXE-файлы, может быть встроенный в Виндовс файерволл, и отключение данного компонента избавит вас от проблем с запуском файлов этого типа. Мы уже рассматривали процедуру для Windows 7 и более новых версий ОС, ссылки на подробные материалы представлены ниже.
Способ 3: Изменение звуковой схемы и контроля учётной записи (Windows 8-10)
В редких случаях на Windows 8 и 10 причиной проблем с запуском EXE может быть сбой в работе системного компонента UAC, отвечающего за уведомления. Проблему можно исправить, проделав следующие действия:
- Щёлкните ПКМ по кнопке «Пуска» и выберите в меню пункт «Панель управления»
Найдите в «Панели управления» пункт «Звук» и нажмите на него.
В окне свойств звуковой системы перейдите на вкладку «Звуки», затем используйте выпадающий список «Звуковая схема», в котором выберите вариант «Без звука» и подтвердите изменение нажатием на кнопки «Применить» и «ОК».
Вернитесь в «Панель управления» и зайдите в пункт «Учётные записи пользователей».
Откройте страницу «Управление профилями пользователей», где нажмите на «Изменить параметры контроля учётных записей».
В следующем окне передвиньте ползунок в нижнее положение «Никогда не уведомлять», после нажмите «ОК» для подтверждения.
Снова проделайте шаги 2-3, но на этот раз установите звуковую схему в положение «По умолчанию».
Перезагрузите компьютер.
Описанная последовательность действий выглядит необычно, но она доказала свою эффективность.
Способ 4: Устранение вирусного заражения
Чаще всего EXE-файлы отказываются корректно работать из-за наличия в системе вредоносного ПО. Способы обнаружения и устранения угрозы чрезвычайно разнообразны, и описывать их все не представляется возможным, однако наиболее простые и эффективные мы уже рассматривали.
Заключение
Как видим, наиболее распространённая причина сбоев в работе EXE-файлов – вирусное заражение, потому мы хотим напомнить вам о важности наличия в системе защитного ПО
Файлы EXE могут быть опасными
Многие вредоносные программы транспортируются посредством EXE-файлов, как правило, на фоне программы, которая кажется безопасной. Это происходит, когда программа, которую вы считаете подлинной, запускает повреждающий компьютерный код, который работает без вашего ведома. Фактически, программа может быть реальной, но также будет содержать вирус, или программное обеспечение может быть полностью поддельным и просто иметь знакомое, не угрожающее имя (например, firefox.exe ).
Поэтому, как и другие исполняемые расширения файлов, вы должны быть особенно осторожны при открытии EXE-файлов, которые вы загружаете из Интернета или получаете по электронной почте. EXE-файлы имеют такой потенциал, чтобы быть разрушительными, что большинство провайдеров электронной почты не разрешат их отправлять, а некоторые даже не позволят вам поместить файл в ZIP-архив и отправить его. Всегда убедитесь, что вы доверяете отправителю EXE-файла, прежде чем открывать его.
Что-то еще, что нужно помнить о файлах EXE, это то, что они когда-либо используются для запуска приложения. Например, если вы загрузили, например, видеофайл, но он имеет расширение .EXE, вы должны немедленно его удалить. Видео, которые вы загружаете из Интернета, обычно находятся в формате MP4, MKV или AVI, но никогда не EXE. Это же правило применяется к изображениям, документам и всем другим типам файлов — каждый из них использует свой собственный набор расширений файлов.
Важным шагом в смягчении любого вреда, причиненного вредоносными EXE-файлами, является поддержание и обновление вашего антивирусного программного обеспечения.
Восстановление настроек системы в AVZ
Антивирусная утилита AVZ (Антивирус Олега Зайцева) — бесплатное приложение для поиска вредоносного программного обеспечения на ПК. В программе имеется несколько инструментов выполняющих задачи по восстановлению системных настроек.
Выполните следующее:
- Скачайте AVZ с официального сайта разработчика: http://z-oleg.com/secur/avz/download.php.
- Распакуйте ZIP-архив с программой.
- Загрузитесь в безопасном режиме Windows.
Подробнее:
- Как зайти в безопасный режим Windows 10 — 4 способа
- Как запустить безопасный режим Windows 8.1 (Windows
- Как зайти в безопасный режим Windows 7 — 4 способа
- Запустите программу AVZ на компьютере.
- Войдите в меню «Файл», нажмите на пункт «Восстановление системы».
- В окне «Восстановление настроек системы» установите флажок в опции «Восстановление параметров запуска .exe, .com, .pif файлов».
- Нажмите на кнопку «Выполнить отмеченные операции».
- Перезагрузите ПК.
- Войдите в обычный режим запуска Windows, чтобы убедиться была ли решена проблема и продолжить текущую работу.
Если ничего не получилось
Не стоит отчаиваться, если ни один из способов не помог, всегда следует сначала попробовать другой, поскольку ошибиться несложно, а конкретная программа может не подходить к вашей модели телефона. Если, несмотря на все ваши усилия, вам не удалось открыть exe на Android, то причин может быть несколько:
- ваша версия Android может не подходить ни для одной из программ – рекомендуется обновить ее или вернуться к предыдущей версии, если вы недавно обновляли ее;
- в телефоне может не хватать свободной памяти для корректной работы эмуляторов;
- загруженный файл поврежден – этот вариант наиболее распространен и исправить его несложно, достаточно заново загрузить исходный код из другого источника.