Как заменить файл в инсталляторе

Обновлено: 06.07.2024

Возможность модификации дистрибутивов на основе Windows Installer всегда прельщала системных администраторов и специалистов системной поддержки. Рассмотрим один из компонентов Windows Installer Resource Kit – orca.exe. Эта утилита специально разработана для решения задач такого рода.

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

Уделим внимание программному управлению базой данных, хранящейся в msi-файлах.

Это сервис установки и конфигурирования программных продуктов, который входит в состав операционной системы. Также он может устанавливаться как пакет обновления или отдельный дистрибутив.

Windows Installer, как и любое другое быстрое исправление, поддерживает ряд ключей командной строки, обеспечивающих управление автоматической установкой пакета:

  • /norestart – не перезагружать компьютер после установки обновления;
  • /queit – выполнить установку в «тихом» режиме;
  • /help – вывод справки на экран, содержащей ключи и их краткое описание.

Двойным щелчком мыши по файлу с расширением *.msi осуществляется запуск утилиты:

%SystemRoot%System32msiexec.exe /i *.msi

В таблице 1 приведен список часто используемых параметров командной строки, обеспечивающих автоматическую установку приложения.

Таблица 1. Параметры командной строки msiexec.exe

Установка приложения в обычном режиме

Переустановка приложения. Если задан только ключ /f, то имеется в виду команда /fpecsm:

p – восстановление удаленных файлов;

о – обновление до более новой версии;

e – полная переустановка приложения той же версии;

d – восстановление удаленных файлов и перезапись файлов более старой версии;

c – восстановление удаленных файлов или перезапись файлов, если CRC
(контрольная сумма) установленных файлов не совпадает с CRC файлов в дистрибутиве;

а – переустановка всех файлов;

u – перезапись всех ключей реестра, касающихся данного приложения в ветвях HCKU, HCU;

m – перезапись всех ключей реестра, касающихся данного приложения в ветви HCLM;

s – перезапись всех ярлыков

Выполнение административной установки приложения

Управление публикацией программного продукта:

u – публикация для текущего пользователя;

m – публикация для всех пользователей;

g – идентификатор языка (управление установкой языкового интерфейса)

Определение уровня пользовательского интерфейса во время установки:

n – отсутствие интерфейса;

b – базовый интерфейс (по умолчанию);

r – сокращенный интерфейс;

f – полный пользовательский интерфейс

Обычно для установки приложения в автоматическом режиме используют команду:

%SystemRoot%System32msiexec.exe /fa /qn /jm *.msi

где *.msi – полный путь к файлу с расширением MSI, например:

c:Windowssystem32msiexec.exe /fa/qn/jm "acdsee10.msi"

Windows Installer SDK

По умолчанию каталог установки пакета Windows Installer SDK –%ProgramFiles%Windows Installer 4.5 SDK.

В его комплекте несколько утилит, в том числе дистрибутив программы ORC, расположенный в папке Tools.

Установка orca.exe осуществляется в папку %:ProgramFiles%Orca запуском файла orca.msi.

Запуск программы осуществляется через «Пуск > Программы > orca.exe» (см. рис. 1). После успешного запуска приложения необходимо открыть msi-файл, который необходимо модифицировать. В данном случае в качестве опытного образца использовать дистрибутив AcdSee10 – файл ACDSee 10 Photo Manager.msi, находящийся в каталоге c:ACDSee.

Рисунок 1. Внешний вид утилиты orca.exe

Замечание: дистрибутив ACDSee 10 представляет собой *.ехе-файл – архив, который при запуске распаковывает msi-файл в папке C:Documents and Settings\%username%Local SettingsApplication DataDownloaded InstallationsACDSee 10 Photo Manager.msi. Именно этот файл необходимо открыть утилитой orca.exe.

Orca.exe рассматривает msi-файл как SQL-базу данных, где msi-файл – это база данных, левая колонка таблицы (см. рис. 2), в которой хранятся различные настройки и списки. Правая часть – список полей выбранной таблицы с соответствующими значениями.

Рисунок 2. Создание новых полей в таблице

В базе данных пакета среди множества таблиц, которые можно объединить в группы, выделим самые важные из них:

  • базовые таблицы;
  • файловые таблицы;
  • таблицы информации о программе.

