
مولد مفاتيح Windows XP
مولّد مفاتيح VLK لنظامي Windows XP / Windows Server 2003. تتيح لك هذه الأداة توليد مفاتيح Windows XP صالحة استنادًا إلى المفتاح الخام (Raw Product Key)، والذي يمكن أن يكون عشوائيًا.
يتم توفير المفتاح الخام (RPK) بصيغة 9 أرقام XXX-YYYYYY وهو ضروري فقط لتوليد مفتاح Windows XP.

انتقل إلى تبويب Releases وحمّل أحدث إصدار من هناك.
هذا المشروع لم يمت — سأبذل قصارى جهدي لإنجاحه.
بشكل عام، الشيء الوحيد الذي يفصلنا عن توليد مفاتيح Windows XP صالحة لكل إصدار ولكل بناء هو عدم وجود المفاتيح الخاصة المقابلة لنظيراتها العامة داخل pidgen.dll. لا يوجد كود لدالة اللوغاريتم المتقطع للمنحنى الإهليلجي متاح على نطاق واسع عبر الإنترنت، بل توجد فقط معلومات غامضة حول كيفية القيام بذلك.
مع مرور الوقت، تم حل المشكلة جزئيًا.
لم يكن مورد BINK مشفّرًا بأي شكل من الأشكال، وكانت البيانات تُكتب في المورد بشكل تسلسلي فقط. كما شرح sk00ter تنسيق BINK بالكامل في منتديات MDL. بالاستفادة من المعرفة المجتمعية السابقة حول هذا الموضوع، كتبت قارئ BINK بلغة Python 3. الملف متاح للعموم في هذا المستودع، اضغط هنا لعرض الكود المصدري.
يُعد حل اللوغاريتم المتقطع أكثر مجالات البحث التي لم تُستكشف بعد حتى 28 مايو 2023. ومع ذلك، وجد صديقي nephacks تلك الأداة المراوغة لحل هذه المشكلة الصعبة في أحلك زوايا الإنترنت. تُسمى ECDLP (Elliptic Curve Discrete Logarithm Problem) Solver من إعداد Mr. HAANDI. ونظرًا لأنه كان من المحبط للغاية العثور عليها عبر الإنترنت، أعدت رفعها على موقعي الإلكتروني. يمكنك تحميل الأداة هنا.
ملف ReadMe المرفق مع الإصدار 0.2a من الحلّال جيد بما يكفي بحد ذاته، لذا فأي شخص يملك عقلًا سيكون قادرًا على إعداد تلك الأداة. ومع ذلك، فهي ليست مفتوحة المصدر، لذا ثبت أن دمجها في مولّد المفاتيح الخاص بي مستحيل.
في السيناريو المثالي، سيطلب منك مولّد المفاتيح مورد BINK المستخرج من pidgen.dll، ثم يقوم بفكّه إلى المقاطع التالية:
pubX; pubY)genX; genY)a; b)pبمعرفة هذه المقاطع، سيقوم مولّد المفاتيح بالبحث الشامل عن ترتيب المولّد genOrder باستخدام خوارزمية Schoof، متبوعًا بالمفتاح الخاص privateKey، مع الاستفادة من genOrder المحسوب لاستخدام خوارزمية Pollard's Rho الأكثر مثالية. مما لا شك فيه أننا نستطيع كسر أي مفتاح خاص في غضون 20 دقيقة باستخدام القوة الحاسوبية الحديثة، بشرط أن تكون لدينا الخوارزمية العاملة.
بمجرد أن ينهي مولّد المفاتيح البحث الشامل عن المفتاح الخاص الصحيح، تختصر المهمة في توليد مفتاح فعليًا، وهذا ما يفعله هذا المولّد. لأعطيك منظورًا أفضل، يمكنني أن أوفر لك تدفق عمل المولّد المثالي. ما هو مشطوب هو ما يطبقه مولّدي:
genOrder, privateKey)نحتاج إلى استخدام مفتاح خام عشوائي كأساس لتوليد معرّف منتج بصيغة AAAAA-BBB-CCCCCCS-DDEEE.
| Digits | Meaning |
|---|---|
| AAAAA | ثابت عائلة نظام التشغيل |
| BBB | معرّف القناة |
| CCCCCC | الرقم التسلسلي |
| S | رقم التحقق |
| DD | فهرس المفتاح العام |
| EEE | رقم عشوائي من 3 أرقام |
ثابت عائلة نظام التشغيل AAAAA يختلف لكل سلسلة من سلاسل Windows XP. على سبيل المثال، هو 76487 للإصدار SP3.
القسمان BBB وCCCCCC يقومان أساسًا بترميز المفتاح الخام. على سبيل المثال، إذا كان القسم الأول يساوي XXX والقسم الثاني يساوي YYYYYY، فسيتم ترميز المفتاح الخام كـ XXX-YYYYYY.
يتم اختيار رقم التحقق S بحيث يكون مجموع جميع أرقام C مع إضافته عددًا يقبل القسمة على 7.
فهرس المفتاح العام DD يخبرنا أي مفتاح عام تم استخدامه للتحقق بنجاح من صحة مفتاح المنتج لدينا.
على سبيل المثال، هو 22 لمفاتيح Professional و23 لمفاتيح VLK.
يُستخدم رقم عشوائي EEE لتوليد معرّف تثبيت مختلف في كل مرة.
مفتاح المنتج نفسه (وليس الخلط بينه وبين RPK) يكون بصيغة FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK، مُرمّز بنظام Base-24 مع
الأبجدية BCDFGHJKMPQRTVWXY2346789 لاستبعاد أي أحرف يمكن الخلط بينها بسهولة، مثل I و1 أو O و0.
وفقًا لصيغة سعة الأبجدية، يمكن أن يحتوي المفتاح على 114 بتًا من المعلومات على الأكثر. $$N = \log_2(24^{25}) \approx 114$$
بناءً على هذا الحساب، نقوم بفك مفتاح المنتج ذي 114 بتًا إلى 4 مقاطع مرتبة:
| Segment | Capacity | Data |
|---|---|---|
| الترقية | 1 بت | علم إصدار الترقية |
| الرقم التسلسلي | 30 بتًا | المفتاح الخام (RPK) |
| التجزئة | 28 بتًا | تجزئة RPK |
| التوقيع | 55 بتًا | توقيع المنحنى الإهليلجي لتجزئة RPK |
لتبسيط الأمر، سنجمع مقطعي Upgrade وSerial في مقطع واحد يُسمى Data. وبهذا المنطق سنتمكن من استخراج RPK عن طريق
إزاحة Data إلى اليمين وإعادة تجميعه عن طريق إزاحة البتات إلى اليسار، لأن معظم مفاتيح المنتج الصالحة قبليًا التي فحصتها كان علم الترقية فيها مضبوطًا على 1.
أعادت Microsoft تصميم تنسيق مفتاح المنتج مع Windows Server 2003 لتضمين مفتاح مصادقة خادم خلفي، وهو نهج آمن فعليًا للتحقق من الترخيص، إذ لم يكن بمقدور أي أحد أن يخمّن خوارزمية التحقق التي وظّفوها على خادمهم الخاص. بالإضافة إلى إضافة آلية التحقق عبر الإنترنت، رفعوا أيضًا الحسابات الإجمالية من 384 إلى 512 بتًا، وقيمة التوقيع إلى 62 بتًا من المعلومات.
| Segment | Capacity | Data |
|---|---|---|
| الترقية | 1 بت | علم إصدار الترقية |
| معرّف القناة | 10 بتات | جزء BBB من RPK |
| التجزئة | 31 بتًا | تجزئة RPK |
| التوقيع | 62 بتًا | توقيع المنحنى الإهليلجي لتجزئة RPK |
| مفتاح المصادقة | 10 بتات | قيمة المصادقة الخلفية |
ومع ذلك، إذا أنشأنا مفتاحًا دون وضع التفعيل عبر الإنترنت في الاعتبار، فسنظل قادرين على توليد مفاتيح صالحة تتيح لنا اجتياز إعداد نظام التشغيل. وهذا بالضبط ما يفعله الكود - فهو يولد مفتاح مصادقة عشوائيًا من 10 بتات. في الوقت الحاضر لا يهم ذلك إطلاقًا، لأن خوادم التفعيل معطّلة و يُعتبر Server 2003 برامج مهجورة (abandonware)، وبنفس الطريقة لا ينبغي اعتبار هذا المشروع بأكمله قرصنة.
تشفير المنحنيات الإهليلجية (ECC) هو نوع من أنظمة التشفير بالمفتاح العام. تعتمد هذه الفئة من الأنظمة على مسائل رياضية "أحادية الاتجاه" صعبة - سهلة الحساب في اتجاه واحد ويستعصي حلها في الاتجاه "الآخر". تُسمى أحيانًا دوال "الباب الخلفي" (trapdoor) - سهلة الدخول إليها، وصعبة الهروب منها.[5]
يعتمد ECC على حل معادلات من الشكل $$y^2 = x^3 + ax + b$$
بشكل عام، هناك حالتان خاصتان للمنحنى الإهليلجي المستخدم في التشفير - F2m وFp. تختلفان بشكل طفيف فقط. كلا المنحنيين معرّفان على حقل محدود؛ يستخدم Fp معاملًا أوليًا أكبر من 3، بينما يفترض F2m أن $p = 2m$. استخدمت Microsoft الأخير في خوارزميتها.
يتكون المنحنى الإهليلجي فوق الحقل المحدود Fp من:
منحنى إهليلجي فوق F17 سيبدو هكذا:

يتكون المنحنى من النقاط الزرقاء في الصورة أعلاه. عمليًا، "المنحنيات الإهليلجية" المستخدمة في التشفير هي "مجموعات نقاط في مصفوفة مربعة".
المنحنى أعلاه "تعليمي". إنه يوفّر طول مفتاح صغير جدًا (4-5 بتات). في مواقف العالم الحقيقي، يستخدم المطورون عادةً منحنيات من 256 بتًا أو أكثر.