Разработчики программного обеспечения могут подписывать программы, которые они разрабатывают или распространяют, чтобы проверять их целостность. Это гарантирует, что она не была изменена после ее подписания. В Windows 10 проверить цифровую подпись программы можно и через свойства exe-файла? но лучше использовать две программы из этого небольшого обзора.
Проверка с помощью SignTool
SignTool — это программа Microsoft, включенная в Windows SDK. Программа не включается в установку Windows и ее необходимо добавить в систему, установив Windows SDK.
Примечание. Windows 10 SDK имеет размер около 2,5 ГБ. Он установит в систему всевозможные файлы, которые вам не нужны, если вы не разрабатываете программы для Windows.
Отключение проверки цифровой подписи драйверов Windows 7 x64
Установщик устанавливает файл signtool.exe в следующих местах:
- C:Program Files (x86)Windows Kits10binx86signtool.exe
- C:Program Files (x86)Windows Kits10binx64signtool.exe
Для проверки подписей используйте следующие команды:
- SignTool verify program.exe — проверка по умолчанию.
- SignTool verify /pa program.exe —проверка сертификата подписи кода.
Проверка с помощью DigiCert Certificate
Загрузите утилиту Digicert Certificate Utility для Windows:
- Запустите программу. Ей не нужно устанавливать.
- Примите условия использования.
- Выберите проверку подписи..
- Выберите программу, которую вы хотите проверить.
- DigiCert проверяет подпись и отображает информацию в дополнительном окне.
- Он проверяет, был ли файл подписан, и если подпись подтверждена.
- Он проверяет метку времени подписи.
Если вы получите зеленые галочки для обеих проверок, проверка прошла успешно.
Читайте анонсы и посты целиком в ЖЖ, Medium, Голосе и Яндекс.Дзен!
Поддержите мой блог финансово. Все донаты пойдут на оплату хостинга и развитие сайта!
Telegram
Your Browser Does Not Support iframes!
Последние
Рубрики
Подписаться
Соединить с D
Соединить с D
1 Комментарий
Newest Most Voted
Inline Feedbacks
View all comments
Как отключить проверку цифровой подписи драйвера в Windows
5 лет назад
Как отключить проверку подписи для загруженных программ
[…] модифицировано. Проверить цифровую подпись ПО можно с помощью специальных программ. Однако, иногда нужно установить в систему […]
СЧЕТЧИКИ
РЕКЛАМА И ДОНАТЫ
Социальные сети
Использование материалов разрешается с активной ссылкой на levashove.ru.
Источник: levashove.ru
Как проверить цифровую подпись программы в Windows
Разработчики программного обеспечения и компании могут подписывать программы, которые они разрабатывают или распространяют, которые используются для проверки целостности программы, чтобы гарантировать, что она не была изменена после ее подписания.
В сегодняшней статье я расскажу о нескольких способах проверки цифровых подписей программ на компьютере под управлением Windows.
Проверка цифровой подписи программы в проводнике
Вы можете отображать и проверять подпись любой программы в Windows с помощью проводника.
- Кликните правой кнопкой мыши по программе, которую вы хотите проверить, и выберите свойства из контекстного меню.
- Выберите вкладку «Цифровые подписи» в окне «Свойства».
- Если вы видите подписи, перечисленные на вкладке, вы знаете, что файл был подписан в цифровом виде. Дважды щелкните по одной из подписей, чтобы отобразить дополнительную информацию.
Windows открывает информацию о подписчике и подписи в открывшемся окне. Вы можете нажать «Просмотреть сертификат», чтобы отобразить подпись или щелкнуть вкладку «Дополнительно», чтобы отобразить детали подписи.
Windows показывает вам, если «цифровая подпись в порядке», или нет.
Проверка цифровой подписи программы с помощью SignTool
SignTool — это программа Microsoft, включенная в Windows SDK. Программа не включается при установке Windows на машину или использовании Windows и ее необходимо добавить в систему, установив Windows SDK.
- Windows 7 SDK
- Windows 10 SDK
Примечание. При загрузке Windows 10 SDK загрузка имеет размер около 2,5 ГБ. Он установит в систему всевозможные файлы, которые вам не нужны, если вы не разрабатываете программы для Windows.
Установщик устанавливает файл signtool.exe в следующих местах:
- C: Program Files (x86) Windows Kits 10 bin x86 signtool.exe
- C: Program Files (x86) Windows Kits 10 bin x64 signtool.exe
Для проверки подписей используйте следующие команды:
- SignTool проверяет program.exe — по умолчанию для политики драйвера Windows для проверки.
- SignTool verify / pa program.exe — используйте это, чтобы проверить сертификаты подписи кода.
Проверка цифровой подписи программы в DigiCert Certificate
Вы можете загрузить утилиту Digicert Certificate Utility для Windows, чтобы проверить подписи приложений в операционной системе.
- Запустите программу после загрузки. Ее не нужно устанавливать.
- Примите условия использования, отображаемые при запуске.
- На вкладке «Подписание кода» выберите «проверить подпись» в заголовке.
- Выберите программу цифровую подпись которой хотите проверить.
- DigiCert проверяет подпись и отображает информацию в дополнительном окне.
- Он проверяет, был ли файл подписан, и если подпись подтверждена.
- Он проверяет метку времени подписи.
Если вы получите зеленые галочки для обеих проверок, проверка прошла успешно.
Заключение
В то время как большинству пользователей Windows, возможно, нет необходимости проверять подпись программ, это может быть полезно разработчикам, исследователям и продвинутым пользователям Windows.
Источник: spy-soft.net
Подделка подписи Android-приложения и её проверка
Несколько лет назад обнаружил, что в интернете появляются свежие версии моих, слегка изменённых (была убрана монетизация), apk буквально спустя пару часов после публикации версии. Был очень заинтересован этим, т. к. в моём приложении были проверки подписи в разных местах, что-то вроде:
PackageInfo info = null; try < info = getPackageManager() .getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES); >catch (PackageManager.NameNotFoundException e) < e.printStackTrace(); >if (null != info info.signatures.length > 0)
Исследовав свои сломанные apk-файлы, я обнаружил, что для обхода проверок подписи был создан класс PmsHookApplication , который наследовал существующий класс Application и в себе хранил набор байт моей оригинальной подписи, реализацию прокси класса PackageManager , который всегда возвращал этот набор байт оригинальной подписи.
В гугле обнаружил исходники инструмента, который вносил все эти изменения автоматически.
Этот инструмент может быть использован пользователями, обладающими минимальными техническими знаниями путём запуска файлов скриптов ‘run.bat’ or ‘run.sh’.
В результате простоты его использования и универсальности обхода всевозможных проверок подписи (избавлял от поиска этих проверок, т. к. все эти проверки считали, что apk не изменялся и не срабатывали), этот инструмент получил широкое распространение в определённых кругах любителей создания модификаций apk.
На рисунке ниже изображен результат работы скрипта:
На рисунке ниже часть манифеста до изменения инструментом обхода проверок подписи:
На рисунке ниже часть манифеста после изменения инструментом обхода проверок подписи (видно указание на внедрённый класс PmsHookApplication):
Сам класс PmsHookApplication , как он выглядит в dex:
Пример того, как выглядит набор байт подписи в этом классе:
Решил реализовать проверку подписи с помощью NDK используя чистый си, т. к. реверс-инженеров, которые могут декомпилировать нативные исполняемые файлы, значительно меньше. Игра в кошки-мышки 🙂
Сама проверка состоит из нескольких стадий: ● получаем путь апк файла; ● извлекаем ‘META-INF/CERT.RSA’ из apk с помощью zlib; ● парсим ‘META-INF/CERT.RSA’; ● проверям набор байт из подписи либо в нативном слое, либо передаем его в Java-слой приложения.
Результат работы проверки можно увидеть ниже:
1) до применения nsktool (инструмент подделки подписи):
2) после применения nsktool (инструмент подделки подписи):
Полную версию кода проверки можно увидеть тут.
На момент написания заметки известен следующий путь обхода: — атакующие подменяют путь к подписи и указывают путь к оригинальной подписи, которая имеет уже какое-нибудь другое имя.
Для предотвращения этого: — скрывайте чувствительные строковые константы в коде; — используйте при компиляции флаг -fvisibility=hidden .
Источник: otus.ru