Как подписать sis файл сертификатом
К сожалению, заказать личный сертификат сейчас является очень большой проблемой, так как заказать его является не просто сложным, а нереальным делом, но существуют люди, у которых возможно файл личного сертификата еще остался, по этому, возможно данная статья будет для Вас и актуальной.
Конечно, не стоит забывать, что вы всегда можете взломать Symbian и без личного сертификата, но все же на всякий случай он не будет лишним.
Итак, первым способом будет инструкция по подписи с помощью компьютера:
Для успешной подписи с помощью компьютера Вам понадобится программа SisSigner, она достаточно простая в использовании, что по сути, можно бы было догадаться после первого запуска.
Для того, чтобы подписать приложение вам понадобится программа SisSigner, она отлична как в использовании, так и в простоте, то есть вам не нужно быть гениальным программистом, да бы сделать подпись приложения.
Инструкция:
Как подписать приложение Symbian
1. Для начала скачиваем саму программу, ее вы можете найти в конце статьи;
2. Далее подготавливаем сертификат с ключом, это должны быть два файла с расширениями *.cer и *.key;
3. Далее запускаем программу и выбираем пути к сертификату и ключу, вводим пароль от файла ключа (12345678), а так же добавляем саму программу, которую нужно подписывать.
4. Нажимаем «Подпись», ну а далее все интуитивно ясно, в черном окне нужно будет нажать любую кнопку и все, программа подписана.
Как видите, ничего сложного тут и не было, аналогично делается подпись и на смартфоне:
Для этого, Вам понадобится программка FreeSigner, она по сути очень простенькая, много не занимает, и поддерживается всеми версиями Symbian.
1. Программу вы можете скачать опять-таки в самом низу;
2. Подготавливаем сертификат и ключ, и переносим их по директории C:/FreeSigner/;
3. Заходим в программу и заходим в настройки (Функции -> Настройки);
4. В настройках видим такие поля как Sign Cert, Sign Key и Sign Key pass, это три основные поля, в которые добавляем наш сертификат и ключ, в Sign Key pass вписываем пароль (12345678);
5. Выходим из настроек, после чего нажимаем «Новая задача», вам должно выбить меню выбора, где вы выберите приложение для подписки, а после нажмете на «Sing sis»;
Ну а дальше дело в шляпе, копия подписанного приложения появится в той же папке где и само приложение, а так же в конце названия будет прикреплено «_signed»
Таким способом вы выполняете подпись приложений и для Symbian 9.4 и для Symbian^3
Значит так, вы теперь уже знаете, как подписать игру личным сертификатом, что означает, успешную подготовку, хотя сертификаты на данный момент уже не актуальны.
Первоисточник: отсутствует. Статья написана мной и ранее не публиковалась.
В сети можно найти много различных FAQ по подписанию sis-пакетов, а также описаний софта, используемого для подписи. Целью данной статьи не является подготовка еще одного такого FAQ, я лишь хочу осветить некоторые моменты, связанные с подписью, обычно не упоминаемые в руководствах, а также рассказать о том, как подписывать пакеты с помощью программы SISContents.
Вообще, SISContents это не только программа для подписи, у нее много других возможностей, но так как речь не об этом, я не буду их перечислять, кому интересно, могут ознакомиться с ними на официальном сайте программы . Там же (на сайте) всегда можно найти самую последнюю версию SISContents.
Чем SISContents отличается от всех прочих программ для подписи sis-пакетов? Начну с того, что существующие программы не всегда отличаются универсальностью и наглядностью. Это касается удобства подписи embedded-пакетов (sis-файл, имеющий в себе один или несколько встроенных компонентов - вложенных в него sis-пакетов), отображения package UID sis-файла, а также capabilities, требуемых подписываемому приложению.
Далеко не весь существующий софт для подписи сможет показать, есть ли в пакете встроенные компоненты. Почему они важны для подписи? Потому что в случае наличия компоненты также должны быть подписаны как и сам пакет, в который они встроены. Если этого не происходит, sis-пакет не допускается к установке - инсталлятор продолжает выдавать ошибку, несмотря на то, что пакет, вроде бы, подписан, но он настойчиво советует обратиться к поставщику sis-файла (признак того, что подпись отсутствует).
Package UID и capabilities также имеют большое значение, так как от них зависит какой сертификат выбрать для подписи: self-signed или личный сертификат разработчика, привязанный к IMEI телефона. В случае с package UID значение имеет диапазон, к которому он относится: если используется UID из интервала 0x00000000-0x7FFFFFFF (защищенный диапазон значений), то пакет должен быть подписан доверенным сертификатом Symbian (сертификат разработчика в нашем случае) независимо от capabilities, требуемых приложению (в противном случае выдается ошибка о невозможности установить защищенный пакет из ненадежного источника). Влияние capabilities следующее:
1. для обеспечения NetworkServices, LocalServices, ReadUserData, WriteUserData, UserEnvironment ( Location в моделях на базе S60v3.2 и новее и UIQ 3.0 и новее) - достаточно self-signed сертификата.
2. Capabilities Location (в телефонах на базе S60v3.0 и S60v3.1), ReadDeviceData, WriteDeviceData, PowerMgmt, ProtSer, SwEvent, SurroundingsDD, Trusted UI требуют подписи доверенным сертификатом Symbian (в нашем случае сертификат разработчика).
3. Capabilities CommDD, DiskAdmin, NetworkContol, MultimediaDD, DRM, AllFiles, TCB требуют уровень доверия, который обычный сертификат разработчика обеспечить не способен, а потому подписывать приложения, требующие их, бесполезно - установка будет отклонена из-за недостаточности прав.
Понятно, что если в пакете встречаются исполняемые файлы, требующие capabilities из третьей категории, а у вас невзломанный телефон с «универсальным сертификатом» или модифицированным installserver’ом, то установка даже подписанного пакета провалится, но показывает ли ваша программа capabilities? Если нет, вы этого не узнаете, пока не подпишите пакет и не перенесете на устройство. Лишняя работа.
Кто-то может спросить: «а зачем выбирать сертификат, если сертификат разработчика способен обеспечить capabilities из первых двух категорий, тогда как self-signed только из первой? Ну и подписывать всё dev.cert'ом».
В различных FAQ по подписыванию обычно не упоминается подпись sis-пакетов с помощью self-signed сертификатов и подразумевается, что все файлы подписываются личным сертификатом разработчика, привязанного к IMEI телефона владельца сертификата. Однако данная практика, на мой взгляд, является неправильной, потому что бывают случаи, когда возможности, обеспечиваемые сертификатом разработчика, являются избыточными. Примером тому могут служить темы оформления, для которых понятие capabilities неприменимо, а подпись их dev cert'ом нецелесообразна в силу того, что подписанный им sis-пакет может быть установлен только на устройство, IMEI которого прописан в сертификате. Обычно темы оформления, которые можно найти в сети, уже подписаны автором в процессе формирования пакета, однако, можно также встретить пакеты, собранные и без помощи Carbide UI Theme Edition, а также возможны случаи, когда срок действия сертификата темы истек и чтобы не гадать какую дату устанавливать в телефоне, дабы инсталлятор принял тему, проще ее переподписать новым сертификатом, с более продолжительным сроком действия.
Таким образом, хотя dev. cert. обеспечивает больший диапазон capabilities (первая и вторая категории), это преимущество нивелируется привязкой к IMEI, что затрудняет установку sis-пакета на других устройствах, IMEI которого не значится в сертификате (например, если вы решили поделиться с кем-нибудь темой оформления или программкой, не требующей системных capabilities).
Надеюсь, я смог убедить вас в том, что package UID, capabilities и наличие встроенных компонентов играют немаловажную роль в процессе подписи, а также в выборе сертификата. Отсюда вытекают основные преимущества SISContents по сравнению с другими программами:
- наличие графического интерфейса, обеспечивающего наглядный обзор всех компонентов sis-пакета и подписей, которые у них есть с указанием срока действия сертификата, участвовавшего в подписывании;
- управление подписями (добавление/удаление) индивидуально по каждому компоненту пакета, благодаря чему программа незаменима при подписи embedded sis-файлов;
- наличие профилей подписывания, позволяющих добавить неограниченное количество сертификатов и использовать их в зависимости от ситуации.
Первые два пункта мы уже обсудили выше, хотелось бы ненадолго остановиться на профилях подписывания. Каждый профиль это сертификат и его секретный ключ (private key). Данная схема позволяет прописать в программу несколько сертификатов, например, self-signed и сертификат разработчика. Также эта возможность будет полезна, если у вас несколько телефонов и для каждого используется свой сертификат.
Итак, переходим практической части. (Примечание: скриншоты, использованные в статье, можно посмотреть в приложенном архиве “Скриншоты к статье.zip”).
Открываем sis-пакет, который необходимо подписать, с помощью SISContents и прежде всего, смотрим его Package UID (скриншот 1). Если он относится к защищенному диапазону значений, используем сертификат разработчика (привязанный к IMEI), в противном случае смотрим capabilities. Впрочем, capabilities надо смотреть в любом случае, потому что если нам встретятся manufacturer approval capabilities (категория 3, см. выше), подпись можно не проводить (если вы не пользуетесь универсальным сертификатом на хакнутом устройстве, пакет установить не получится). Capabilities можно увидеть в списке файлов, при этом, необходимо просмотреть все исполняемые файлы пакета (они отмечены синим шрифтом). Если пакет имеет встроенные компоненты, необходимо чтобы была включена галочка Show files of subcomponents внизу списка – это позволит включить отображение в списке файлов этих компонентов.
В приведенном примере (скриншоты 1 и 2) пакет имеет package UID 0xE6FAEAAE и capabilities: ReadDeviceData, WriteDeviceData, NetworkServices, ReadUserData, WriteUserData, Location. Так как исполняемый файл требует capabilities из второй категории (ReadDeviceData, WriteDeviceData, Location), то подписывать необходимо сертификатом разработчика.
Подпись в SISContents осуществляет в диалоговом окне, которое можно вызвать в главном меню, пункт Tools->Sign package (скриншот 3). Перед тем как подписать sis-пакет необходимо добавить в программу свой сертификат разработчика, т.е. сформировать список профилей подписывания.
Формирование списка профилей осуществляется на вкладке Key Pairs (key pair – пара ключей, т.е. секретный ключ и соответствующий ему сертификат), см. скриншот 4. Добавить новый профиль позволяет форма в правой части окна. Когда в списке профилей (левая часть окна) выделен какой-либо профиль, это означает редактирование его параметров в форме. Для добавления нового профиля необходимо, чтобы в списке сертификатов ни один не был выделен (достаточно кликнуть на пустой области списка, чтобы снять выделение).
Для добавления нового профиля необходимо заполнить все поля:
- Выбрать файл сертификата;
- Выбрать файл ключа, соответствующего этому сертификату;
- Ввести пароль для дешифровки файла ключа, если ключ шифрован. Опция Show letters позволяет включить отображение символов пароля, чтобы не ошибиться при вводе. Максимальная длина пароля – 25 символов.
- Имя профиля. Здесь можно ввести что угодно, но рекомендуется выбрать осмысленное название, чтобы этот сертификат можно было сразу идентифицировать.
Примечание: в SISContents по умолчанию присутствует один профиль для подписывания. Это self-signed сертификат сроком действия 25 лет (SISContents self-signed certificate). Он может быть использован для подписывания тем и программ, требующих capabilities из первой категории (см. список capabilities, приведенный в теоретической части).
После того, как формирование списка ключей завершено, можно переходить к процессу подписывания sis-пакетов. Подпись добавляется к каждому компоненту пакета индивидуально. Если это не embedded-пакет, то компонент всего один. Для embedded-пакетов нужно соблюдать правило: сначала должны быть подписаны встроенные компоненты, потому что подписи родительских компонентов в процессе подписи дочерних удаляются (так как перестают быть валидными).
Для добавления подписи к выбранному компоненту выберите нужный профиль из сформированных ранее пар ключей/сертификатов и нажмите на «Add signature». После формирования подпись будет добавлена в список. При подписывании embedded sis-пакетов следите за тем, чтобы напротив всех компонентов в колонке Signatures не было нулей (ноль означает, что компонент не подписан), иначе вы не сможете установить sis-пакет на устройство. После подписывания всех компонентов закройте окно работы с подписями и сохраните пакет, выбрав в главном окне SISContents пункт Files->Save as…
Если у компонентов sis-пакета уже есть какие-либо подписи, их можно удалить. Для этого выберите подпись в списке и нажмите на кнопку «Delete signature». Удалить подпись может понадобиться в случае, если срок действия предыдущего сертификата истек или пакет подписан self-signed сертификатом, а для установки требуется подпись сертификатом разработчика.
Как при подписывании sis-пакетов отличить какая подпись нужна, а какая нет? Во-первых, self-signed сертификат можно отличить от доверенного сертификата Symbian тем, что у self-signed поля кем и кому выдан сертификат (Issuer и Subject) совпадают. Для просмотра деталей сертификата в главном окне SISContents нужно дважды кликнуть на сертификате. Во-вторых, у сертификатов, выданных Symbian, в графе Issuer значится Symbian. Подписи Self-signed сертификатами можно удалять и заменять своими. Естественно, если компонент подписан сертификатом Symbian, удалять подпись нет необходимости, если только это не чей-то сертификат разработчика (они, как известно, тоже выдаются Symbian и, соответственно, имеют Symbian в графе Issuer). Подписи сертификатом разработчика легко отличить по сроку действия сертификата (3 года или 6 месяцев для старых сертификатов) и графе Issuer, где значение CN = Symbian Developer Certificate CA. Такие подписи тоже нужно удалять.
Ну и напоследок хотелось бы сделать одно замечание. В случае с embedded sis-пакетами, если часть его компонентов подписана Symbian, при просмотре capabilities необходимо определять, а не относятся ли эти файлы к уже подписанным компонентам. Для этого в SISContents можно просмотреть файлы встроенных компонентов отдельно, выбрав интересующий компонент в списке справа от строки с именем открытого файла.
Например, на скриншоте 5 видно, что пакет состоит из 4-х компонентов. Если просмотреть список всех его файлов, среди них можно найти те, которые требуют manufacturer approval capabilities, но эти файлы относятся к компоненту Symbian OS PIPS, которые уже подписан Symbian, а потому переподписи не требует. А вот срок действия компонента libavcodec истек, а так как файлам этого компонента достаточно self-signed сертификата (у него capabilities из первой категории), то старый сертификат можно удалить и подписать своим self-signed сертификатом.
Как видно, статья получилась немаленькая. Насколько данный материал полезен, решать, конечно, вам . Я попытался, насколько это возможно, рассказать о неочевидных моментах в подписывании sis-пакетов. Если есть желание поделиться своим опытом подписывания sis-пакетов, у вас появились замечания или вопросы, касающиеся статьи, пишите комментарии.
SISContents
версия 1.7.7.2
Последнее обновление программы в шапке 01.06.2013
Описание:
Программа для распаковки, упаковки, редактирования и подписи установочных SIS пакетов для SymbianOS v9.x
- чтение и вывод информации о sis-пакетах;
- распаковка sis-пакетов;
- извлечение встроенных (embedded) компонентов пакета в виде самостоятельных sis-пакетов с сохранением подписей;
- вывод и сохранение pkg-скрипта для последующей пересборки установочного sis-пакета;
- чтение и вывод информации о сертификатах, которыми подписан sis-файл;
- подпись sis-пакетов, удаление подписей и сертификатов, которыми подписан sis-пакет.
- функции редактирования: изменение названия, поставщика, версии, способа установки, правка списка поддерживаемых платформ (устройств), софт-зависимостей, опций, добавление, обновление и удаление файлов, встроенных компонентов, изменение capabilities, UID3, SID исполняемых файлов;
- чтение и распаковка файлов N-Gage;
- распаковка и редактирование содержимого mif-файлов внутри sis-пакетов;
- извлечение изображений и редактирование mbm файлов sis-пакетов;
- редактирование тем оформления для платформы S60
Программа обновилась до версии 1.3.2, берём в шапке.
Обновление до версии 1.51
siscontents151.zip ( 654.37 КБ )
Программа обновилась до версии 1.5.7 от 22.12.2009
Что-то желающих нет пользоватся этой программой хотя-бы на самом низшем уровне , смотреть из чего состоит установочный sis пакет , подписан или нет и каким сертификатом , когда создана программа , для каких версий Symbian и т.д.
Функциональность с обновлением версий добавляется:
SISContents имеет следующие возможности:
- чтение и вывод информации о sis-пакетах;
- распаковка sis-пакетов;
- извлечение встроенных (embedded) компонентов пакета в виде самостоятельных sis-пакетов с сохранением подписей;
- вывод и сохранение pkg-скрипта для последующей пересборки установочного sis-пакета;
- чтение и вывод информации о сертификатах, которыми подписан sis-файл;
- подпись sis-пакетов, удаление подписей и сертификатов, которыми подписан sis-пакет.
- функции редактирования: изменение названия, поставщика, версии, способа установки, правка списка поддерживаемых платформ (устройств), софт-зависимостей, опций, добавление, обновление и удаление файлов, встроенных компонентов, изменение capabilities, UID3, SID исполняемых файлов;
- чтение и распаковка файлов N-Gage;
- распаковка и редактирование содержимого mif-файлов внутри sis-пакетов;
- извлечение изображений и редактирование mbm файлов sis-пакетов;
- редактирование тем оформления для платформы S60.
КАК ПОДПИСЫВАТЬ ПРИЛОЖЕНИЯ СЕРТИФИКАТОМ.
В этой теме расмотренны ВСЕ способы подписи приложений, как на компьютере, так и на смартфоне.
1. Подпись приложения с помощью программы SignSigner. Данный способ устарел , смотрите ниже рекомендованный.
SISSigner.zip ( 778.54 килобайт ) Кол-во скачиваний: 11171
а) В удобном Вам месте создаете новую папку и кладете туда следующие файлы: "(название).sis" (т. е, собственно, саму программу, требующую подписи); "mycert.cer"; "mykey"; "SISSigner".
б) Запускаете программу "SISSigner" из той папки, куда Вы её вложили.
в) В окне запущенной программы вводите путь к файлам из новой папки ("(название).sis"; "mycert.cer"; "mykey"; пароль (12345678); и указываете сам файл, который необходимо подписать). Нажимаем кнопку "Подписать"
Недостаток этой программы в том, что подписанное приложение заменяет существующее.
а) В удобном Вам месте создаете новую папку и кладете туда следующие файлы: "mycert.cer"; "mykey"; "SIGNTool"; "SignSIS".
б) Запускаете программу "SIGNTool" из той папки, куда Вы её вложили.
в) В окне запущенной программы вводите путь к файлам из новой папки ("mycert.cer"; "mykey"; пароль (12345678), В НАСТОЯЩЕЕ ВРЕМЯ ПАРОЛЬ НЕ ПРИМЕНЯЕТСЯ И НЕ ЗАПОЛНЯЕТСЯ ЭТОТ ПУНКТ; и указываете сам файл, который необходимо подписать; можно еще указать место, где будет сохранен подписанный файл).
г) Ставим галочку напротив пункта "Добавить ‘Signed’к имени файла” и нажимаем кнопку "Подписать"
Достоинство этой программы в том, что подписанное приложение не заменяет существующее, а создает новое с приставкой к имени файла "signed"
3. Подпись приложения с помощью программы Signsis.
sign_sis.zip ( 477.2 килобайт ) Кол-во скачиваний: 3782
а) В удобном Вам месте создаете новую папку и кладете туда следующие файлы: "mycert.cer"; "mykey"; "install1.bat"; "install2.bat"; "uninstall.bat"; "Signsis.exe".
Данная программа позволяет подписывать приложения из контекстного (выпадающего) меню.
б) Открываем файл install1.bat в Блокноте для редактирования:
- Изменяем путь к диску, на котором установлена программа в значении set disk_ins=D (У меня программа установлена на диске D, если у вас она установлена на диске С то соответственно и надпись меняем на set disk_ins=С)
- Изменяем путь к папке, в которой установлена программа в значении set app_path=sign_sis (у меня программа находится в папке sign_sis, если она у вас находится, допустим, в папке Nokia в подпапке sign_sis, то значение будет таким app_path=Nokia/sign_sis) Про редактировании этого параметра будьте очень внимательными ( путь должен полностью совпадать ) и обратите внимание на наклон косых линий (Должны быть так / )
- Изменяем имя сертификата в значении set cer_name1=cert.cer (У меня сертификат называется cert.cer, если у вас он называется My.cer, то соответственно меняем set cer_name1=My.cer)
- Изменяем имя ключа в значении set key_name1=cert.key (У меня сертификат называется cert.key, если у вас он называется My.key, то соответственно меняем set key_name1=My.key)
- Изменяем значение set password1 на свой пароль (по умолчанию 12345678).
- Сохраняем сделанные изменения, выбрав в блокноте – Файл => Сохранить. Теперь можно закрыть блокнот.
в) Запускаем файл install1.bat двойным нажатием мыши.
Если Вы все выполнили правильно, то в результате по нажатию правой кнопкой мыши по приложению (файлу .sis), у Вас появится контекстное меню с пунктом "Подписать персональным сертификатом".
д) Далее загружаете на смартфон установочный файл и устанавливаете как обычно.
Если вы отредактируете файл install2.bat по типу (с разницей в ключе и сертификате), что и файл install1.bat, то у вас появится в контекстном меню выбор для подписи двумя разными сертификатами (в случае, если у Вас два и более телефонов)
Читайте также: