Blog. Just Blog

Автоматические распаковщики инсталляторов

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Назначение программ для распаковки инсталляторов понятно. В настоящее время инсталляторы сами представляют собой достаточно сложные программы, вносящие изменения в систему или реестр, создающие ярлыки, записывающие файлы в различные папки. Но иногда инсталляторы выполняют нежелательные действия, например, пытаются без ведома пользователя установить различные тулбары или рекламные модули, отправляют разработчику информацию о факте установки, не дают выполнить установку без ввода пароля или серийного номера, и прочие гадости. В этом случае нам требуется извлечь из дистрибутива все содержащиеся в нем файлы, не запуская сам инсталлятор. Кроме файлов из некоторых инсталляторов можно извлечь так называемые скрипты установки, в которых прописывается последовательность действий, из них можно узнать какие ключи реестра меняются, какие файлы и куда записываются и т.п. Также извлеченные из инсталляторов скрипты можно в дальнейшем использовать для создания перепакованных вариантов программ, например, уже включающие в себя файлы с отломанной регистрацией. Еще некоторые особо одаренные аффтары проверяют целостность ранее установленной программы и не дают устанавливать обновления на модифицированные инсталляции, в основном такие милые приколы встречаются на играх. Так что умение бороться с инсталляторами всегда пригодится.

Скриншот программы Universal Extractor
Скриншот программы Universal Extractor

Самым мощным и удобным инструментом для автоматической распаковки инсталляторов является программа Universal Extractor. Она представляет собой оболочку для других распаковщиков, всего поддерживается несколько десятков различных форматов, в том числе таких популярных, как распаковка Inno Setup, InstallShield, Wise Installer и других. Поддерживается русский язык, интеграция в контекстное меню Проводника Windows, продвинутые пользователи могут сохранить и посмотреть лог работы внешних модулей распаковки. На момент написания статьи хостинг с дистрибутивами и исходниками Universal Extractor недоступен, поэтому выложу Universal Extractor здесь.

Universal Extractor 1.6.1Universal Extractor 1.6.1

Universal.Extractor.1.6.1.zip (5,473,848 bytes)

Скриншот программы WinRAR
Скриншот программы WinRAR

Многие инсталляторы представляют собой обычный архивный файл, к которому дописан модуль для его распаковки, то есть SFX-архив (Self-extracting архив). Поскольку распространенных алгоритмов компрессии не так много, в некоторых случаях для распаковки инсталляторов можно воспользоваться обычными архиваторами, например, WinRAR или бесплатным 7zip.

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

Скриншот программы Inno Setup Unpacker
Скриншот программы 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).

InnoSetup And NSIS Unpacker Shell 1.4InnoSetup And NSIS Unpacker Shell 1.4

InnoSetup.And.NSIS.Unpacker.Shell.1.4.zip (660,484 bytes)

Скриншот программы InnoCry
Скриншот программы InnoCry

Вспомогательная утилита InnoCry предназначена для обхода паролей на инсталляторах, созданных Inno Setup. Запускаете сперва инсталлятор, в котором требуется ввод пароля, параллельно запускаете InnoCry. Затем InnoCry несколькими способами пытается пропатчить в памяти исполняемый код инсталлятора, чтобы он не требовал ввода пароля. В последней версии также появилась опция активации заблокированных кнопок.

InnoCry 1.2.7InnoCry 1.2.7

InnoCry.1.2.7.zip (238,909 bytes)

Скриншот программы InnoExtractor
Скриншот программы InnoExtractor

InnoExtractor сделан на базе архиватора 7zip. Позволяет просматривать и извлекать содержимое инсталляторов Inno Setup. Большой плюс в том, что InnoExtractor постоянно совершенствуется и поддерживает как старые, так и новейшие версии этого инсталлятора.

InnoExtractor 4.8.0.156InnoExtractor 4.8.0.156

InnoExtractor.4.8.0.156.zip (1,693,514 bytes)

Скриншот архиватора 7zip
Скриншот архиватора 7zip

Для распаковки инсталляторов, созданных при помощи Nullsoft Scriptable Install System или сокращенно NSIS, удобнее всего пользоваться бесплатным архиватором 7zip. Он без труда открывает такие инсталляторы для просмотра и позволяет извлекать из них нужные файлы.

E_WISE 2002.03.29 - консольная утилита для извлечения файлов из WISE-инсталляторов. Поддерживаются практически все версии Wise-инсталляторов, в комплекте есть версии распаковщика для DOS, Windows и Linux, а также документация на английском и немецком языках.

E_WISE 2002.03.29E_WISE 2002.03.29

E_WISE.2002.03.29.zip (102,968 bytes)

E_WISE 2002.07.01 (Update)E_WISE 2002.07.01 (Update)

E_WISE.2002.07.01.zip (24,686 bytes)

Скриншот программы HWUN
Скриншот программы HWUN

HWUN (Heuristic Wise UNpacker) также предназначен для распаковки инсталляторов WISE, но в отличие от предыдущей программы использует эвристические алгоритмы для поиска необходимых сигнатур и данных, так что есть большая вероятность, что он будет работать и с более новыми версиями инсталляторов.

HWUN v0.50aHWUN v0.50a

HWUN.v0.50a.zip (22,912 bytes)

HWUN v0.50bHWUN v0.50b

HWUN.v0.50b.zip (40,509 bytes)

Setup Factory Unpacker - консольный распаковщик инсталляторов Setup Factory версии 5 и 6. Как признается сам автор, имеют место быть глюки и баги, так что пригодится больше для коллекции.

Setup Factory UnpackerSetup Factory Unpacker

Setup.Factory.Unpacker.zip (27,161 bytes)

Скриншот программы InstallShield (by one exe-file) Unpacker
Скриншот программы InstallShield (by one exe-file) Unpacker

InstallShield (by one exe-file) Unpacker - автоматический консольный распаковщик двух из трех известных типов инсталляторов, созданных программой InstallShield. Это одиночный cab-файл, упакованный в msi-контейнер, а также набор из установочных файлов и cab-архива, также помещенный внутрь msi-файла (Microsoft Installer). Третий тип, использующий шифрование, этим распаковщиком не поддерживается.

InstallShield (by one exe-file) Unpacker 0.99InstallShield (by one exe-file) Unpacker 0.99

InstallShield.Unpacker.0.99.zip (57,056 bytes)

Скриншот программы Less MSIerables
Скриншот программы Less MSIerables

Less MSIerables также используется для извлечения файлов из MSI-контейнеров, но имеет графический интерфейс и может встраиваться в Проводник Windows. Кроме извлечения файлов показывает всю дополнительную информацию, содержащуюся в инсталляторе.

Less MSIerables 1.0.8Less MSIerables 1.0.8

Less.MSIerables.1.0.8.zip (368,269 bytes)

Скриншот программы Orca MSI Editor
Скриншот программы Orca MSI Editor

Orca MSI Editor - одна из составных частей пакета "Windows SDK Components for Windows Installer Developers" от MicroSoft. Скачать его отдельно можно здесь, так как ее разработка официально уже не поддерживается. Профессиональный инструмент, ориентированный больше на модификацию самого инсталлятора. С помощью Orca можно сделать многие интересные вещи, например, сразу прописать серийник в поля ввода, заменить текст лицензии, изменить дефолтные опции установки и так далее.

Orca MSI Editor 3.1.4000.1830Orca MSI Editor 3.1.4000.1830

Orca.MSI.Editor.3.1.4000.1830.zip (1,634,446 bytes)

Скриншот программы JSWare MSI Unpacker
Скриншот программы JSWare MSI Unpacker

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

JSWare MSI UnpackerJSWare MSI Unpacker

JSWare.MSI.Unpacker.zip (63,644 bytes)

Остался последний вопрос: а как определить, с помощью какой программы был собран тот или иной инсталлятор? Ответить на этот вопрос помогут программы для анализа исполняемых файлов. Например, PEiD четко определяет инсталляторы как "Inno Installer 5.1.2 [Overlay]" или "Nullsoft PiMP Stub [Nullsoft PiMP SFX]", так что проблем с идентификацией и выбором нужного инструментария быть не должно.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 94224 | Комментариев: 39

Метки: реверсинг
Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
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 все тоже самое, но вот сайт который по ссылке с вирусами.
lvlr (26.12.2015 в 12:32):
Чем бы распаковать vc_redist.x86.exe версии 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
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]
Лавруха (28.07.2013 в 22:32):
Гуру, подскажите, как вылечить инсталлятор 32 битной программы, не хочет ставиться на Вин7 х64. Собран на InstallShield. Прога 40000 евро, более свежую версию покупать жаба душит. Желающим покопаться дам линк на ISO.
Владимир (05.11.2012 в 19:11):
Ну и как связаться с will shine по поводу
распаковщика любых InstallShield SFX'ов?
email не работает.
Алексей (25.08.2012 в 14:35):
Спасибо!
Но у меня есть маленький вопросик, вот распаковал программу через Universal Extractor 1.6.1, внес изменения, а как теперь её запаковать обратно?
VikingMC (23.06.2012 в 08:03):
Нашёл почти все ответы на возникшие вопросы)) По крайней мере теперь ясно,в какую сторону рыть дальше)))Респект,чел!
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, поделюсь.
Лёня (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 для ручного анализа. в общем удобная оболочка со спартанским интерфейсом.
ezfalc0n (17.02.2011 в 00:51):
Сначала прочитал "автоматические распаковщики" - вспомнились ночи со скриптами в IDA - автоматика все таки )
Лень все же поборола, поэтому ReadProcessMemory и на диск
Тогда задача стояла вытянуть часть кода, а иногда прикольную мелодию ХМ

обзор хороший, особенно интересен будет будущим репакерам
ManHunter (16.02.2011 в 07:38):
Ок, тогда мне нужен пример хорошего, годного и расово верного описания со всеми плюшечками и хитрыми настройками. Чтобы знать на что равняться, к чему стремиться.
kruvas (16.02.2011 в 04:34):
имелось в виду "пионерскость" изложения -
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
только здесь на масме, а мне нужно под фасм. К сожалению больше ни где примеров использования этой функциине под ассемблер не нашел.
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
Vovka (10.02.2011 в 13:17):
ManHunter (10.02.2011 в 10:41):
semiono, это тоже не панацея, т.к. я не знаю, поддерживается ли в Inno Setup шифрование или нет. Если данные шифруются по паролю, то никакая программа не поможет.
semiono (10.02.2011 в 03:37):
InnoCry - ухты! Круто! Спасибо!
AyTkACT (10.02.2011 в 02:59):
Однозначно полезно!
/* Добавил в закладки */

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2017
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.06 сек. / MySQL: 2 (0.0046 сек.) / Память: 4.5 Mb
Наверх