Как узнать из реестра GUID приложения в Windows
Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. В данной статье я приведу один из методов извлечения цифрового идентификатора приложения из реестра Windows. Правильное название: статистически уникальный 128-битный идентификатор {GUID}. Если Вы знаете {GUID},то можете открыть любой компонент Windows, shell:::{GUID} где — shell — интерпретатор команд Windows. и произвести удаление приложения. Но обо всем по порядку.
Что такое GUID?
GUID - это аббревиатура, которая обозначает глобальный уникальный идентификатор , их также называют UUID или универсальные уникальные идентификаторы - между ними нет реальной разницы. Технически это 128-битные уникальные ссылочные номера, используемые в вычислениях, которые вряд ли будут повторяться при генерировании, несмотря на отсутствие центральных полномочий GUID для обеспечения уникальности.
GUID (глобальный уникальный идентификатор) - это термин, используемый Microsoft для числа, которое ее программа генерирует, чтобы создать уникальную идентичность для объекта, такого как документ Word. Идентификаторы GUID широко используются в продуктах Microsoft для идентификации интерфейсов, наборов реплик, записей и других объектов. Разные виды объектов имеют разные виды GUID - например, база данных Microsoft Access использует 16-байтовое поле для создания уникального идентификатора для репликации.
Типы GUID
Существует 5 версий идентификаторов GUID, определенных в RFC 4122 , каждая с разными свойствами. Чтобы определить версию GUID, просто посмотрите на цифру версии, например, GUID версии 4 имеют формат xxxxxxxx-xxxx- 4 xxx- N xxx-xxxxxxxxxxxx, где N - это одно 5 значений 4, 8,9, A или B.
- Версия 1: дата-время и MAC-адрес - Эта версия генерируется с использованием текущего времени и MAC-адреса клиента. Это означает, что если у вас есть GUID версии 1, вы можете выяснить, когда он был создан, проверив значение метки времени.
- Версия 2: DCE Security - Эта версия специально не определена в RFC 4122, поэтому не должна генерироваться совместимыми генераторами. Он аналогичен GUID версии 1, за исключением того, что первые 4 байта метки времени заменяются пользовательским UID или GID POSIX, а старший байт последовательности часов заменяется доменом UID / GID POSIX.
- Версия 3: MD5 хэш и пространство имен - Этот GUID генерируется путем взятия пространства имен (например, полного доменного имени) и заданного имени, преобразования в байты, объединения и хеширования. После указания специальных битов, таких как версия и вариант, полученные байты затем преобразуются в его шестнадцатеричную форму. Особое свойство этой версии заключается в том, что идентификаторы GUID, сгенерированные из одного и того же имени в одном и том же пространстве имен, будут идентичны, даже если они генерируются в разное время.
- Версия 4: случайная - Этот тип GUID создается с использованием случайных чисел - из 128 битов в GUID 6 зарезервированы для специального использования (версия + вариантные биты), что дает нам 122 бита, которые могут быть заполнены случайным образом. Спецификация не определяет, как должны генерироваться случайные числа, они могут быть любыми, от псевдослучайных до криптографически безопасных, поэтому эти GUID, как и все другие GUID, следует использовать только для идентификации, а не для безопасности.
- Версия 5: SHA-1 хэш и пространство имен - Эта версия идентична версии 3 за исключением того, что SHA-1 используется на этапе хеширования вместо MD5.
Разделы реестра, где нужно искать:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Uninstall
- HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ Microsoft\Windows\CurrentVersion\Uninstall
Как узнать GUID приложения
Пример вызова компонента Windows диспетчер устройств:
shell:::{74246bfc-4c96-11d0-abef-0020af6b0b7a},для запуска необходимо вызвать диалоговое окно «Выполнить» используя клавиши Win + R, прописать данный код и нажать«OK» Все значения {GUID}хранятся в разделе реестра HKEY_CLASSES_ROOTCLSID. Зайдя в CLSID поиск, лучше всего производить методом перебора значений для правильного определения {GUID} в значении должен присутствовать подраздел ShellFolder. Для поиска нужного {GUID} необходимо иметь время и терпение. Итак, всё по порядку.
Раздел реестра HKEY_CLASSES_ROOTCLSID
Клавишами Win + R открываем диалоговое окно «Выполнить» вводим команду regedit - открыть редактор реестра. Для поиска {GUID} заходим в раздел реестра HKEY_CLASSES_ROOTCLSID
Пример: нам нужен {GUID} «Панели управления — Control Panel», методом перебора значений находим нужный, смотрим наличие подраздела ShellFolder.
Для того, чтобы извлечь и проверить {GUID} правой клавишей мыши нажимаем на значение, в открывшемся меню выбираем пункт «Экспортировать», и сохраняем с расширением .reg
Созданный файл реестра лучше всего открыть программой Notepad ++ познакомиться с которой можно в категории сайта «Офис».Если Вам понравился текстовой редактор Notepad ++ и Вы его установили, то правой клавишей мыши нажимаем на созданный файл реестра. В открывшемся меню выбираем «открыть с помощью Notepad ++ таким образом можно ознакомиться со структурой и синтаксисом файла реестра.
Выделяем значение, с помощью клавиш Ctrl + C копируем, вызываем диалоговое окно «Выполнить» и с помощью клавиш Ctrl + V вставляем, перед фигурными скобками прописываем Shell::: и нажимаем«OK».
Как узнать GUID через PowerShell
Для того, чтобы вы могли быстро извлечь информацию, о GUID ,я могу вам предложить небольшой скрипт:
$null = New-PSDrive -Name HKA -PSProvider Registry -Root Registry::HKEY_USERS
$UninstallKeys += Get-ChildItem HKU: -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'S-\d-\d+-(\d+-){1,14}\d+$' } | ForEach-Object { "HKU:\$($_.PSChildName)\Software\Microsoft\Windows\CurrentVersion\Uninstall" }
foreach ($UninstallKey in $UninstallKeys) {
Get-ChildItem -Path $UninstallKey -ErrorAction SilentlyContinue | Where {$_.PSChildName -match '^{[A-Z0-9]{8}-([A-Z0-9]{4}-){3}[A-Z0-9]{12}}$'} | Select-Object @{n='GUID';e={$_.PSChildName}}, @{n='Name'; e={$_.GetValue('DisplayName')}}
}
Еще один вариант воспользоваться вот такой конструкцией:
Тут мы еще вывели пути расположения MSI пакетов для удаления приложения и его ремонту.
Как узнать GUID через CMD
Откройте cmd от имени администратора и выполните команду, которая создаст на диске C:\ файл с отчетом
или без создания файла wmic product list
Если Вы сделали всё правильно, то откроется компонент Windows. Желаю удачи, и будьте внимательны при работе с реестром Windows. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Здравствуйте.
А если HKEY_CLASSES_ROOTCLSID такого пути в реестре нет?
У вас какая ОС?