К базовым таблицам относят таблицы, описывающие параметры работы инсталлятора, устанавливаемые компоненты. Группа состоит из 11 связанных таблиц, краткое описание которых приведено в таблице 2.

Таблица 2. Базовые таблицы MSI Installer

Содержит список всех функций программного продукта

Содержит описание условий, определяющих порядок установки каждой функции, описанной в таблице

Связывает функции с компонентами

Содержит список всех компонентов приложения

Содержит список всех каталогов, необходимых для инсталляции

Содержит список функций и компонентов, публикуемых для использования в других приложениях

Содержит информацию, необходимую для установки приложений COM+

Связывает компонент, заданный в столбце Component_Application (обычно .exe), с компонентом, заданным в столбце Component_Shared (обычно .dll)

Содержит информацию для значительных обновлений программного продукта

Эта группа таблиц содержит информацию обо всех файлах, входящих в комплект поставки программного продукта. Большая часть этих файлов перечислена в таблице File. Хотя таблица Directory не входит в эту группу, она тесно связана с ней, так как отражает структуру каталогов приложения. В таблице 3 приведен список файловых таблиц и их краткое описание.

Таблица 3. Файловые таблицы MSI Installer

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

Содержит список файлов, которые необходимо удалить при выполнении операции RemoveFiles

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

Содержит список саморегистрирующихся модулей. Installer не регистрирует EXE-файлы

В таблице описывается набор дисков инсталляции

Содержит информацию о привязках исполняемых файлов или DLL

Содержит список файлов, которые необходимо перенести во время инсталляции из исходного каталога в заданный каталог

Содержит список дублируемых файлов либо в другой каталог с тем же именем, что и исходный файл, либо в тот же каталог, но с другим именем

Используется для задания переменных окружения

Хранит файлы иконок. Каждая иконка этой таблицы во время инсталляции копируется в отдельный файл на диске

Таблицы информации о программе

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

Таблица 4. Файловые таблицы программы

Хранятся все свойства пакета инсталляции

Содержатся двоичные данные для иконок, растров и т. п. Также здесь хранятся данные для пользовательских операций

Используется для поиска шаблонов форматирования при обработке ошибок. Installer имеет свой собственный механизм обработки ошибок

Здесь хранится вся информация, необходимая для создания файловых ярлыков

Эта таблица содержит информацию о необходимом дисковом пространстве для каждого компонента приложения

Доступ к msi-файлам программным способом

Для обеспечения программного управления базой данных, хранящейся в msi-файле, используется шаблон, приведенный в листинге 1. Необходимо отметить, что шаблон чтения данных отличается от шаблона коррекции данных. О нем будет рассказано отдельно.

Листинг 1. Шаблон доступа к базе в msi-файле

Set obj = CreateObject ("WindowsInstaller.Installer")

Set base = obj.OpenDatabase (MSI,Mode)

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

На следующей строке осуществляется подключение к базе данных с помощью метода OpenDatabase, который имеет два аргумента. Первый из них – имя базы, которым является полный путь к msi-файлу. Второй – режим доступа к базе данных:

На третьей – реализовано выполнение задаваемого запроса. SQL-запрос задается с помощью метода OpenView, а выполнение запроса – с помощью метода Execute.

Напомним, что в SQL-запросе регистр названия полей и имен таблиц имеет значение.

В последней строке осуществляется запись сделанных изменений в базе с помощью команды Commit.

Работа с таблицами в orca.exe

Рассмотрим подробнее структуру таблиц, содержащихся в msi-файле. Orca – мини-редактор SQL-таблиц, хранящихся как составная часть дистрибутива.

С полями таблиц баз можно совершать следующие действия:

  • чтение существующих полей;
  • создавать новые поля;
  • удалять поля;
  • изменять поля.

Чтение существующих полей

Для реализации шаблона поиска используется шаблон (см. листинг 2), отличный от приведенного в листинге 1. Это объясняется тем, что запись, удаление, замена осуществляются у единичного поля, а вывод на экран осуществляется для всех полей.

Трансформация листинга осуществляется в третьей строке листинга 1. Она разбивается на две подстроки – это строки 3 и 4 в листинге 2. Здесь разносятся методы OpenView и Execute.

Далее осуществляется чтение массива строк. Обратите внимание на то, что в запросе SELECT поля могут быть перечислены только по именам. Значение «*» в данном случае не работает. А во время чтения данных необходимо указывать нумерацию полей (Record.StringData(1)), начиная с единицы (1).

