AtotIK Posted November 19, 2016 Share Posted November 19, 2016 (edited) Пароль хранится в байткоде, но его можно оттуда выудить (лично это делал). Повторюсь, шифровать инсталлер нет смысла. Вся информация выуживается либо установкой, либо анпекером. Вторым можно распаковать чисто байткод и поковыряться в нём. [Setup] Encryption=yes Password=CheGeVaRa0 [Code] var str: string; MyArray: array of Char; function InitializeSetup(): Boolean; begin MyArray := ['A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w','x','y','z', '1','2','3','4','5','6','7','8','9','0', '!','@','#','$','%','^','&','*','(',')','.']; Result:= True; end; //function CheckPassword(Password: String): Boolean; //begin // WizardForm.PasswordEdit.Text:= 'Der Пароль'; // WizardForm.PasswordPage.Free; // Result:= True; //end; procedure CurPageChanged(CurPageID: Integer); begin If CurPageID=wpPassword then begin WizardForm.PasswordEdit.Text:= MyArray[2]+MyArray[33]+MyArray[30]+MyArray[6]+MyArray[30]+MyArray[21]+MyArray[26]+MyArray[17]+MyArray[26]+ IntToStr(StrToInt(str) - StrToInt(GetDateTimeString('ss', #0, #0))); WizardForm.NextButton.OnClick(WizardForm.NextButton); end; end; function NextButtonClick(CurPage: Integer): Boolean; begin str:= GetDateTimeString('ss', #0, #0); Result:= True; end; Вот пример кода, где выудить пароль получится только из байткода. Пароль из "Password=" вписывается в CurPageChanged символами из массива MyArray, а в программу передаётся фэйковый пароль. Ещё есть вариант вписывать пароль с нестандартными (умляутами) символами, которые в анпакере просто не ввести. Этот вариант самый простой. Edited November 20, 2016 by AtotIK 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted November 19, 2016 Share Posted November 19, 2016 (edited) Есть модуль шифрования + пароль. У меня есть код, в котором реализован хороший метод защиты от распаковки инсталлятора, но делиться им я вряд-ли буду.. вот ты ранее писал на 10 странице.... Кстати код приведенный выше почему-то ошибку выдает 'Скрин ошибки' вот как я сделал и что там не правильно? 'код' [Setup] AppName=NewProgram AppVerName=NewProgram 1.0 AppPublisher=Youre Company DefaultDirName={pf}\Youre Company\NewProgram DefaultGroupName=Youre Company\NewProgram OutputBaseFilename=Setup Compression=Zip SolidCompression=No UninstallDisplayIcon="{app}\" DiskSpanning=No ShowLanguageDialog=no WizardImageStretch=yes Encryption=yes Password=CheGeVaRa0 [[Setup] [Code] var str: string; MyArray: array of Char; function InitializeSetup(): Boolean; begin MyArray := ['A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w','x','y','z', '1','2','3','4','5','6','7','8','9','0', '!','@','#','$','%','^','&','*','(',')','.']; Result:= True; end; function CheckPassword(Password: String): Boolean; begin WizardForm.PasswordEdit.Text:= 'Der Пароль'; WizardForm.PasswordPage.Free; Result:= True; end; procedure CurPageChanged(CurPageID: Integer); begin If CurPageID=wpPassword then begin WizardForm.PasswordEdit.Text:= MyArray[2]+MyArray[33]+MyArray[30]+MyArray[6]+MyArray[30]+MyArray[21]+MyArray[26]+MyArray[17]+MyArray[26]+ IntToStr(StrToInt(str) - StrToInt(GetDateTimeString('ss', #0, #0))); WizardForm.NextButton.OnClick(WizardForm.NextButton); end; end; function NextButtonClick(CurPage: Integer): Boolean; begin str:= GetDateTimeString('ss', #0, #0); Result:= True; end; Edited November 19, 2016 by Nowik1971 @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted November 19, 2016 Share Posted November 19, 2016 Функцию CheckPassword можешь удалить. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sergy2010 Posted November 20, 2016 Share Posted November 20, 2016 здарова ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted November 20, 2016 Share Posted November 20, 2016 здарова ЛОМ Дарова) @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted November 21, 2016 Share Posted November 21, 2016 Функцию CheckPassword можешь удалить. приветы) а есть какой нить реальный код чтобы после указанной даты установщик не запускался бы? я тут что есть коды перепробовал но они если на компе дату перевести уже не работают к сожалению( @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted November 21, 2016 Share Posted November 21, 2016 Толку от этого кода в расширенной версии нет. Он не работает. Тык! 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted November 21, 2016 Share Posted November 21, 2016 (edited) Толку от этого кода в расширенной версии нет. Он не работает. Тык! может я че не так понял но вроде это код чтобы пароль на архив ставить)) а я имел ввиду код чтобы после указанной даты установщик выдавал сообщение типа " срок годности установщика истек " ))) я те что тут видел в теме все перепробовал но если на компе дату поменять то уже установщик продолжает работу( Edited November 21, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted November 21, 2016 Share Posted November 21, 2016 может я че не так понял но вроде это код чтобы пароль на архив ставить)) а я имел ввиду код чтобы после указанной даты установщик выдавал сообщение типа " срок годности установщика истек " ))) я те что тут видел в теме все перепробовал но если на компе дату поменять то уже установщик продолжает работу( Наверное в реестр надо прописывать для сравнения дату установки или чтобы на серваке где-то файл проверки лежал и сравнивал, но тогда нужен инет постоянно. Я так предполагаю, сам этим не замарачивался... пока не нужно... да и времени нет... @ Quote Link to comment Short link Share on other sites More sharing options...
sergy2010 Posted November 22, 2016 Share Posted November 22, 2016 кто подскажет скрипт нового листа с компонентами а то всю голову сломал @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted November 22, 2016 Share Posted November 22, 2016 (edited) кто подскажет скрипт нового листа с компонентами а то всю голову сломал вот держи 'Скрипт 2 листа с компонентами, но не с файлами как и просил' [CustomMessages] CompBatle1 = Прочие моды CompBatle2 = Оповещение о засвете CompBatle3 = Replays Manager CompBatle5 = Синие трупы и белые сбитые гусеницы CompBatle6 = Круг 15 метров CompBatle7 = Мод Атас CompBatle8 = Измененное радиальное меню CompBatle9 = Мод Тылы CompBatle10 = Медали во время боя CompBatle11 = Оповещение перезарядки в чате на кнопку C CompBatle12 = Декали попадания CompBatle13 = Озвучка экипажа CompBatle14 = Duke Nukem CompBatle15 = Мародёр CompBatle16 = Радиопереговоры CompBatle17 = Озвучка 6 чувства CompBatle18 = Звук хищника + отсчет 10 сек CompBatle19 = Лампа + отсчет 10 сек CompBatle20 = Тебе бегом надо валить CompBatle21 = Первая кровь [Code] procedure Components2; begin with ComponentsList2 do begin AddCheckBox(CustomMessage('CompBatle1'), '', 0, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle2'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle3'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle5'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle6'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle7'), '', 1, False, True, False, True, nil); //------------------------------------------------------------------------\\ AddCheckBox(CustomMessage('CompBatle8'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle9'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle10'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle11'), '', 1, False, True, False, True, nil); AddCheckBox(CustomMessage('CompBatle12'), '', 1, False, True, False, True, nil); //------------------------------------------------------------------------\\ AddCheckBox(CustomMessage('CompBatle13'), '', 1, False, True, False, True, nil); AddRadioButton(CustomMessage('CompBatle14'), '', 2, False, True, nil); AddRadioButton(CustomMessage('CompBatle15'), '', 2, False, True, nil); AddRadioButton(CustomMessage('CompBatle16'), '', 2, False, True, nil); //------------------------------------------------------------------------\\ AddCheckBox(CustomMessage('CompBatle17'), '', 1, False, True, False, True, nil); AddRadioButton(CustomMessage('CompBatle18'), '', 2, False, True, nil); AddRadioButton(CustomMessage('CompBatle19'), '', 2, False, True, nil); AddRadioButton(CustomMessage('CompBatle20'), '', 2, False, True, nil); //------------------------------------------------------------------------\\ AddCheckBox(CustomMessage('CompBatle21'), '', 1, False, True, False, True, nil) //------------------------------------------------------------------------\\ end; end; Function COMP2(Name: String): Boolean; var I: Integer; begin Result := False; for I := 0 to ComponentsList2.ItemCount - 1 do begin if (I <= ComponentsList2.ItemCount) then Result := ComponentsList2.Checked[ComponentsList2.Items.IndexOf(Name)]; end; end; Edited November 22, 2016 by Nowik1971 @ Quote Link to comment Short link Share on other sites More sharing options...
sergy2010 Posted November 22, 2016 Share Posted November 22, 2016 ну моды мне не нужны я думаю свои вставлю чёт я думаю я разогнался а как файлы то брать мне как рас нужно с фалами тоесть чтоб был второй лист и там были выбор компонентов то есть модов @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted November 22, 2016 Share Posted November 22, 2016 держи вот файлы 'файлы к предыдущим компонентам' [Files] Source: "моды\3\Оповещение о засвете\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle2}')); Source: "моды\3\Replays Manager\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle3}')); Source: "моды\3\Синие трупы и белые сбитые гусеницы\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle5}')); Source: "моды\3\Круг 15 метров\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle6}')); Source: "моды\3\Мод Атас\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle7}')); Source: "моды\3\Измененное радиальное меню\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle8}')); Source: "моды\3\Мод Тылы\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle9}')); Source: "моды\3\Медали во время боя\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle10}')); Source: "моды\3\Оповещение перезарядки в чате на кнопку C\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle11}')); Source: "моды\3\Декали попадания\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle12}')); Source: "моды\3\Озвучка\Экипажа\Duke Nukem\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle14}')); Source: "моды\3\Озвучка\Экипажа\Мародёр\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle15}')); Source: "моды\3\Озвучка\Экипажа\Радиопереговоры\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle16}')); Source: "моды\3\Озвучка\6 чувство\звук хищника + отсчет 10 сек\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle18}')); Source: "моды\3\Озвучка\6 чувство\Лампа + отсчет 10 сек\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle19}')); Source: "моды\3\Озвучка\6 чувство\тебе бегом надо валить\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle20}')); Source: "моды\3\Озвучка\Первая кровь\*"; DestDir: "{app}\res_mods\{#Patch}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: COMP2(ExpandConstant('{cm:CompBatle21}')); @ Quote Link to comment Short link Share on other sites More sharing options...
KIBORG Posted November 22, 2016 Share Posted November 22, 2016 привет всем, как добавить что бы звук играл при нажатии на мод, в инсталлятре послушать? 1 @ Quote Link to comment Short link Share on other sites More sharing options...
night_dragon_on Posted November 22, 2016 Share Posted November 22, 2016 (edited) привет всем, как добавить что бы звук играл при нажатии на мод, в инсталлятре послушать? Озучивание компонентов Edited November 22, 2016 by night_dragon_on 1 @ Quote Link to comment Short link Share on other sites More sharing options...
KIBORG Posted November 22, 2016 Share Posted November 22, 2016 Озучивание компонентов Форум Krinkels.org - Ошибка ,Запрашиваемая страница не найдена. @ Quote Link to comment Short link Share on other sites More sharing options...
Xotabych Posted November 22, 2016 Share Posted November 22, 2016 Вот тут. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
KIBORG Posted November 22, 2016 Share Posted November 22, 2016 Вот тут. спасибо, щас покопаюсь @ Quote Link to comment Short link Share on other sites More sharing options...
sergy2010 Posted November 22, 2016 Share Posted November 22, 2016 кто умный кто поможет создать новый лист с компонентам и выбором модов @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted November 22, 2016 Share Posted November 22, 2016 (edited) кто умный кто поможет создать новый лист с компонентам и выбором модов умных тут много но они уже редко заходят в этот раздел))) короче мне когда то Ekspoint помог с этим вопросом. и если я правильно помню то вот так должно быть))) [Files] Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\46а Аим Lportii\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\46; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\47а Aим Bot Ogre Ninja\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\47; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\48а Аим САЕ 23\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\48; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\49а панель повреждений_STL1te Metallist95\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\49; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\50а панель повреждений_Gambiter\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\50; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\51а прицел белый\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\51; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\52а прицел-Jimbo\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\52; Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\24а Оленемер\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\24; // как тут ниже это так надо прописывать для второй стрницы... Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\4а Менеджер аккаунтов\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsComponentsForm2(1) Source: "F:\А ДЛЯ СБОРКИ\ЧИТЫ И МОДЫ\12а круг белый по попаданию без засвета\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsComponentsForm2(2) [code] var ComponentsPage2: TWizardPage; SelectComponentsLabel2: TNewStaticText; ComponentsList2: TNewCheckListBox; procedure ComponentsForm2; begin ComponentsPage2 := CreateCustomPage(wpSelectComponents, 'ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc)); //========================================================================\\ SelectComponentsLabel2 := TNewStaticText.Create(WizardForm); with SelectComponentsLabel2 do begin Parent := ComponentsPage2.Surface; SetBounds(WizardForm.SelectComponentsLabel.Left, WizardForm.SelectComponentsLabel.Top, WizardForm.SelectComponentsLabel.width, WizardForm.SelectComponentsLabel.height); AutoSize := False; WordWrap := True; Caption := SetupMessage(msgSelectComponentsLabel2); end; //========================================================================\\ ComponentsList2 := TNewCheckListBox.Create(WizardForm); with ComponentsList2 do begin Parent := ComponentsPage2.Surface; SetBounds(WizardForm.ComponentsList.Left, WizardForm.ComponentsList.Top, WizardForm.ComponentsList.width, WizardForm.ComponentsList.height); AddCheckBox('ЧИТЫ И МОДЫ', '', 0, False, True, False, True, nil); //0 AddCheckBox('Менеджер аккаунтов', '', 1, False, True, False, True, nil); //1 AddCheckBox('ПОпадание беззасвета', '', 1, False, True, False, True, nil); //2 end; end; function IsComponentsForm2(CompIndex: Integer): Boolean; var i: Integer; begin Result := False; for i := 0 to ComponentsList2.ItemCount - 1 do begin if CompIndex <= (ComponentsList2.ItemCount - 1) then Result := ComponentsList2.Checked[CompIndex]; end; end; procedure InitializeWizard(); begin RedesignWizardForm; ComponentsForm2; end; end; // и удаляешь название модов из секции [Components] а то они будут и на первой и на второй странице показываться))) как то так )) вроде...))) ша тока проверил у меня все работало. но может если что не так по любому подскажут надеюсь)))) Edited November 22, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.