Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

Открыть новую тему     Написать ответ в эту тему

Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

Основные характеристики:
 
  • Размер дистрибутива около 1,5 МБ
  • Наличие в базовом пакете файлов с примерами и подробной справки
  • Чрезвычайная гибкость при создании инсталляций для своих программ
  • Открытый исходный код
  • Использование различных алгоритмов сжатия (ZLIB, BZIP2, LZMA)
  • Наличие различных плагинов
     
    Новейшая версия ветки 2.х: NSIS 2.51 (от 1 апреля 2016 г., статус ветки - Old Releases)
    Новейшая версия ветки 3.х: NSIS 3.10 (от 30 марта 2024 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.10NSIS 3 Pre-releaseNSIS 2 Pre-releaseисходники (SVN)
     
    Дополнительно: [ плагины, примеры и полезности ] • [ форум разрабочиков ] • [ Wiki ]
     
    Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]
     
    NSIS Unpacker
    7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.  
    Обратите внимание, что 7za не поддерживает распаковку.
     
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново – это единственный корректный вариант. Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы – это в основном "русификаторы" с непредсказуемыми последствиями применения.
     
    64-х битное развитие идей NSIS. В разработке, аннотация разработчика nsisbi.
     
    Просьба к тем, кто будет править шапку, сначала сверяться с http://nsis.sourceforge.net/Main_Page и не выдавать желаемое за действительное.

  • Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 14:21 06-10-2001 | Исправлено: DimmY, 11:10 31-03-2024
    alexeyMEN

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Копать в сторону Splash-плагинов. Что-то есть в комплекте с самим nsis

    Копнул. но так и не понял как нормально зациклить.
    почему-то они вызываются один раз, а при повторном прохождении цикла уже не вызывается. пробовал newadvsplash + anigif

    Всего записей: 2 | Зарегистр. 12-09-2009 | Отправлено: 22:26 14-09-2009
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexeyMEN
    Зачем и кого зацикливать? Дабы не гадать, выложи обновленный .onInit

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 13:46 15-09-2009
    Nureyev



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Возможно ли декомпилировать NSIS со скриптом? Хочу посмотреть, как устроен скрипт инсталлятора Winamp.

    Всего записей: 1546 | Зарегистр. 15-02-2008 | Отправлено: 09:40 22-09-2009
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nureyev
     
    Нет. Скрипт вместе со стубами компилируется в единое целое. При это он ещё и сжимается и как я понял шифруется(?). Потом после завершения установки, этот файл переименовывается в uninstall.exe. Потому разве что логи компилятора анализировать. Других вариантов не вижу.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 09:51 22-09-2009 | Исправлено: Victor_VG, 09:52 22-09-2009
    0x000BLAh



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Nureyev
    http://forum.ru-board.com/topic.cgi?forum=5&topic=0595&start=660#7
    http://forum.ru-board.com/topic.cgi?forum=5&topic=0595&start=660#13

    Всего записей: 3 | Зарегистр. 07-08-2008 | Отправлено: 17:51 22-09-2009
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0x000BLAh
    Nureyev
     
    Да, но только если вы сможете взломать RC4 шифрование - вот ссылки: http://nsis.sourceforge.net/DcryptDll_:_Adding_Encryption_to_NSIS и http://nsis.sourceforge.net/Can_I_decompile_an_existing_installer читайте.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 05:25 23-09-2009 | Исправлено: Victor_VG, 05:26 23-09-2009
    Draik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Виктор, драсьте
    Можно попросить подробнее рассказать о функции UAC (User Account Control), и как её реализовать в NSIS? Это вроде как полезная штуковина...  
    Если возможно, хотелось бы увидить примеры скриптов.  
    Спасибо.

    Всего записей: 12 | Зарегистр. 09-03-2009 | Отправлено: 11:59 07-10-2009
    msatmb



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача стоит следующая. При запуске инсталлятора появляется окно с выбором языка установки. Можно ли при запуске через командную строку чтобы кнопка ОК нажималась автоматом? Если сделать /S то окно выбора языка все равно показывается.

    Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 20:57 15-10-2009 | Исправлено: msatmb, 21:02 15-10-2009
    MANtiCORE



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем привет.
     
    вопрос вот возник - а как определить работу в Safe Mode (безопасный режим) в инсталляторе?
    ну типа запущен ли инсталлятор в безопасном режиме или в нормальном режиме и в зависимости от этого ветвление алгоритма...
    в мануале вроде этого нет. быстренько пробежался по офсайту и плагинам и тоже не нашёл. может есть готовый скриптик?
    ткните меня пожалуйста носом.
    а то сильно не хочется заморачиваться с вызовом системных dll для определения режима.

    Всего записей: 959 | Зарегистр. 01-11-2002 | Отправлено: 23:20 23-10-2009
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MANtiCORE
     
    http://forums.winamp.com/showthread.php?postid=1285416#post1285416

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 14:47 24-10-2009
    MaGoth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую,  
    Есть небольшой вопрос к знатокам.
    Можно ли заблокировать распаковку готового инсталлятора Нсис архиватором 7z?
    Если такая возможность есть, то подскажите пожалуйста как ее реализовать в скрипте.
     
    Спасибо.

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 16:38 27-10-2009 | Исправлено: MaGoth, 16:38 27-10-2009
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaGoth
     
    Насколько знаю нет, не удаётся.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 18:41 27-10-2009
    MaGoth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Насколько знаю нет, не удаётся.

    Очень жаль...
     
    Ps. Ушел мучать Игоря Павлова по этому вопросу, может он чего посоветует?!

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 21:18 27-10-2009 | Исправлено: MaGoth, 21:19 27-10-2009
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MaGoth
     
    Внешний запароленный архив.
     
    Если хочется одним файлом, соответственно, архив помещается в инсталлятор, откуда сначала извлекается в $TEMP, затем распаковывается в $INSTDIR.
     
    Можно наколбасить и что-нибудь более изощренное (чтобы архив не был виден внутри инсталлятора), только смысла в этом не вижу.

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 02:52 28-10-2009 | Исправлено: 820815, 03:16 28-10-2009
    0x000BLAh



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Окей, представьте себе, что ваш инсталлер записан на медленную болванку, а на диске места только-только под установку. Какон нафиг извлечение в $темп?

    Цитата:
    RC4 шифрование - вот ссылки: http://nsis.sourceforge.net/DcryptDll_:_Adding_Encryption_to_NSIS и http://nsis.sourceforge.net/Can_I_decompile_an_existing_installer читайте.
     

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

    Всего записей: 3 | Зарегистр. 07-08-2008 | Отправлено: 03:40 28-10-2009
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0x000BLAh
     
    Дружище, не путайте! $TEMP переменная обозначающая системную временную папку и её значение определяется динамически в момент запуска инсталлятора. И в том, что здесь Вы ошиблись Вас убедит справка NSIS раздел 4.2.3 Constants (для NSIS v2.4.5):

    Цитата:
    $TEMP
     
    The system temporary directory (usually C:\Windows\Temp but detected at runtime).


    Цитата:
    $TEMP
     
    системный временный каталог (например C:\Windows\Temp детектируется при выполнении).

    И по второму вопросу Вы так же были не внимательны:

    Цитата:
    Currently NSIS installers cannot be fully decompiled. The installer itself doesn't provide any method to extract files or the script without installation. It is the developer's choice whether the source code and/or the files for the installer are available to the public or not.
     
    There are, however, external tools that allow this. 7-zip (version 4.40beta at the time of this writing) supports decompressing NSIS installers compressed with lzma or bzip, but the source code is still partially compiled and requires extensive modification before the script can be recompiled. A decompression plug-in is also available for TotalCommander.
     
    As a general note to software developers, you should use a plugin like DCryptDll if you need to protect certain files in your installer.  


    Цитата:
    В настоящее время инсталляторы NSIS не могут быть полностью декомпилированы. Программа установки сама по себе не предоставляет никаких способов извлечения файлов или сценария без установки. По выбору разработчика исходный код и / или файлы установки, могут быть сделаны доступными  для общественности.  
     
    Есть, однако, внешние инструменты, которые позволяют частично распаковать инсталлятор. 7-Zip (версия 4.40beta на момент написания этого документа) поддерживает распаковку инсталляторов NSIS сжатых алгоритмами LZMA или BZIP, но исходный код требует доработки, прежде чем этот сценарий может быть перекомпиляции. Плагины декомпрессии также доступны для TotalCommander.  
     
    В общем плане, разработчики программного обеспечения, должны использовать плагины, как такие как DCryptDll для защиты определенных файлов в Вашей установке.  

    Так что Вы неверно поняли описания плагина и причины невозможности полной декомпиляции NSIS программ - код сценария компилируется в объектный байт-код шифруемый по алгоритму RC4 с ключом шифрования длинной 1024 бита, и потом его целостность проверяется при запуске установки по алгоритму MD5.
     
    Да, у NSIS есть одна особенность - в начале установки, если ему достаточно места в некоторых случаях часть файлов могут быть распакованы на тот же носитель с которого запущена установка, но, для этого надо приложить огромные усилия в направлении написания кривого до предела сценария. Это надо очень сильно постараться чтобы такой сценарий написать. Я за всё время только пару таких случаев встретил, и то виной были ошибки в .onInit - в обоих случаях автор приравнивал переменную $PLUGINSDIR к $EXEDIR командой StrCpy $PLUGINSD IR$EXEDIR. В этом случае и возникала ошибка.  
     
    Надеюсь Вы понимаете, что это ошибка и так не делаете в своих программах?
     
     
     


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 05:12 28-10-2009 | Исправлено: Victor_VG, 05:14 28-10-2009
    MaGoth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Внешний запароленный архив.  
     
    Если хочется одним файлом, соответственно, архив помещается в инсталлятор, откуда сначала извлекается в $TEMP, затем распаковывается в $INSTDIR.  
     
    Можно наколбасить и что-нибудь более изощренное (чтобы архив не был виден внутри инсталлятора), только смысла в этом не вижу.  

    Эм... тут проблема немного в другом. Инсталлер должен быть рабочим и доступным всем изначально.
    Впрочем, он таковым и является, все делается и устанавливается как нужно. Только проблема в том, что компоненты которые идут упакованные в него защищены определенной лицензией, которую я нарушать не могу. Но эти файлы можно извлечь и пользоваться ими если у пользователя стоит и пиратский софт.
     
    Мой инсталлер не позволяет юзеру установить на пиратский софт то что в него упаковано, в процессе стандартной инсталляции. Но из-за 7z, верификация ехе-шников становится бесполезной. И потом я всегда выкладываю инсталлер в открытый доступ для всех, на кой черт мне его жать в архив, да еще и паролить в придачу?! О_о
    Надеюсь я смог донести до вас свою мысль?
     
     
    Теперь по самому инсталятору и его процессу. Во время процесса установки у меня запускается вагон всяких программ, и идет конвертация файлов и сборка определенных архивов и томов - VDFs. Общее число файлов в той или иной сборке инсталлятора может зашкаливать за 35 - 50 000, и более. А посему, я не совсем понимаю как в данном случае мне может помочь DCryptDll?
     
    Проясните этот момент пожалуйста, спасибо.

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 16:11 28-10-2009 | Исправлено: MaGoth, 16:16 28-10-2009
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MaGoth

    Цитата:
    я всегда выкладываю инсталлер в открытый доступ для всех, на кой черт мне его жать в архив, да еще и паролить в придачу?!

    Я этого и не предлагал.
     
    "Лицензионные компоненты" пакуются в запароленный архив, архив кладётся внутрь инсталлятора.
    После прохождения проверки, архив извлекается во временную папку, откуда его содержимое распаковывается инсталлятором (без участия пользователя) куда следует.
     
    P.S.: Или я чего-то не понимаю, или одно из двух.
     
    Victor_VG

    Цитата:
    целостность проверяется при запуске установки по алгоритму MD5

    CRC32. Изменить "копирайты" (в свойствах exe), например, не представляет труда

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 18:12 28-10-2009 | Исправлено: 820815, 18:45 28-10-2009
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    820815
     
    Если не стоит специальная проверка Я например такое частенько ставлю, и другие хитрые проверки - иди их обойди.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 19:53 28-10-2009 | Исправлено: Victor_VG, 19:56 28-10-2009
    MaGoth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @820815:

    Цитата:
    Я этого и не предлагал.  
     
    "Лицензионные компоненты" пакуются в запароленный архив, архив кладётся внутрь инсталлятора.  
    После прохождения проверки, архив извлекается во временную папку, откуда его содержимое распаковывается инсталлятором (без участия пользователя) куда следует.  
     
    P.S.: Или я  чего-то не понимаю, или одно из двух.  

    Соррь если я чего недопонял, но оно сути дела это не меняет, ибо эта "куча файлов" не может паковаться в архив. Т.к. в инсталлер они компиллятся в извлеченном и конвертированном виде, затем в процессе в процессе инсталляции происходит их обратная конвертация и запаковка, софтом из - МДК. По окончанию инсталляции результатом будут рабочие тома архивов для определенного ехешника.
    Cама инсталляция порой может занимать до 40 минут времени, а если эти файлы еще и в  архив сувать и юзать их распаковку в процессе инсталла, то это вообще труба будет...
     
     
    Добавлено:
    И еще один вопрос имеется к знатокам, может кто проделывал подобное и поделится решением.
     
    Суть вот в чем, я хочу добавить в инсталлятор новое текстовое окно - "Информация", аналогичное окну - "Лицензионное соглашение". За одним исключением:
    "радиобаттонов", кнопки "Принять" и прочего, там не должно быть. Только кнопочки назад и далее.
    Оно должно идти после окна "Приветствия", чтобы пользователи могли ознакомится с правилами установки, описанием модификации/патча и прочего, до того как установят софт. С привязкой текстового файлика в формате тхт или ртф к этому окну.
     
    Перерыл кучу материалов на сайтах/форумах, но ни чего не понял. Также не смог понять как правильно работать с программой для создания окошек интерфейса (НисДизайнер). В Нсис, что и как делается понятно, а вот как связать готовое окошко со скриптом инсталлера и куда ложить в каталоги Нсис создаваемые этой прогой файлы интерфейса, не совсем понял.
     
    Если кто делал что подобное подскажите пожалуйста куда смотреть и что копать. А если есть примерчик подобной реализации было бы очень кстати.

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 21:57 28-10-2009 | Исправлено: MaGoth, 22:16 28-10-2009
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru