Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подписывание файла setup.exe и защищенных файлов цифровой подписью. / 6 сообщений из 6, страница 1 из 1
21.04.2012, 04:13
    #37764195
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Ну, м.б. не в той теме, но в другую не охота итти.
Обзавелся цифровой подписью (нормальной).
Microsoft Code Signing Certificate называется.
Ну драйвер подписал для x64 Vista/Win7, устанавливается, радуюсь. (собственно цель достигнута)

Естественно, хочется сделать чего-то еще, зря чтоль ее заимел.
Чего имеет смысл вообще подписывать?

1. Пытаюсь подписать установщик setup.exe
Код: plaintext
1.
signtool sign /a /ph /v /n "Certificate name" /ac crosscert.crt /t http://time.certum.pl setup.exe


Подписывает. При запуске ругается:
The setup files are corrupted. Please obtain a new copy of the program.
Использую Smart Install Marker 5.02 (ну не совсем "signed" правда).

2. Защищаю файл.exe при помощи Asprotect, потом подписываю. Файл не запускается.
Подписываю файл.exe, потом защищаю Asprotect. Подпись стирается.

Оно в принципе понятно, каждый ляпает свою "защиту", вторая защита суть нарушение первой.
Никто подобные вопросы не решал?

Почему хочу подписать setup и пару exe-шников. Во первых, антивирусы оху наглеют,
Ладно авиры, на них хоть надавить можно, а вот например на этот: "SonicWall firewall is blocking the download" янки уже пару раз жаловались и сделать ничего не могу, это вообще железо.
Да и доверия больше.

В случае файл.exe конешно могу asprotect-защиту зашить в dll, но это любой студент влезет в exe-шник и напишет свою dll в 2 строчки. Хотя в данном случае exe (морда настроек) только запрашивает информацию о лицензии дабы отобразить, а сама прога защищена независимо и подписывать ее смысла нет, так что опасности нет. Но честно предпочитаю все более менее насыщенные кодами файлы перемешивать протектором хоть бы и без запрета запуска, дабы любители hex-редакторами не сильно увлекались, сам так до фига чего "позаимствовал", даже не имея исходного кода.
...
Рейтинг: 0 / 0
21.04.2012, 06:12
    #37764208
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Дмитрий771. Пытаюсь подписать установщик setup.exe
Подписывает. При запуске ругается:
А самому инсталлятор написать нельзя?
Я использую довольно хитроумную конструкцию.
setup.exe (внешний) //Smart Install Marker
+
setup.exe (внутренний)//Smart Install Marker
dotNetFx35setup.exe (инсталлятор net.framework 3.5 от майкрософта)
pre_setup.exe

Алгоритм внешнего установщика прост:
Код: vbnet
1.
2.
3.
4.
5.
1) copy setup.exe (внутренний) в {temp}\proga\setup.exe (внутренний)
2) copy dotNetFx35setup.exe в {temp}\proga\dotNetFx35setup.exe
3) copy pre_setup.exe в {temp}\proga\pre_setup.exe 
4) run pre_setup.exe
5) завершается

Внешний setup.exe не имеет uninstall, работает в скрытом режиме, т.е. на экран сразу выводится либо pre_setup.exe, либо внутренний setup.exe, мусор из temp как-то удаляю...не помню.

Вопрос. Как написать внешний setup.exe (хоть бы на VB)?
Проблема в том что это должен быть один файл, извлекающий из себя 3 других.

Подписать то мне достаточно внешнюю "куклу".

Inno Setup кажется подписывать умеет. М.б. кто подскажет как там скрипт внешнего инсталлятора сделать (весь алгоритм выше), потому как с Inno Setup незнаком и эти 5 строчек буду неделю вымучивать.
А, еще иконку внешнего инсталлятора свою 32-битную вставляю, в VB это делать умею.
...
Рейтинг: 0 / 0
21.04.2012, 19:25
    #37764652
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Дмитрий77Inno Setup кажется подписывать умеет.
Да, умеет. Причем можно подписать уже готовый setup.exe, без использования "встроенного" интерфейса.
Дмитрий77потому как с Inno Setup незнаком и эти 5 строчек буду неделю вымучивать.
Ну, конечно тяжелее чем Smart Install Marker, но со своим алгоритмом из 5 строчек вроде справился.
Остался один вопрос.
/SILENT, /VERYSILENT
Instructs Setup to be silent or very silent. When Setup is silent the wizard and the background window are not displayed but the installation progress window is. When a setup is very silent this installation progress window is not displayed.

Мне надо /VERYSILENT без командной строки, т.е. при нажатии на setup.exe.
Есть ответ на этот вопрос в FAQ:
http://www.jrsoftware.org/isfaq.php#silent
Is it possible to do a silent install without using the /SILENT or /VERYSILENT command-line parameters?
No, nor is such a feature planned (it would be abused). If it is your intention to keep user interaction to a minimum, use the Disable* [Setup] section directives.


Т.е. что, только исходные коды грохать? (чего грохать в принципе понятно). Но это умучаюсь компилировать, там паскаль какой-то.
...
Рейтинг: 0 / 0
21.04.2012, 20:59
    #37764715
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Компилировать самому Inno Setup я обломался.
А насколько надежен такой хак (код на паскале вставляется в скрипт Inno Setup)?

http://stackoverflow.com/questions/8757161/innosetup-how-to-start-the-silent-installation-after-showing-my-own-form-from-t
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
[code]   

const
  WM_CLOSE = $0010;
  WM_KEYDOWN = $0100;
  WM_KEYUP = $0101;
  VK_RETURN = 13;

procedure InitializeWizard();
begin
  WizardForm.BorderStyle := bsNone;
  WizardForm.Width := 0;
  WizardForm.Height := 0;
  //OpenWizardForm(WizardForm.Handle);

  // Pressing the default "Install" button to continue the silent install
  PostMessage(WizardForm.Handle, WM_KEYDOWN, VK_RETURN, 0);
  PostMessage(WizardForm.Handle, WM_KEYUP, VK_RETURN, 0);

  // Or can exit the wizard if the user has cancelled installation
  // PostMessage(WizardForm.Handle, WM_CLOSE, 0, 0);
end;



Смысл кода (в VB все точно также).
1) Делаем нулевой размер формы (чтоб окно инсталлятора "не выводилось" на экран)
2) Посылаем в окно "ENTER" 2 раза (кнопки Next, Install).

Беспокоит возникновение ситуации, когда "почему-то не нажалось", а пользователь то и сделать ничего не может, форма то не видна.
Я например в VB всяким SendKey не доверяю.
...
Рейтинг: 0 / 0
22.04.2012, 04:46
    #37764925
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Дмитрий771. Пытаюсь подписать установщик setup.exe
Сделал оболочку из Inno Setup.
С учетом приведенного хака + правка ресурсов ("was built with Inno Setup" мне не надо) перед подписанием.
Думаю подписанный инсталлер того стоит.
Дмитрий772. Защищаю файл.exe при помощи Asprotect, потом подписываю. Файл не запускается.
Подписываю файл.exe, потом защищаю Asprotect. Подпись стирается.
...
конешно могу asprotect-защиту зашить в dll, но это любой студент влезет в exe-шник и напишет свою dll в 2 строчки.
Так и сделал для одного из файлов. Хотя принципиальной проблемы которую хотел решить не решил. Создам соседнюю тему про это.
...
Рейтинг: 0 / 0
24.04.2012, 12:43
    #37767971
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подписывание файла setup.exe и защищенных файлов цифровой подписью.
Дмитрий772. Защищаю файл.exe при помощи Asprotect, потом подписываю. Файл не запускается.
Подписываю файл.exe, потом защищаю Asprotect. Подпись стирается.
Позвонил им. Говорят надо checksum protection галку убрать, защитить а потом подписать. Пока не пробовал, но наверно так и есть.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подписывание файла setup.exe и защищенных файлов цифровой подписью. / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]