Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
XPKeygen — Windows XP Keygen | Kitploit
Инструменты/GitHubGitHub/endermanch/xpkeygen
Обратная инженерияКриптографияАнализ Бинарных Файлов
GitHubendermanch/xpkeygen

XPKeygen

Windows XP Keygen

Репозиторий
1.1k68152 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

XPKeygen

Генератор VLK-ключей для Windows XP / Windows Server 2003. Этот инструмент позволяет генерировать валидные ключи Windows XP на основе исходного ключа продукта, который может быть случайным. Исходный ключ продукта (Raw Product Key, RPK) задаётся в виде 9 цифр XXX-YYYYYY и необходим только для генерации ключа Windows XP.

XP Keygen

Загрузка

Перейдите на вкладку Releases и загрузите оттуда последнюю версию.

Планы

Этот проект не мёртв — я сделаю всё возможное, чтобы довести его до ума.

Проблема

В общем, единственное, что отделяет нас от генерации валидных ключей Windows XP для КАЖДОЙ ВЕРСИИ и КАЖДОЙ СБОРКИ, — это отсутствие соответствующих закрытых ключей, полученных из их открытых аналогов внутри pidgen.dll. В интернете нет широко доступного кода для функции дискретного логарифмирования на эллиптической кривой, есть только расплывчатая информация о том, как это сделать.

Со временем проблема была частично решена.

Ресурс BINK не был никак закодирован, данные просто последовательно записывались в ресурс. sk00ter также полностью объяснил формат BINK на форумах MDL. Используя предыдущие знания сообщества по этой теме, я написал BINK Reader на Python 3. Файл находится в открытом доступе в этом репозитории, нажмите здесь, чтобы посмотреть исходный код.

Решение задачи дискретного логарифма — самая неизученная область исследований по состоянию на 28 мая 2023 года. Однако мой друг nephacks всё же нашёл тот неуловимый инструмент для решения этой сложной проблемы в самых тёмных уголках интернета. Он называется ECDLP (Elliptic Curve Discrete Logarithm Problem) Solver от Mr. HAANDI. Поскольку найти его в сети было крайне сложно, я перезалил его на свой сайт. Вы можете скачать инструмент здесь.

Файл ReadMe, который идёт с версией 0.2a солвера, сам по себе достаточно хорош, так что любой, у кого есть мозги, сможет настроить этот инструмент. Однако он не является открытым исходным кодом, поэтому интегрировать его в мой keygen оказалось невозможным.

В идеальном сценарии keygen запрашивал бы у вас ресурс BINK, извлечённый из pidgen.dll, а затем разворачивал бы его в следующие сегменты:

  • Открытый ключ (pubX; pubY)
  • Генератор (genX; genY)
  • Базовая точка (a; b)
  • Количество точек p

Зная эти сегменты, keygen подбирал бы порядок генератора genOrder с помощью алгоритма Шуфа, а затем закрытый ключ privateKey, используя вычисленный genOrder для применения наиболее оптимального алгоритма Полларда (Pollard's Rho). Нет сомнений, что при наличии рабочего алгоритма мы сможем взломать любой закрытый ключ за 20 минут на современных вычислительных мощностях.

Как только keygen завершает подбор правильного закрытого ключа, задача сводится к фактической генерации ключа, что этот keygen и делает. Чтобы дать вам лучшее представление, я могу показать поток работы идеального keygen. Зачёркнуто то, что реализовано в моём keygen:

  • Извлечение ресурса BINK
  • Подбор решения дискретного логарифма на эллиптической кривой (genOrder, privateKey)
  • Механизм обработки ключа продукта
  • Генерация ключа Windows XP
  • Проверка ключа Windows XP
  • Генерация ключа Windows Server 2003

Принцип работы

Нам нужно использовать случайный исходный ключ продукта как основу для генерации идентификатора продукта вида AAAAA-BBB-CCCCCCS-DDEEE.

Идентификатор продукта

ЦифрыЗначение
AAAAAКонстанта семейства ОС
BBBИдентификатор канала
CCCCCCПорядковый номер
SКонтрольная цифра
DDИндекс открытого ключа
EEEСлучайное трёхзначное число

Константа семейства ОС AAAAA отличается для каждой серии Windows XP. Например, для SP3 она равна 76487.

Разделы BBB и CCCCCC по сути кодируют исходный ключ продукта. Например, если первый раздел равен XXX, а второй — YYYYYY, исходный ключ продукта будет закодирован как XXX-YYYYYY.

Контрольная цифра S выбирается так, чтобы сумма всех цифр C с добавлением этой цифры была числом, кратным 7.

Индекс открытого ключа DD позволяет узнать, какой открытый ключ был использован для успешной проверки подлинности нашего ключа продукта. Например, для ключей Professional это 22, а для ключей VLK — 23.

Случайное число EEE используется для генерации другого идентификатора установки каждый раз.

Ключ продукта

Сам ключ продукта (не путать с RPK) имеет вид FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK и кодируется в Base-24 с алфавитом BCDFGHJKMPQRTVWXY2346789, чтобы исключить любые легко путаемые символы, такие как I и 1 или O и 0.

Согласно формуле ёмкости алфавита, ключ может содержать максимум 114 бит информации. $$N = \log_2(24^{25}) \approx 114$$

Исходя из этого расчёта, мы разворачиваем 114-битный ключ продукта в 4 упорядоченных сегмента:

СегментЁмкостьДанные
Upgrade1 битФлаг версии обновления
Serial30 битИсходный ключ продукта (RPK)
Hash28 битХэш RPK
Signature55 битПодпись на эллиптической кривой для хэша RPK

Для простоты мы объединим сегменты Upgrade и Serial в один сегмент под названием Data. По такой логике мы сможем извлечь RPK, сдвигая Data вправо, и упаковать его обратно, сдвигая биты влево, потому что у большинства априори валидных ключей продукта, которые я проверял, бит Upgrade был установлен в 1.

Microsoft переделала формат ключа продукта в Windows Server 2003, добавив серверный ключ аутентификации бэкенда, что было действительно безопасным подходом к проверке лицензий, поскольку никто не мог даже предположить, какой алгоритм проверки они использовали на своём частном сервере. Помимо добавления онлайн-механизма проверки, они также увеличили общую арифметику с 384 до 512 бит, а скаляр подписи — до 62 бит информации.

СегментЁмкостьДанные
Upgrade1 битФлаг версии обновления
Channel ID10 битЧасть BBB из RPK
Hash31 битХэш RPK
Signature62 битаПодпись на эллиптической кривой для хэша RPK
Auth Key10 битЗначение серверной аутентификации

Однако, если бы мы генерировали ключ без учёта онлайн-активации, мы всё равно могли бы создавать валидные ключи, которые позволили бы пройти установку операционной системы. И именно это делает код — он генерирует случайный 10-битный ключ аутентификации. Сегодня это вообще не имеет значения, так как серверы активации отключены, а Server 2003 считается abandonware, точно так же, как весь этот проект не следует считать пиратством.

Эллиптические кривые

Эллиптическая криптография (ECC) — это тип систем с открытым ключом. Этот класс систем опирается на сложные "односторонние" математические задачи — легко вычислить в одну сторону и практически невозможно решить в "другую". Иногда их называют "лазейками" (trapdoor) — легко попасть, сложно выбраться.[5]

ECC основана на решении уравнений вида $$y^2 = x^3 + ax + b$$

Скачать инструмент