В листинге 2 приведен пример чтения всех полей (Property, Value) таблицы Property файла ACDSee 10 Photo Manager.msi:

Листинг 2. Чтение полей в указанной таблице

Set obj = CreateObject("WindowsInstaller.Installer")

Set ob = obj.OpenDatabase ("C:ACDSeeACDSee 10 Photo Manager.msi",0)

set View=ob.OpenView("SELECT Property, Value FROM Property")

Set Record = View.Fetch

If Record Is Nothing Then Exit Do

Wscript.Echo Record.StringData(1) + vbTab+vbTab+Record.StringData(2)

Set View = Nothing

Создание новых полей

Создание новых полей используется достаточно часто, например, для того чтобы записать в дистрибутив программы ее серийный номер. Для этого необходимо добавить в таблицу Property поле PIDKEY с соответствующим значением, содержащим серийным номер продукта. Чтобы добавить новое поле, необходимо установить курсор на нужную таблицу (см. рис. 3) и, нажав в произвольной ее части правую кнопку мыши, выбрать пункт Add Row или нажать комбинацию клавиш . В появившемся диалоговом окне будет приведен список доступных полей. Необходимые значения можно присвоить в этом же окне.

Рисунок 3. Изменение параметра

Аналогичную операцию можно выполнить программным способом (см. листинг 3). Для этого необходимо вызвать объект WindowsInstaller.Installer. На основе шаблона, приведенного в листинге 1, сформируем листинг 3. В качестве второго параметра метода OpenDatabase необходимо указать 1, поскольку выполняется операция записи данных.

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

Листинг 3. Создание нового атрибута в таблице

Set a = CreateObject("WindowsInstaller.Installer")

Set b = a.OpenDatabase ("C:acdseeACDSee 10 Photo Manager.msi",1)

b.OpenView("INSERT INTO Property ?

(Property.Property, Property.Value) VALUES ("PIDKEY", "1234567890")").Execute

Удаление существующих полей из таблицы

Удаление какого-либо поля осуществляется в соответствии со следующим алгоритмом:

  • установить курсор на таблицу, в которой необходимо удалить параметр;
  • установить курсор на удаляемый параметр в таблице;
  • нажать кнопку на клавиатуре или правую кнопку мыши, а в контекстном меню – DELETE;
  • подтвердить намерение удалить параметр.

Эту же задачу можно решить программным способом (см. листинг 4), используя шаблон 1. Для обеспечения возможности записи в таблице необходимо установить второй параметр метода OpenDatabase равным единице (1).

Листинг 4. Удаление существующего атрибута в таблице

Set a = CreateObject("WindowsInstaller.Installer")

Set b = a.OpenDatabase ("C:acdseeACDSee 10 Photo Manager.msi",1)

b.OpenView("DELETE FROM Property WHERE "PIDKEY"="1234567890")").Execute

Изменение значений существующих полей

Изменение значения осуществляется путем установки курсора в необходимую ячейку двойным щелчком левой кнопки мыши (см. рис. 3).

Программное изменение свойства осуществляется по тем же правилам. По сравнению с предыдущими двумя случаями, изменяется только запрос.

NSIS (Nullsoft Scriptable Install System)
Скриптовая система создания инсталляционных пакетов от авторов Winamp

Основные характеристики:

Последняя версия ветки 2.х: NSIS 2. 51 (от 1 апреля 2016 г., статус ветки - Old Releases)
Последняя версия ветки 3.х: NSIS 3. 07 (от 24 июля 2021 г.)

Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]

NSIS Unpacker
7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.
Обратите внимание, что 7za не поддерживает распаковку.

Мат в любой форме на портале запрещён. Пообщаетесь с администратором.

Это очень не сложно сделать. Достаточно поставить условие перезаписи:

Вы не сможете полностью декомпилировать скрипт - инклюды и макросы разворачиваемые компилятором не имея всех исходников не восстановить.

Два варианта - 7-Zip v4.65+ (т.е. от 4.65 и новее) или связка Far Manager + плагины Observer v1.8x или входящий в дистрибутив Far Manager v2.0.1807 STABLE или любой версии Far Manager 3.x плагин arclite - он основан на библиотеке 7z.dll из состава 7-Zip v9.xx, а потому умеет распаковывать и инсталляторы NSIS в том числе.

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

Подскажите, как организовать вызов ф-ций из внешней dll.
Ф-ции есть 2 типов:
const char *GetStr(void)
INT64 GetInt(void)

т.е. ф-ции параметров не принимают, а возвращают значения: указатель на буфер и число int64.

Фишкой есть то, что память под буфер выделяется dll-кой.

Тупо в лоб
File /oname=Test.dll "Test.dll"
System::Call "Test::GetStr t.r0"
System::Call "Test::GetInt l.r1"

не получается.

Ключ ищите на этой же странице

там у меня всё расписано, все процедуры описаны, если есть вопросы - задавайте.

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

Используя механизмы явного и неявного связывания, Windows сначала выполняет поиск "известных библиотек DLL", таких как Kernel32.dll и User32.dll. Затем Windows выполняет поиск библиотек DLL в следующей последовательности:

1) Каталог, в котором находится исполняемый модуль текущего процесса.
2) Текущий каталог.
3) Системный каталог Windows. Путь к этому каталогу извлекается с помощью функции GetSystemDirectory.
4) Каталог Windows. Путь к этому каталогу извлекается с помощью функции GetWindowsDirectory.
5) Каталоги, указанные в переменной среды PATH.

Наведите курсор на файл, правой кнопкой мыши выберите: "свойства", затем, в открывшемся окне вверху, выберите вкладку "Предыдущие версии" и верните файл в исходное состояние.

P.S. В зависимости от Вашей операционной системы, для таких манипуляций с файлами Вам наверняка понадобятся "права администратора".

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

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


Для восстановления заменённого файла достаточно в контекстном меню выбрать пункт "Восстановить прежнюю версию".


Чем меньше времени прошло с момента перезаписи, тем больше шансов на восстановление, так как постоянно происходит обновление резервных копий.

Также можно настроить утилиту "Архивация и восстановление".

Имеется возможность восстановления предыдущей версии и с помощью специальных программ, например, WinHex.


Пару дней назад столкнулся с одной проблемой, после обработки ОЧЕНЬ большого количества фотографий с помощью софта, он ложил все файлы в одну папку.

Хоть изначально в программе и стоит функция перезаписи файлов оригинала на обработанный, но работает функционал криво и заменяет не все файлы.

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

Для визуального представления, смотрите пример:

Есть Одна папка (/photo-start/), в которой вложено более 100 папок (/photo-start/name1/name2/2010/) , после обработка все фотографии/файлы были помещены в папку /finish-photo/

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

Твиттер подсказал решение и дал надежду решить эту проблему:

@vasilenkolife проще было их после обработки кидать в свои папки. А теперь, наверное, только bash-скрипт писать с find.

Так как с bash я не силен, то решил поискать скрипт/софт который уже возможно написан. Но, ничего талкового не нашел, все работало не так как нужно и заменяло не все файлы (возможно из названий на русском)

Через пару минут поиска нашел другой простой способ замены файлов с сохранением иерархии папок:

Замена вашего файла на компьютере довольно распространена. Это может произойти случайно или вы могли бы заменить его, только чтобы узнать, что в вашем старом файле есть некоторые вещи.

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

Откройте «Панель управления» вашего компьютера. Нажмите на меню «Пуск» и найдите «Панель управления».

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

После нажатия «Резервное копирование данных» выберите «Восстановить файлы и настройки», затем нажмите кнопку «Далее». Появится окно со списком. Установите флажки для файлов, которые вы хотите восстановить, затем нажмите «Закрыть». Файлы, на которые вы нажали, теперь возвращены на ваш компьютер.

Этот параметр доступен только для компьютеров, на которых установлена резервная копия. Вы можете проверить, включен ли параметр резервного копирования, ища имя вашего файла с расширением «.wbk».

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

В Интернете существует множество внешних программ резервного копирования / восстановления. Некоторые программы бесплатны, хотя есть некоторые программы, которые вам придется покупать. Вы можете проверить Bounce Back Ultimate или Glary Utilities.

Установите программу.

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

Запустите программу.

После установки программы запустите программу. Дважды щелкните значок рабочего стола или откройте программу для ее запуска.

Восстановите свои файлы.

