Как узнать ключ Windows 10, логика и способы

Как узнать ключ Windows 10, логика и способы

Содержание

  1. Скрипты как полноценный способ
  2. End Function
  3. ОЕМ-ключи
  4. ProduKey by NirSoft
  5. Magical Jelly Bean Keyfinder
  6. ShowKeyPlus

Надежный способ, как узнать ключ Windows 10, становится тем актуальнее, чем шире эта версия операционной системы охватывает рынок. Когда она увидела свет, Microsoft начала распространять ее беспрецедентным способом — массовым бесплатным обновлением. Даже нелицензионные копии виндовс, обновляясь, обретали легальный статус, нередко — даже без водяного знака на рабочем столе, которым грозились Майкрософт!

Казалось бы, чего еще желать простому (да, впрочем, и не только) «пользователю ЭВМ»? В бочке меда этой массовой автоматизированной бесплатной (впервые за всю историю Windows!) апдейтовой эпопеи есть и ощутимая ложка дегтя «Майкрософтовости».
Дело в том, что все клиентские компьютеры, работавшие под, например, Windows 8.1, которые в дальнейшем получили бесплатное обновление до новейшей версии, по итогу условно имеют один лицензионный ключ. Одинаковый для каждого из массивов «рабочих мест», характерные свойства обновления для которых совпали. В том числе, учитываются сигнатуры оборудования, с рядом других параметров составляющие уникальный ID, который и гарантирует право на использование ключа.

При этом разработчиком утверждается, что при желании установить вин 10 с нуля на тот компьютер, который ранее получал обновление, удастся без проблем — достаточно просто выбрать пункт «У пользователя нет ключа…», дальнейшие действия инсталлятор осуществит самостоятельно.

Забавно, но факт: вы уже подписали соглашение, утверждающее, что замена любой детали вашего ПК (особенно главных, вроде материнской платы) легким движением превращает ваш компьютер в… формально совершенно другой, целиком. И на него бесплатное обновление не выделялось, извольте покупать коробочку.
Тем не менее способы, как узнать ключ продукта Windows 10, все-таки существуют. Взглянем на картину в целом, прежде чем перейти к нюансам.
Технически сложные способы, скриптами и командами:
  • VisualBasic.
  •  PowerShell.

Обратиться к хранилищу UEFI (оставаясь в GUI):
  • используя PowerShell;
  • просто через командную строку.

Общедоступные, через утилиты:
  • ProduKey.
  • Magical Jelly Bean Keyfinder.
  •  ShowKeyPlus.

Рассмотрим их в деталях.

Скрипты как полноценный способ

Сценарии — лучший помощник в том, как узнать ключ установленной системы, той, которая активна в данное время. Существует написанный еще для 8.1 алгоритм извлечения ключа. Его работа строится на том, что ключ, как бы то ни было, зашифрован и хранится в регистре. В свою очередь, в поставку Виндовс входит пакет VBScript. Как посмотреть ключ? Обращаемся к хранилищу, дешифруем ВБСом, выводим на экран результат:
  1. Запустите любимый текстовый редактор, скопируйте этот код в него:

Set WshShell = CreateObject(«WScript.Shell»)
regKey = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\»
DigitalProductId = WshShell.RegRead(regKey & «DigitalProductId»)
Win8ProductName = «Windows Product Name: » & WshShell.RegRead(regKey & «ProductName») & vbNewLine
Win8ProductID = «Windows Product ID: » & WshShell.RegRead(regKey & «ProductID») & vbNewLine
Win8ProductKey = ConvertToKey(DigitalProductId)
strProductKey =»Windows 8 Key: » & Win8ProductKey
Win8ProductID = Win8ProductName & Win8ProductID & strProductKey
MsgBox(Win8ProductKey) MsgBox(Win8ProductID)
Function ConvertToKey(regKey) Const KeyOffset = 52 isWin8 = (regKey(66) \ 6) And 1 regKey(66) = (regKey(66) And &HF7) Or ((isWin8 And 2) * 4) j = 24 Chars = «BCDFGHJKMPQRTVWXY2346789» Do Cur = 0 y = 14 Do Cur = Cur * 256 Cur = regKey(y + KeyOffset) + Cur regKey(y + KeyOffset) = (Cur \ 24) Cur = Cur Mod 24 y = y -1 Loop While y >= 0 j = j -1 winKeyOutput = Mid(Chars, Cur + 1, 1) & winKeyOutput Last = Cur Loop While j >= 0 If (isWin8 = 1) Then keypart1 = Mid(winKeyOutput, 2, Last) insert = «N» winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0) If Last = 0 Then winKeyOutput = insert & winKeyOutput End If a = Mid(winKeyOutput, 1, 5) b = Mid(winKeyOutput, 6, 5) c = Mid(winKeyOutput, 11, 5) d = Mid(winKeyOutput, 16, 5) e = Mid(winKeyOutput, 21, 5) ConvertToKey = a & «—» & b & «—» & c & «—» & d & «—» & e


End Function

  1. Задайте файлу имя «любое название».VBS. Если вы использовали «Блокнот» — установите список типа на «Все файлы». Если же более подходящий для работы со скриптами (Sublime, Notepad++), то форматирование для языка Visual Basic должно было самоопределиться.
  2. Запустите получившийся в результате действий 1 и 2 файл. В выскочившем модальном окошечке — искомый код.

В Виндовс есть и другой инструмент, подходящий для решения таких задач. WPSh — автоматизирующая среда на базе собственного языка скриптов (сценариев) и оснастки с интерфейсом терминала, сооруженная на фреймворке .NET. Открыто и расширяемо, чем мы и воспользуемся:
  1. Снова запускаем свой текстовый редактор. Заполняем такими переменными и функциями:

function Get-WindowsKey { ## get the Windows Product Key from any PC param ($targets = «.»)
$hklm = 2147483650 $regPath = «Software\Microsoft\Windows NT\CurrentVersion» $regValue = «DigitalProductId» Foreach ($target in $targets) { $productKey = $null $win32os = $null $wmi = [WMIClass]»\\$target\root\default:stdRegProv» $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue) $binArray = ($data.uValue)[52..66]
$charsArray = «B»,»C»,»D»,»F»,»G»,»H»,»J»,»K»,»M»,»P»,»Q»,»R»,»T»,»V»,»W»,»X»,»Y»,»2′′,»3′′,»4′′,»6′′,»7′′,»8′′,»9′′ ## decrypt base24 encoded binary data For ($i = 24; $i -ge 0; $i-) { $k = 0 For ($j = 14; $j -ge 0; $j-) { $k = $k * 256 -bxor $binArray[$j] $binArray[$j] = [math]::truncate($k / 24) $k = $k % 24 } $productKey = $charsArray[$k] + $productKey If (($i % 5 -eq 0) -and ($i -ne 0)) { $productKey = «-» + $productKey } }
$win32os = Get-WmiObject Win32_OperatingSystem -computer $target $obj = New-Object Object $obj | Add-Member Noteproperty Computer -value $target $obj | Add-Member Noteproperty Caption -value $win32os.Caption $obj | Add-Member Noteproperty CSDVersion -value $win32os.CSDVersion $obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture $obj | Add-Member Noteproperty BuildNumber -value $win32os.BuildNumber $obj | Add-Member Noteproperty RegisteredTo -value $win32os.RegisteredUser $obj | Add-Member Noteproperty ProductID -value $win32os.SerialNumber $obj | Add-Member Noteproperty ProductKey -value $productkey $obj } }
  1. Создаем на любом диске файл формата PowerShell с любым именем. Например, getkey.PS1 на диске E:\
  2. Открываем консоль оболочки. Либо через командную строку, запущенную из-под учетной записи админа (клавиша Windows+X -> Command Prompt (administrator) -> powershell, ввод ), либо же — напрямую («Поиск» —> PowerShell, запустив от имени администратора).
  3. Инструктируем оболочку, подтверждаем выполнение инструкции, если потребуется (клавишей Y): Set-ExecutionPolicy RemoteSigned.
  4. Импортируем созданное нами расширение: Import-Module E:\getkey.ps1 (или же любая ваша директория и то название, которое вы предпочли).
  5. Выдергиваем определенную в ходе его выполнения переменную вызовом сценария: Get-WindowsKey.
  6. В консоли появится результат отработки сценария, нас интересует строчка «ProductKey».

Стоит заметить, что этот способ не гарантирует стопроцентной точности ключа, рекомендуется его еще как-либо проверить.

ОЕМ-ключи

Эти ключи относятся к системам, которые были предустановлены на технику, приобретенную вами. В материнской плате, конкретнее — в UEFI (ранее известном, как BIOS), хранится ОЕМ-ключ, либо самой 10-ки (в случае, когда она уже была приобретена с ПК), либо операционки, до обновления — ей предшествовавшей.
Проходим в уже известную нам командную строку, вызываем следующую команду:
wmic path softwarelicensingservice get OA3xOriginalProductKey
(выводим сведения в интерактивную среду, обратившись за ними к хранимому в банке Службы лицензирования ПО параметру, непосредственно содержащему ОЕМ ключ; используем конкретный префикс).

PowerShell (с правами администратора). Вовсе не обязательно совершать inclusion скрипта извне, его можно выполнить прямо из терминала:
powershell «(Get-WmiObject —query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey»
Здесь мы в точности повторяем действия, описанные в предыдущем пункте, но делаем мы это посредством инструментария WPSh.
Утилиты для поиска ключа
Их великое множество, но рассмотрения заслуживают некоторые из них.

ProduKey by NirSoft

Простая, но очень удобная утилита. Инсталляции не требует. Показывает все ключи, которые только сможет найти в вашей операционной системе, в том числе — от пакета Офис. Выгодным качеством этого софта является возможность сперва найти все ключи, даже в системах удаленных машин в сети, а затем — диверсифицировать и экспортировать их пофайлово одним кликом. При всех этих удобствах — бесплатна, спасибо NirSoft, разработчику.


Magical Jelly Bean Keyfinder

Во многом дублирует функциональность предыдущей, но:
  1. Требует установки; жадный разработчик засунул в инсталлятор уж очень много рекламного и мусорного софта, при этом отключить его весь — нельзя.
  2. Умеет вытягивать ключи даже из установочных образов или компакт-дисков дистрибутивов.
  3. Бывает коммерческой и бесплатной по лицензии, платить просят от 30 долларов США. Платная версия сканирует удаленные компьютеры, не тянет ключи разве что оттуда, где их быть не может от природы, определяет лицензии на софт от Адоб и сопровождается технически.

ShowKeyPlus

Все то же, что и ProduKey, но есть одно приятное (а временами -— незаменимое) дополнение: программа умеет подбирать точную версию ОС по ключу, что бывает очень нужным, пусть и не столь часто. Есть репозиторий на GitHub.

программа ShowKeyPlus
Особенно важно внимательно изучать источник скачивания такого софта: в теории, программе ничего не помешает отправить ваши ключики злоумышленникам. Так что скачивайте их только с сайтов разработчиков.
Гость, оставишь комментарий?
Имя:*
E-Mail: