[архив] Inno Setup .:[все вопросы]:.

Ответить
 • Просмотры: 13
Аватара пользователя
ChVL

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение ChVL »

ZaV,


Цитата:



секцию code по идее её средствами можно сделать все что угодно



IMHO, с помощью секции

Код: Выделить всё

 можно творить чудеса в пределах компилятора, но она, в моём представлении, бессильна [u]вне[/u] скрипта, что по определению требуется для решения поставленной задачи. Или я не прав?


				Цитата:
	
	
		
				перейти на другой инсталлятор
		
	
	
Это понятно, только вот нет желания...


				Цитата:
	
	
		
				действительно такой серьезный проект
		
	
	
Да нет, не так уж серьёзно. Понадобилось скрыть регистрационные данные. В реестре это явным образом не засвечено, а вот в скрипте легко можно засечь. Есть и другой прецедент. Сознаю, что для грамотного программера любые ухищрения с защитой – семечки, но никто из них копаться не станет. Хотелось бы защититься от массы любителей запускать unpacker.
Аватара пользователя
WindoStroy

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение WindoStroy »

ChVL,



вот может поможет:






Цитата:



Простенький способ криптования инсталлятора c использованием подсчета хеша MD5 "обманных" символов. (Пароль будет находиться в памяти). Требуется ISCrypt.dll в одной папке с Inno Setup






Цитата:



[Setup]

AppName=Pass

AppVerName=Pass

DefaultDirName={pf}\Pass

Uninstallable=No

Encryption=Yes

;MD5 сумма, подсчитанная ниже

Password=449f2546d2a51b20442c5025c43f126f



[Files]

Source: "C:\1.txt"; DestDir: "{app}"


Код: Выделить всё


procedure InitializeWizard();

var

MD5: String;

begin

//Подсчитываем сумму слагаемых в MD5 калькуляторе, на примере сумма MD5 "
`
`
``" равна 449f2546d2a51b20442c5025c43f126f

MD5 := GetMD5OfString('
'+'`
'+'
`
`'+'`')

WizardForm.PasswordEdit.Visible:= False;

//Вставляем то, что складываем

WizardForm.PasswordEdit.Text:= MD5;

end;



//Как обычно нажимаем страницу с пассом

procedure CurPageChanged(CurPageID: Integer);

begin

  if CurPageID = wpPassword then

    WizardForm.NextButton.OnClick(WizardForm.NextButton);

end;
		
	
	
(с) Kindly
Аватара пользователя
YikxX

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение YikxX »

Цитата МИШАНЧИК:



Не получается назначить принудительно каталог установки
[архив] Inno Setup .:[все вопросы]:.




Какой каталог назначения указываете в секции Files? Дайте полный пример скрипта.
Аватара пользователя
ChVL

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение ChVL »

Проблему защиты от распаковки можно решить следующим образом. В простейшем случае в секцию [Setup] дописываются две строчки и добавляется секция [ Code ]:



Код:

Код: Выделить всё

 [Setup]
Encryption=Yes
Password=1a2b3c4d
 [ Code ]
procedure InitializeWizard();
begin
WizardForm.PasswordEdit.Visible := False;
WizardForm.PasswordEdit.Text := '1a2b3c4d'
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpPassword then
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;

В этом случае пароль сохраняется в инсталляторе в явном виде.

Если же у вас есть желание скрыть пароль, то сгенерируйте для него MD5 хэш и сравните с помощью функции GetMD5OfString. Полностью этот способ привёл WindoStroy в посте #200.

Не забудьте в папку Inno Setup 5 (в PF) положить файл ISCrypt.dll.

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

Код: Выделить всё

. Если же попытаться программу распаковать, то unpacker намертво зависает…
Аватара пользователя
jameszero

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение jameszero »

ChVL

К сожалению, способ не универсален - защищаются от распаковки только файлы программы, а сам скрипт легко извлекается Unpacker-ом
Аватара пользователя
ChVL

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение ChVL »

jameszero,


Цитата:



скрипт легко извлекается Unpacker-ом



Каким? Пробовал Inno Setup Unpacker Explorer 2.0 - не распаковывает, в том числе и скрипт.
Аватара пользователя
jameszero

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение jameszero »

ChVL

В Unpacker-е нужно выделить не все файлы, а только скрипт.
Аватара пользователя
WindoStroy

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение WindoStroy »

Вышла версия 5.2.3.

http://www.jrsoftware.org/download.php/is.exe


http://www.jrsoftware.org/download.php/is.exe?site=1




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



могу порекомендовать обратится сюда, возможно найдётся другое решение:

http://forum.ru-board.com/topic.cgi?...&start=1080#lt
Аватара пользователя
ChVL

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение ChVL »

Junos, из скрипта я не понял, почему ставиться этот ярлык, судя по всему вы дали не полный скрипт. Если он прописывается всё равно, то можно удалить его с помощью cleanup.cmd, т.е. делаете cleanup.cmd в котором прописываете удаление этого ярлыка. В секции Files прописываете копирование cleanup.cmd в папку с приложением с флагом удаления после установки программы, а в секции Run прописываете запуск этого *.cmd. Т.е должно получиться так:

Код:

Код: Выделить всё

[Files]
…………………………
Source: J:\cleanup.cmd; DestDir: {app}; Flags: deleteafterinstall
………………………………
[Run]
Filename: {app}\cleanup.cmd; WorkingDir: {app}; Flags: runhidden

deleteafterinstall – указывает инсталлятору устанавливать файл как обычно, но удалять его после завершения (или прервания) установки;

runhidden - программа запустится в скрытом окне.
Аватара пользователя
boss911

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение boss911 »

Serega_,


Цитата:



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



Я дал полный




Цитата:



ставиться этот ярлык



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





Код:

Код: Выделить всё

[Files]
…………………………
Source: J:\ cleanup.cmd; DestDir: {app}; Flags: deleteafterinstall
………………………………
[Run]
Filename: {app}\ cleanup.cmd; WorkingDir: {app}; Flags: runhidden

Спасибо, помогло!
Ответить

Вернуться в «Автоматическая установка приложений»