Genri
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору DCFan -- IsTaskSelected (см.в хелпе) NightW0lf -- DirExistsWarning (см.в хелпе) Добавлено: AtotIK Цитата: В последних инсталляторах SerGEAnt'а пароль в файле CompiledCode.bin разделён на кусочки, а раньше показывался весь. | -- Я смотрю многие озабочены проблемой скрытия своих трудов от посторонних глаз (я так подозреваю, чтобы заказчик не узнал, что трудная и очень сложная работа, за которую он заплатил кучу денег, состоит из двух строк и одного комментария ) Впрочем, это не мое дело. А что касается разделения пароля, то можно использовать следующие приемы: 1. Как видно в примере, в секцию [Files] добавлена строка: Source: Files_ext\CompiledCode.bin; DestDir: embedded; Flags: dontcopy ... которая весьма интересна тем, что по моим наблюдениям, не позволяет рапаковщику вытянуть CompiledCode.bin. Естественно, что указанный CompiledCode.bin это совершенно левый файл Скорее всего, это будет исправлено в следующих версиях распаковщика. Но пока вроде работает. 2. В процедуре InitializeSetup, заполняется массив символов, которые могут использоваться для пароля (а могут и не использоваться). 3. В процедуре InitializeWizard, поле ввода пароля делается скрытым, что немного прорежает ряды школьников, пытающихся вскрыть ваш инсталлятор. 4. Как заполняется поле ввода пароля, можно увидеть в процедуре CurPageChanged. Это, наверно, самый простой вариант, но и он не дает увидеть пароль в коде. Еще лучше, если использовать функции и циклы. 5. Еще одна фишка, это использование в пароле функции с участием GetDateTimeString. При каждом клике на кнопку <Далее>, в переменную сохраняется время. В пароле используется разница между сохраненными и текущими секундами. Так как при нормальной инсталляции, это происходит автоматически и очень быстро, разница практически всегда равна нулю. А вот если проходить в пошаговом режиме (под отладчиком), разница будет не нулевая, и введенный пароль будет не верен. Откровенно говоря, это слабая защита (так как человека, знакомого с такими методами взлома, это не остановит), но все-таки притормозить может. 6. И, наконец, сразу после проверки пароля, в функции CheckPassword страница PasswordPage ликвидируется. Все. Не стоит думать, что этот код нельзя вскрыть. Это только затруднит вскрытие для неподготовленного человека. Но в 99% случаев, этого достаточно. | Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 23:22 08-01-2007 | Исправлено: Genri, 02:28 09-01-2007 |
|