Вы найдете вариант, который позволит вам восстановить ваши файлы. Если у вас есть Bounce Back Ultimate, просто нажмите «восстановление одной кнопкой», чтобы восстановить замененные файлы.

Если у вас есть Glary Utilities, перейдите на вкладку «Модули», затем нажмите «Конфиденциальность и безопасность». Нажмите «File Undelete», затем откроется новое окно. Выберите место, где был сохранен последний файл, затем нажмите «Сканировать». Glary Utilities затем сканирует местоположение и восстанавливает все удаленные файлы. Сохраните файл под новым именем файла, чтобы сохранить его.

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

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



Программа для редактирования exe файлов, которая поставляется с поддержкой создания резервных копий и пакетного экспорта. Она позволяет просмотр, замену, добавление, удаление и извлечение ресурсов, расположенных в 32-разрядных и 64-разрядных исполняемых файлах Windows и файлах ресурсов (*.res).

Способ первый: традиционная распаковка

exe файл

Традиционная распаковка не требует установленных в системе вспомогательных программ. Все, что нужно, — уже предустановлено в Windows.

Итак, процесс распаковки EXE-файла следующий:

  1. Откройте файловый менеджер «Проводник».
  2. Перейдите в папку, в которой находится файл с расширением EXE.
  3. Запустите его. Для этого достаточно дважды кликнуть по его иконке левой кнопкой мыши. Иногда для запуска требуются права администратора — в этом случае вам необходимо сначала нажать правую кнопку мыши, а потом выбрать соответствующий пункт из меню.
  4. Запустится окно инсталлятора. Именно в нем вам необходимо будет задать параметры распаковки.
  5. В первом окне вам предложат выбрать язык установщика.
  6. Затем появится приветственное окно. В нем обычно указано, что именно за программа будет установлена в систему.
  7. Далее надо будет принять пользовательское соглашение.
  8. Потом выбрать папку, в которую будут распакованы все файлы.
  9. После этого вам предложат создать дополнительные ярлыки в меню «Пуск» и на рабочем столе.
  10. После этого этапа начнется распаковка всех файлов установщика.

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












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

Не смотря на то, что Resource Tuner предназначен для открытия и редактирования любых 32-/64-битных исполняемых файлов, существуют некоторые виды EXE файлов, в которых ресурсы практически отсутствуют.

1. Файлы, созданные при помощи Visual Basic.

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

2. Файлы .EXE размером в гигабайт и более.

Поскольку Resource Tuner — это 32-битная программа, существуют естественные ограничения для размещения образа открываемого файла в виртуальной памяти в пределах первого гигабайта. Файл размером в гигабайт и более туда просто не поместится.

3. Самораспаковывающиеся архивы в виде EXE файлов.

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

4. Инсталляторы других программ.

В таких файлах в ресурсах ничего нет, кроме иконы и информации о версии. Очень похожи на п.3. Файл инсталлятора можно рассматривать как контейнер, внутри которого содержится другой .EXE файл в сжатом виде и подпрограмма для его извлечения. К тому же, программы для создания инсталляторов используют разные алгоритмы для хранения внутри себя архивированных данных.

Resource Tuner работает на всех версиях Windows

от 2000 и XP до 8 и 10.

Минимальные системные требования:

Процессор Intel Pentium® или AMD K5 166 MHz 16 MB RAM

Copyright © 2020 Heaventools Software. Все права сохранены.


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

Способ второй: извлечение установочных файлов

Второй метод кардинально отличается от первого. Если в первом случае нужно было распаковать файлы программы для того, чтобы после этого запустить ее на компьютере, то в этом случае нужно извлечь файлы самого инсталлятора, чтобы произвести с ними манипуляции. В примере представлена специальная программа под названием ResourcesExtract. Работает она следующим образом:

  1. Скачайте, установите и запустите приложение.
  2. Появится окно, в котором вам в первую очередь необходимо указать EXE-файл, который вы будете распаковывать. Делается это в поле Filename.
  3. После этого понадобится указать папку, в которую будут распакованы файлы. Делается это в поле Destination Folder.
  4. После этого можно приступать к распаковке. Для этого нужно нажать кнопку Start.
  5. При желании вы можете задать дополнительные параметры. Например, указать, какие именно файлы распаковывать. Делается это в области под названием Resource types to extract.

как распаковать exe файл

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

PE-Explorer

