Автоматические распаковщики инсталляторов
Назначение программ для распаковки инсталляторов понятно. В настоящее время инсталляторы сами представляют собой достаточно сложные программы, вносящие изменения в систему или реестр, создающие ярлыки, записывающие файлы в различные папки. Но иногда инсталляторы выполняют нежелательные действия, например, пытаются без ведома пользователя установить различные тулбары или рекламные модули, отправляют разработчику информацию о факте установки, не дают выполнить установку без ввода пароля или серийного номера, и прочие гадости. В этом случае нам требуется извлечь из дистрибутива все содержащиеся в нем файлы, не запуская сам инсталлятор. Кроме файлов из некоторых инсталляторов можно извлечь так называемые скрипты установки, в которых прописывается последовательность действий, из них можно узнать какие ключи реестра меняются, какие файлы и куда записываются и т.п. Также извлеченные из инсталляторов скрипты можно в дальнейшем использовать для создания перепакованных вариантов программ, например, уже включающие в себя файлы с отломанной регистрацией. Еще некоторые особо одаренные аффтары проверяют целостность ранее установленной программы и не дают устанавливать обновления на модифицированные инсталляции, в основном такие милые приколы встречаются на играх. Так что умение бороться с инсталляторами всегда пригодится.Скриншот программы Universal Extractor
Самым мощным и удобным инструментом для автоматической распаковки инсталляторов является программа Universal Extractor. Она представляет собой оболочку для других распаковщиков, всего поддерживается несколько десятков различных форматов, в том числе таких популярных, как распаковка Inno Setup, InstallShield, Wise Installer и других. Поддерживается русский язык, интеграция в контекстное меню Проводника Windows, продвинутые пользователи могут сохранить и посмотреть лог работы внешних модулей распаковки. На момент написания статьи хостинг с дистрибутивами и исходниками Universal Extractor недоступен, поэтому выложу Universal Extractor здесь.
Скриншот программы WinRAR
Многие инсталляторы представляют собой обычный архивный файл, к которому дописан модуль для его распаковки, то есть SFX-архив (Self-extracting архив). Поскольку распространенных алгоритмов компрессии не так много, в некоторых случаях для распаковки инсталляторов можно воспользоваться обычными архиваторами, например, WinRAR или бесплатным 7zip.
Теперь переходим к специализированным распаковщиками, ориентированным на конкретный тип инсталляторов. Наиболее мощный и популярный инструмент для создания инсталляторов - бесплатный Inno Setup, он обладает скриптовым языком, позволяющим делать практически неограниченные по опциям дистрибутивы.
Скриншот программы Inno Setup Unpacker
innounp, распаковщик инсталляторов Inno Setup версий от 2.0.8 до 5.3.11. Inno Setup Unpacker - консольная утилита, поэтому для удобства работы сделано несколько графических оболочек, например, IS Unpacker Explorer (русскую версию можно найти на сайте MSILab) или InnoSetup And NSIS Unpacker Shell (требует 7zip и innounp).
Скриншот программы InnoCry
Вспомогательная утилита InnoCry предназначена для обхода паролей на инсталляторах, созданных Inno Setup. Запускаете сперва инсталлятор, в котором требуется ввод пароля, параллельно запускаете InnoCry. Затем InnoCry несколькими способами пытается пропатчить в памяти исполняемый код инсталлятора, чтобы он не требовал ввода пароля. В последней версии также появилась опция активации заблокированных кнопок.
Скриншот программы InnoExtractor
InnoExtractor сделан на базе архиватора 7zip. Позволяет просматривать и извлекать содержимое инсталляторов Inno Setup. Большой плюс в том, что InnoExtractor постоянно совершенствуется и поддерживает как старые, так и новейшие версии этого инсталлятора.
Скриншот архиватора 7zip
Для распаковки инсталляторов, созданных при помощи Nullsoft Scriptable Install System или сокращенно NSIS, удобнее всего пользоваться бесплатным архиватором 7zip. Он без труда открывает такие инсталляторы для просмотра и позволяет извлекать из них нужные файлы.
E_WISE 2002.03.29 - консольная утилита для извлечения файлов из WISE-инсталляторов. Поддерживаются практически все версии Wise-инсталляторов, в комплекте есть версии распаковщика для DOS, Windows и Linux, а также документация на английском и немецком языках.
Скриншот программы HWUN
HWUN (Heuristic Wise UNpacker) также предназначен для распаковки инсталляторов WISE, но в отличие от предыдущей программы использует эвристические алгоритмы для поиска необходимых сигнатур и данных, так что есть большая вероятность, что он будет работать и с более новыми версиями инсталляторов.
Setup Factory Unpacker - консольный распаковщик инсталляторов Setup Factory версии 5 и 6. Как признается сам автор, имеют место быть глюки и баги, так что пригодится больше для коллекции.
Скриншот программы InstallShield (by one exe-file) Unpacker
InstallShield (by one exe-file) Unpacker - автоматический консольный распаковщик двух из трех известных типов инсталляторов, созданных программой InstallShield. Это одиночный cab-файл, упакованный в msi-контейнер, а также набор из установочных файлов и cab-архива, также помещенный внутрь msi-файла (Microsoft Installer). Третий тип, использующий шифрование, этим распаковщиком не поддерживается.
Скриншот программы Less MSIerables
Less MSIerables также используется для извлечения файлов из MSI-контейнеров, но имеет графический интерфейс и может встраиваться в Проводник Windows. Кроме извлечения файлов показывает всю дополнительную информацию, содержащуюся в инсталляторе.
Скриншот программы Orca MSI Editor
Orca MSI Editor - одна из составных частей пакета "Windows SDK Components for Windows Installer Developers" от MicroSoft. Скачать его отдельно можно здесь, так как ее разработка официально уже не поддерживается. Профессиональный инструмент, ориентированный больше на модификацию самого инсталлятора. С помощью Orca можно сделать многие интересные вещи, например, сразу прописать серийник в поля ввода, заменить текст лицензии, изменить дефолтные опции установки и так далее.
Скриншот программы JSWare MSI Unpacker
JSWare MSI Unpacker - одна из новых разработок. Позволяет просматривать и извлекать файлы, а также смотреть какие настройки инсталлятор вносит в реестр при установке. Всячески рекомендую к использованию.
Остался последний вопрос: а как определить, с помощью какой программы был собран тот или иной инсталлятор? Ответить на этот вопрос помогут программы для анализа исполняемых файлов. Например, PEiD четко определяет инсталляторы как "Inno Installer 5.1.2 [Overlay]" или "Nullsoft PiMP Stub [Nullsoft PiMP SFX]", так что проблем с идентификацией и выбором нужного инструментария быть не должно.
Просмотров: 137863 | Комментариев: 42
Метки: реверсинг
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Некто прохожий
(06.02.2023 в 15:14):
Братан... Сайт просто бомба, в одном месте собрано столько годноты!!! Респект и уважение!!!
dominzh62
(29.05.2019 в 14:37):
Классная статья !!! Ваш сайт в немногом числе из самых, даже трудно подобрать слово, ... суперских что-ли, короче - из лучших в мире, пожалуй. Дай бог Вам процветания на долгие годы лет до 120. Так держать !!!
ManHunter
(19.09.2017 в 17:17):
Не проблема, добавил.
Безымянный
(19.09.2017 в 16:24):
Inno Setup Unpacker Shell - ссылка на офсайте протухла. Выложи у себя.
ManHunter
(17.06.2016 в 13:48):
Универсального решения, кроме головы и рук, нет.
ApuoH
(17.06.2016 в 12:59):
Подскажи, чем извлечь звуки с игры алавар.
в текущих и ранее сборках использовали инсталятор NSIS
но вот только там нет файлов, хоть какое отношение имеющийся к звукам.
распаковал через 7-zip
UniExtract Installer (5.3 MB) - nsis распаковать не смог ошибку выдал
UniExtract Binary Archive (4.95 MB) - распаковал Nsis все тоже самое, но вот сайт который по ссылке с вирусами.
в текущих и ранее сборках использовали инсталятор NSIS
но вот только там нет файлов, хоть какое отношение имеющийся к звукам.
распаковал через 7-zip
UniExtract Installer (5.3 MB) - nsis распаковать не смог ошибку выдал
UniExtract Binary Archive (4.95 MB) - распаковал Nsis все тоже самое, но вот сайт который по ссылке с вирусами.
lvlr
(26.12.2015 в 12:32):
Чем бы распаковать vc_redist.x86.exe версии 2015 года??
Сейчас качаю полный пакет VisualStudio 2015 - может там в отркрытом доступе лежит?
Сейчас качаю полный пакет VisualStudio 2015 - может там в отркрытом доступе лежит?
ManHunter
(10.08.2015 в 15:27):
Updated, thank you!
cw2k
(09.08.2015 в 00:54):
HWUN v0.50b
added 2013-03-23 by cw2k
- Support for new Wise versions
Extended scan limit for 0x100..0xbf00 to 0x100..0x2bf00
- extended 'B' and 'R' parameter from 4 to 5 Hexdigit
http://bit.do/hwun
(http://files.planet-dl.org/Cw2k/Mirror/HWUN/index.html)
with 'hwun0050b.7z' just HWUN
the other 'hwun050b.7z' in
http://files.planet-dl.org/Cw2.../hwun050b.7z
also contains E_WISE_W and HWUN
added 2013-03-23 by cw2k
- Support for new Wise versions
Extended scan limit for 0x100..0xbf00 to 0x100..0x2bf00
- extended 'B' and 'R' parameter from 4 to 5 Hexdigit
http://bit.do/hwun
(http://files.planet-dl.org/Cw2k/Mirror/HWUN/index.html)
with 'hwun0050b.7z' just HWUN
the other 'hwun050b.7z' in
http://files.planet-dl.org/Cw2.../hwun050b.7z
also contains E_WISE_W and HWUN
Scr##n!!
(16.02.2015 в 19:55):
Спасибо очень полезно
xanzer
(06.07.2014 в 19:25):
Хорошая информация, помогла. Спасибо.
Tutanhamon
(29.03.2014 в 08:24):
ManHunter, нет тема топика не про создание. Но там где есть редактирование в будущем будет и создание. Рано или поздно. Да и такие инструменты как Orca используются и во время создания. В свое время без него было не реально создать нормальный инсталлятор используя Visual Studio. Сейчас есть бесплатные и мощные аналоги. А раньше особо выбора не было.
ManHunter
(28.03.2014 в 12:35):
Разве здесь тема про СОЗДАНИЕ инсталляторов?
Tutanhamon
(28.03.2014 в 09:47):
Неплохой обзор. Вообще, при создании инсталляторов есть ряд тонкостей. Все очень сильно зависит от того, что должен уметь инсталлятор.
Если вам интересно, то еще несколько бесплатных аналогов можно найти в обзоре по адресу [del]
Если вам интересно, то еще несколько бесплатных аналогов можно найти в обзоре по адресу [del]
Лавруха
(28.07.2013 в 22:32):
Гуру, подскажите, как вылечить инсталлятор 32 битной программы, не хочет ставиться на Вин7 х64. Собран на InstallShield. Прога 40000 евро, более свежую версию покупать жаба душит. Желающим покопаться дам линк на ISO.
Владимир
(05.11.2012 в 19:11):
Ну и как связаться с will shine по поводу
распаковщика любых InstallShield SFX'ов?
email не работает.
распаковщика любых InstallShield SFX'ов?
email не работает.
Алексей
(25.08.2012 в 14:35):
Спасибо!
Но у меня есть маленький вопросик, вот распаковал программу через Universal Extractor 1.6.1, внес изменения, а как теперь её запаковать обратно?
Но у меня есть маленький вопросик, вот распаковал программу через Universal Extractor 1.6.1, внес изменения, а как теперь её запаковать обратно?
VikingMC
(23.06.2012 в 08:03):
Нашёл почти все ответы на возникшие вопросы)) По крайней мере теперь ясно,в какую сторону рыть дальше)))Респект,чел!
P.S. Закладочку сделал))
P.S. Закладочку сделал))
ManHunter
(23.03.2012 в 12:44):
Ну вот, еще один камушек в огород любителей платить за софт :)
Олег
(23.03.2012 в 12:43):
СПАСИБО! Очень нужная статья. (Не жалко потраченых денег за купленное, не нравится что из тебя же потом делают лоха и пытаются еще раза 2-3 на тебе заработать)
Александр
(07.03.2012 в 19:48):
А мне по маленькому,хотел изменить код охранной сигнализации,а там подавай код инсталлятора.и где он зашит?
Super_DJ
(17.12.2011 в 22:19):
Спасибо за подборку, выручил.
will shine
(08.10.2011 в 04:18):
> InstallShield (by one exe-file) Unpacker
> Третий тип, использующий шифрование, этим распаковщиком не поддерживается.
Ковырял я как-то InstallShield'овские одноэкзешные установщики.
Там шифрование достаточно простое: генерим на основе имени файла некоторую таблицу, по которой потом с небольшими добавками dexor'им. После декодирования получаем обычный deflate, хотя допускается, что некоторые файлы могут быть не сжаты.
Функцию генерации кодовой таблицы в оригинальном коде SFX stub'а можно найти по характерным фрагментам:
.text:0040160F mov [ebp+var_4], 13h
.text:00401613 mov [ebp+var_3], 35h
.text:00401617 mov [ebp+var_2], 86h
.text:0040161B mov [ebp+var_1], 7
.text:0040161F call ds:lstrlenA
// и далее
.text:0040163C loc_40163C: ; CODE XREF: make_decoding_table+4Cj
.text:0040163C mov eax, edx
.text:0040163E lea ecx, [edx+esi]
.text:00401641 and eax, 3
.text:00401644 mov al, [ebp+eax+var_4]
.text:00401648 xor al, [edi+ecx]
.text:0040164B inc edx
.text:0040164C cmp edx, ebx
.text:0040164E mov [ecx], al
.text:00401650 jb short loc_40163C
Данную функцию вызывают две других, шифрующая (ничем не вызываемая) и дешифрующая соответственно. Если посмотреть контекст вызовов обоих, то становится понятно, что дешифратор - это та, которой предшествует ReadFile() и завершает WriteFile().
В итоге, конечно, получился полностью работающий распаковщик любых InstallShield SFX'ов, но сюда, думаю, такое постить бессмысленно.
Кому интересно - пишите на willshine закорючка willshine точка info, поделюсь.
> Третий тип, использующий шифрование, этим распаковщиком не поддерживается.
Ковырял я как-то InstallShield'овские одноэкзешные установщики.
Там шифрование достаточно простое: генерим на основе имени файла некоторую таблицу, по которой потом с небольшими добавками dexor'им. После декодирования получаем обычный deflate, хотя допускается, что некоторые файлы могут быть не сжаты.
Функцию генерации кодовой таблицы в оригинальном коде SFX stub'а можно найти по характерным фрагментам:
.text:0040160F mov [ebp+var_4], 13h
.text:00401613 mov [ebp+var_3], 35h
.text:00401617 mov [ebp+var_2], 86h
.text:0040161B mov [ebp+var_1], 7
.text:0040161F call ds:lstrlenA
// и далее
.text:0040163C loc_40163C: ; CODE XREF: make_decoding_table+4Cj
.text:0040163C mov eax, edx
.text:0040163E lea ecx, [edx+esi]
.text:00401641 and eax, 3
.text:00401644 mov al, [ebp+eax+var_4]
.text:00401648 xor al, [edi+ecx]
.text:0040164B inc edx
.text:0040164C cmp edx, ebx
.text:0040164E mov [ecx], al
.text:00401650 jb short loc_40163C
Данную функцию вызывают две других, шифрующая (ничем не вызываемая) и дешифрующая соответственно. Если посмотреть контекст вызовов обоих, то становится понятно, что дешифратор - это та, которой предшествует ReadFile() и завершает WriteFile().
В итоге, конечно, получился полностью работающий распаковщик любых InstallShield SFX'ов, но сюда, думаю, такое постить бессмысленно.
Кому интересно - пишите на willshine закорючка willshine точка info, поделюсь.
Лёня
(30.03.2011 в 23:59):
Спапсибо
Never
(21.03.2011 в 14:57):
Спасибо. Как всегда у тебя все в куче - одной головной болью меньше.
1allen
(14.03.2011 в 15:12):
для InstallShield еще очень хорош WinPack (http://www.wasm.ru/baixado.php?mode=tool&id=176)
kruvas
(26.02.2011 в 12:35):
>>Ок, тогда мне нужен пример хорошего, годного и расово верного описания
>>со всеми плюшечками и хитрыми настройками. Чтобы знать на что >>равняться, к чему стремиться.
ну зачем же передергивать? :)
пример интересного для меня описания trid я показал:
uniextract давно пользую для быстрой распаковки "в лоб" всяких инсталяторов и распаковки exe. иногда подкидываю ему в папку новый innounp. удобно, что не перебирает все подряд распаковщики, а сначала анализирует содержимое trid, пытаясь угадать что внутри. а если не выходит распаковать, предлагает запустить peid для ручного анализа. в общем удобная оболочка со спартанским интерфейсом.
>>со всеми плюшечками и хитрыми настройками. Чтобы знать на что >>равняться, к чему стремиться.
ну зачем же передергивать? :)
пример интересного для меня описания trid я показал:
uniextract давно пользую для быстрой распаковки "в лоб" всяких инсталяторов и распаковки exe. иногда подкидываю ему в папку новый innounp. удобно, что не перебирает все подряд распаковщики, а сначала анализирует содержимое trid, пытаясь угадать что внутри. а если не выходит распаковать, предлагает запустить peid для ручного анализа. в общем удобная оболочка со спартанским интерфейсом.
ezfalc0n
(17.02.2011 в 00:51):
Сначала прочитал "автоматические распаковщики" - вспомнились ночи со скриптами в IDA - автоматика все таки )
Лень все же поборола, поэтому ReadProcessMemory и на диск
Тогда задача стояла вытянуть часть кода, а иногда прикольную мелодию ХМ
обзор хороший, особенно интересен будет будущим репакерам
Лень все же поборола, поэтому ReadProcessMemory и на диск
Тогда задача стояла вытянуть часть кода, а иногда прикольную мелодию ХМ
обзор хороший, особенно интересен будет будущим репакерам
ManHunter
(16.02.2011 в 07:38):
Ок, тогда мне нужен пример хорошего, годного и расово верного описания со всеми плюшечками и хитрыми настройками. Чтобы знать на что равняться, к чему стремиться.
kruvas
(16.02.2011 в 04:34):
имелось в виду "пионерскость" изложения -
1)картинка 2)описание назначения
по типу
1) скриншот винрара и 2)это хороший архиватор rar и zip и распаковщик около десятка типов архивов.
вроде все правильно, но скучновато. интереснее бывает узнать какие то плюшечки/хитрые настройки, приемы, главные достоинства или недостатки.
но это так - ворчание под нос..
а так - uniextract давно пользую для быстрой распаковки "в лоб" всяких инсталяторов и распаковки exe. иногда подкидываю ему в папку новый innounp. удобно, что не перебирает все подряд распаковщики, а сначала анализирует содержимое trid, пытаясь угадать что внутри. а если не выходит распаковать, предлагает запустить peid для анализа. в общем удобная оболочка со спартанским интерфейсом.
1)картинка 2)описание назначения
по типу
1) скриншот винрара и 2)это хороший архиватор rar и zip и распаковщик около десятка типов архивов.
вроде все правильно, но скучновато. интереснее бывает узнать какие то плюшечки/хитрые настройки, приемы, главные достоинства или недостатки.
но это так - ворчание под нос..
а так - uniextract давно пользую для быстрой распаковки "в лоб" всяких инсталяторов и распаковки exe. иногда подкидываю ему в папку новый innounp. удобно, что не перебирает все подряд распаковщики, а сначала анализирует содержимое trid, пытаясь угадать что внутри. а если не выходит распаковать, предлагает запустить peid для анализа. в общем удобная оболочка со спартанским интерфейсом.
ManHunter
(15.02.2011 в 16:10):
Пипец, а какую еще информативность надо? Мануалы в стиле "нажмите кнопку X", "выберите файл Y", или чо? Здесь список инструментария, чтобы он всегда был под рукой, а курсы молодых бойцов тут не проводятся.
kruvas
(15.02.2011 в 16:05):
неплохо, хотя и ничего информативного. просто обзор.
но всегда приятно смотреть книжки-раскраски с картинками, чем читать "войну и мир" :)
но всегда приятно смотреть книжки-раскраски с картинками, чем читать "войну и мир" :)
ManHunter
(15.02.2011 в 14:56):
Если руки кривоваты, то будет достаточно WinRAR + SFX. В остальных случаях Inno Setup, NSIS, CreateInstall и еще куча других программ. Так сложно догадаться, да?
Толик
(15.02.2011 в 14:53):
Распаковать - ладно , как обратно запаковать после изменений , и чтоб exe был !
KeeperHorses
(14.02.2011 в 06:31):
Как распаковать cab архив на api? Пробовал с помощью библиотеки setupapi.dll, так:
invoke SetupIterateCabinet,CabNane,null,FileCallback,InstallPath
FileCallback переписать на фасм не смог... а без него не работает.
Пример брал отюда:
http://www.masm32.com/board/in...ev_next=prev
только здесь на масме, а мне нужно под фасм. К сожалению больше ни где примеров использования этой функциине под ассемблер не нашел.
invoke SetupIterateCabinet,CabNane,null,FileCallback,InstallPath
FileCallback переписать на фасм не смог... а без него не работает.
Пример брал отюда:
http://www.masm32.com/board/in...ev_next=prev
только здесь на масме, а мне нужно под фасм. К сожалению больше ни где примеров использования этой функциине под ассемблер не нашел.
contango
(12.02.2011 в 10:56):
Спасибо за статью как всегда очень познавательно и по делу, без воды...
Rustamer
(10.02.2011 в 18:06):
Хотите верьте, хотите нет - почти перестал юзать Universal Extractor, тк заметил, что 7zip распаковывает очень и очень многое сразу, при этом радует, что ему наплевать на расширение файла. Хотя он есть и в составе UE, но часто UE ломится применять что-то другое. Также иногда помогает откусить оверлей и поковырять его сабжем.
Кстати еще есть отличный мод UE от Gora с Oszone.net - см. http://bit.ly/gd2Hg3 Он достаточно часто обновляется - добавляются новые сигнатурки, компоненты.
P.S. ManHunter вот всегда удивляюсь, вроде у меня самого такая коллекция этого добра, но нет-нет да в твоей статье проскочит программа, которой у меня нет :D
Кстати еще есть отличный мод UE от Gora с Oszone.net - см. http://bit.ly/gd2Hg3 Он достаточно часто обновляется - добавляются новые сигнатурки, компоненты.
P.S. ManHunter вот всегда удивляюсь, вроде у меня самого такая коллекция этого добра, но нет-нет да в твоей статье проскочит программа, которой у меня нет :D
Vovka
(10.02.2011 в 13:17):
вот еще для msi
http://www.jsware.net/jsware/msicode.php5
http://www.jsware.net/jsware/msicode.php5
ManHunter
(10.02.2011 в 10:41):
semiono, это тоже не панацея, т.к. я не знаю, поддерживается ли в Inno Setup шифрование или нет. Если данные шифруются по паролю, то никакая программа не поможет.
semiono
(10.02.2011 в 03:37):
InnoCry - ухты! Круто! Спасибо!
AyTkACT
(10.02.2011 в 02:59):
Однозначно полезно!
/* Добавил в закладки */
/* Добавил в закладки */
Добавить комментарий
Заполните форму для добавления комментария
https://www.desksoft.com/Download/WMSetup.exe