Под первым номером идет довольно распространенный редактор PE-Explorer. В отличие от своего собрата Resource Tuner, он способен редактировать не только ресурсы приложения, но и код. Несмотря на свой почтенный возраст, исправно работает даже в Windows 10. К сожалению, PE-Explorer умеет работать только с 32-битными файлами и при попытке открыть 64-битный бинарник сообщает об ошибке.

Утилита обладает богатой функциональностью: отображает все элементы заголовка РЕ, определяет, к каким DLL происходит обращение, предсказывает поведение программ и логику взаимодействия с другими модулями и даже открывает запакованные UPX, UPack или NSPack файлы. Кроме того, она позволяет просматривать и редактировать секции PE-файла, исследовать содержимое таблиц импорта и экспорта и проверять наличие и целостность цифровой подписи. В качестве «вишенки на торте» тут присутствует полноценный дизассемблер.

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

Запустим редактор и сразу же откроем наше подопытное приложение. PE-Explorer первым делом выводит информацию о заголовке PE-файла. Для получения сведений об остальных разделах достаточно пощелкать кнопки на панели инструментов. Жмем пиктограмму Disassembler и открываем окно для выбора поддерживаемых инструкций: SSE, SSE2 и прочее. Указываем необходимые и начинаем процесс нажатием кнопки Start Now.

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

Так как мы с помощью отладчика нашли адрес инструкции, которая отвечает за ход выполнения программы, то попробуем проверить этот адрес в PE-Explorer: нажимаем Ctrl-F (или Search → Find) и вводим адрес для поиска: 402801.


Что ж, я немного разочарован результатом дизассемблирования. Даже отладчик в этом месте показывает мне инструкцию test, а здесь я вижу лишь начало ее шестнадцатеричного кода: 0х85. При этом я не могу редактировать код! Зачем мне все эти возможности, если утилита не позволяет делать самую базовую вещь?

Я даже не могу списать этот недочет на ограничения демоверсии, так как о ее отличиях от платной ничего толком не сказано. Допускаю, что с теми целями, для которых этот продукт предназначен (статическое изучение приложения и вектора его выполнения), он справляется хорошо. Однако нашим требованиям программа не соответствует, поэтому смело вычеркиваю PE-Explorer из списка кандидатов.












Как распаковать EXE-файлы на Mac

программа для распаковки exe файла

Распаковка в операционной системе Mac происходит совсем другим способом. Для того, чтобы достать сами файлы с EXE, вы можете использовать простой архиватор. Принцип распаковки такой же, как и с архивами. В статье показано, как распаковать EXE-файлы, чтобы после запустить программу на компьютере. Именно таким образом вы можете запускать программы Windows в операционной системе Mac.

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

распаковать exe файл на mac

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

Ошибки при открытии файла

Если при открытии файла возникает ошибка, то скорее всего по трём причинам: файл защищён, файл 16-битный, или это вообще не исполняемый файл.

1. Ошибка: Файл повреждён, сжат упаковщиком или защищён протектором.

Вероятность того, что файл сжат для уменьшения размера, весьма велика. Упаковщиков и протекторов для исполняемых файлов существует не один десяток, и всё время появляются новые. Resource Tuner поддерживает распаковку только одного, зато самого распостранённого упаковщика — UPX. Остальные упаковщики не поддерживаются, и вам придётся самостоятельно заниматься распаковкой файла, прежде чем вы сможете открыть файл для просмотра или редактирования.

Данная ситуация не рассматривается, как ошибка программы. Мы не собираемся ни бороться с попытками других авторов программ защитить свои творения от взлома, ни поддерживать распаковку нескольких десятков разных упаковщиков, среди которых есть и коммерчиские продукты, и самоделки.

Восстановление запуска exe вручную

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

  • Нажмите Win + R и введите regedit;
  • Найдите HKEY_CLASSES_ROOT\.exe, проще всего найти среди большого множества разделов, введя название на клавиатуре, только в быстром темпе;
  • Правый клик по значению «По умолчанию» и выберите «Изменить»;
  • Замените параметр на слово exefile;


  • Теперь в том же разделе найдите группу exefile;
  • Откройте параметр «По умолчанию» двойным кликом и установите значение “%1” %*
  • Далее перейдите внутрь в раздел shell и затем open;


  • Теперь снова в «По умолчанию» вставьте значение “%1” %*
  • Перезагрузите ПК.

Этот ряд действий позволяет добиться поставленной цели и восстановить ассоциацию файлов exe. Подобным образом можно делать и с другими форматами, но лучше воспользуйтесь специальными утилитами, вроде предыдущей.

Также следует знать, что существуют тяжелые варианты проблемы, когда даже строка «Выполнить» не работает. Тогда нажмите Ctrl+Alt+Del, затем выберите «Файл» и «Выполнить».

Особенности работы с DLL файлами и возможные проблемы

Некоторые DLL не удастся не только изменить, но даже открыть. Это происходит с защищенными библиотеками и проблема не решается без специальных программ для взлома.

Для восстановления работоспособности Windows существует масса способов – точки отката, бэкап, бэкап и откат её реестра, восстановление целостности её файлов, переустановка Microsoft Visual C++ и прочих системных компонентов. Но только предварительно сделанный бэкап системы можно считать панацеей, универсальным «лекарством» от всех возможных проблем. Как быть, если нужно восстановить системные файлы, а у нас ни бэкапа нет, ни инструмент восстановления системных файлов не работает?

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

Замена системных файлов Windows вручную – операция, требующая определённых знаний и навыков в работе операционной системы от Microsoft. Нам нужно точно знать, какой файл системы повреждён или удалён, чтобы мы могли его заменить дубликатом. К примеру, если мы при открытии системного управления дисками видим уведомление типа этого,

Уведомление

это значит, что повреждён или удалён файл diskmgmt.msc – файл запуска непосредственно утилиты управления дисками. В этом случае мы можем попытаться решить проблему путём восстановления целостности системных файлов, т.е. запустить в командной строке известную команду sfc/scannow . Но этот механизм системы не всегда даёт положительные результаты и часто завершается уведомлением о невозможности восстановления.

Sfc - scannow

В таком случае далее нужно предпринимать действия по восстановлению хранилища системных ресурсов и потом снова запускать sfc/scannow . Ручная замена проблемных системных файлов – более топорная операция, плюс к этому, требующая, как упоминалось, чёткого понимания, какие именно файлы по какому пути нужно заменять. Но если эти файлы и пути известны, то это более быстрое и надёжное решение проблемы.

Что для этого необходимо? Нам понадобится установочный ISO нужной версии Windows. Открываем его архиватором 7-Zip.

Установочный ISO

Открываем папку «sources», далее – «install».

7-Zip

Внутри файла «install» выбираем папку с тем или иным порядковым номером. Порядковые номера – это индексы редакций Windows. Если, например, в нашем случае нужно восстановить файл diskmgmt.msc , нам без разницы редакция, эта системная утилита есть в любой редакции Windows. Поэтому мы просто выберем редакцию Pro , она идёт под номером 4.

Редакция Windows

Но если файл нужного системного компонента есть только в определённой редакции, например, только в Pro, то необходимо указывать индекс конкретно этой редакции. А узнать индексы редакций в составе дистрибутива можно с помощью командной строки. Нужно подключить установочный ISO для отображения в системе и прописать в команде Dism путь к файлу install на борту этого ISO , вот так:

Dism /Get-WimInfo /WimFile:J:\sources\install.wim

Здесь вместо буквы J каждый должен подставить свою букву диска подключённого ISO . И если файл install имеет формат не «.wim», а «.esd», то, соответственно, в конце команды необходимо указать этот формат. В ответ на эту команду получим справку о соответствии индексам редакций Windows.

CMD - Dism

Определившись с редакцией, распаковываем нужный системный каталог. В нашем случае необходимо заменить файл утилиты diskmgmt.msc , следовательно, мы распаковываем каталог «Windows» . Кликаем его и жмём «Extract».

Extract

Указываем путь распаковки.

И после распаковки ищем файл утилиты diskmgmt.msc .

Файл утилиты

При поиске обнаружилось несколько дубликатов diskmgmt.msc – в оригинальном месте хранения файла, в хранилище системных ресурсов (т.е. в папке WinSxS) , в других системных подкаталогах. Мы берём файл, находящийся по исходному его пути хранения, в папке «System32» . Копируем его.

Копируем его

И помещаем этот файл в папку «System32» внутри каталога «Windows» на диске С текущей системы.

Проводник

Подтверждаем вставку или замену файла.

Подтверждаем вставку

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

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

Читайте также: