كيف يتم تطوير المولدات التسلسلية/الكراكات؟

StackOverflow https://stackoverflow.com/questions/130058

  •  02-07-2019
  •  | 
  •  

سؤال

أعني أنني كنت أتساءل دائمًا كيف يمكن لشخص ما أن يطور خوارزميات لكسر/خداع قيود الاستخدام القانوني في العديد من البرامج التجريبية المتوفرة.

لمجرد الفضول.

هل كانت مفيدة؟

المحلول

وبصرف النظر عن كونها غير قانونية، فهي مهمة معقدة للغاية.

التحدث على المستوى النظري فقط، الطريقة الشائعة هي تفكيك البرنامج لكسره ومحاولة العثور على مكان فحص المفتاح أو الرمز التسلسلي.

القول أسهل من الفعل نظرًا لأن أي نظام حماية جاد سيتحقق من القيم في أماكن متعددة وسيستمد أيضًا معلومات مهمة من المفتاح التسلسلي لاستخدامها لاحقًا، بحيث يتعطل البرنامج عندما تعتقد أنك خمنت ذلك.

لإنشاء صدع، يجب عليك تحديد جميع النقاط التي يتم فيها إجراء الفحص وتعديل رمز التجميع بشكل مناسب (غالبًا ما يؤدي إلى عكس القفزة الشرطية أو تخزين التكاليف في مواقع الذاكرة).

لإنشاء keygen، يجب عليك فهم الخوارزمية وكتابة برنامج لإعادة إجراء نفس الحساب بالضبط (أتذكر إصدارًا قديمًا من MS Office كان لتسلسله قاعدة بسيطة جدًا، يجب أن يكون مجموع الأرقام مضاعفًا لـ 7، لذلك كانت كتابة keygen تافهة إلى حد ما).

يتطلب كلا النشاطين منك متابعة تنفيذ التطبيق في مصحح الأخطاء ومحاولة معرفة ما يحدث.وتحتاج إلى معرفة واجهة برمجة التطبيقات ذات المستوى المنخفض لنظام التشغيل الخاص بك.

تحتوي بعض التطبيقات المحمية بشكل كبير على رمز مشفر بحيث لا يمكن تفكيك الملف.يتم فك تشفيره عند تحميله في الذاكرة ولكن بعد ذلك يرفضون البدء إذا اكتشفوا أن مصحح الأخطاء في الذاكرة قد بدأ،

في جوهره، إنه شيء يتطلب معرفة عميقة جدًا وبراعة والكثير من الوقت!أوه، هل ذكرت أن هذا غير قانوني في معظم البلدان؟

إذا كنت تريد معرفة المزيد، ابحث في Google عن +ORC Cracking Tutorials فهي قديمة جدًا وربما لا فائدة منها في الوقت الحاضر ولكنها ستمنحك فكرة جيدة عما يعنيه ذلك.

على أية حال، هناك سبب وجيه جدًا لمعرفة كل هذا هو إذا كنت تريد كتابة نظام الحماية الخاص بك.

نصائح أخرى

يبحث الأشرار عن رمز التحقق من المفتاح باستخدام أداة التفكيك.يعد هذا أمرًا سهلاً نسبيًا إذا كنت تعرف كيفية القيام بذلك.

بعد ذلك تقوم بترجمة رمز التحقق من المفتاح إلى لغة C أو لغة أخرى (هذه الخطوة اختيارية).يمنحك عكس عملية فحص المفاتيح مولدًا رئيسيًا.

إذا كنت تعرف المجمّع، فسيستغرق الأمر عطلة نهاية أسبوع تقريبًا لتتعلم كيفية القيام بذلك.لقد فعلت ذلك منذ بضع سنوات فقط (لم أفرج عن أي شيء بالرغم من ذلك.لقد كان مجرد بحث لوظيفتي في تطوير الألعاب.لكتابة مفتاح يصعب كسره، عليك أن تفهم كيف يتعامل الناس مع الكسر).

يتعامل منشور نيلز مع المولدات الرئيسية.بالنسبة للشقوق، عادة ما تجد نقطة فرعية وعكس (أو تزيل الشرط) المنطق.على سبيل المثال، ستجري اختبارًا لمعرفة ما إذا كان البرنامج مسجلاً، وقد يُرجع الاختبار صفرًا إذا كان الأمر كذلك، ثم ينتقل وفقًا لذلك.يمكنك تغيير "القفز إذا كان يساوي صفرًا (je)" إلى "القفز إذا لم يكن يساوي صفرًا (jne)" عن طريق تعديل بايت واحد.أو يمكنك كتابة عمليات عدم على أجزاء مختلفة من التعليمات البرمجية التي تفعل أشياء لا تريد القيام بها.

يمكن تفكيك البرامج المجمعة، وبمرور الوقت الكافي، يمكن للأشخاص المصممين تطوير تصحيحات ثنائية.الكراك هو مجرد تصحيح ثنائي لجعل البرنامج يتصرف بشكل مختلف.

أولاً، معظم أنظمة حماية النسخ ليست متقدمة بشكل جيد، ولهذا السبب لا ترى الكثير من الأشخاص يتداولون برامجهم الخاصة هذه الأيام.

هناك بعض الطرق المستخدمة للقيام بذلك.يمكنك التنقل خلال التعليمات البرمجية في مصحح الأخطاء، الأمر الذي يتطلب عمومًا معرفة جيدة بالتجميع.باستخدام ذلك يمكنك الحصول على فكرة عن المكان الذي يتم فيه استدعاء طرق حماية النسخ/keygen في البرنامج.مع ذلك، يمكنك استخدام مفكك مثل المؤسسة الدولية للتنمية برو لتحليل الكود عن كثب ومحاولة فهم ما يحدث وكيف يمكنك تجاوزه.لقد قمت باختراق النسخة التجريبية المحدودة زمنيًا من قبل عن طريق إدخال تعليمات NOOP خلال التحقق من التاريخ.

يتعلق الأمر حقًا بالفهم الجيد للبرامج والفهم الأساسي للتجميع. هاك5 قام بعمل سلسلة من جزأين في أول حلقتين هذا الموسم حول أساسيات الهندسة العكسية والتكسير.إنه حقًا أساسي، ولكن ربما يكون بالضبط ما تبحث عنه.

يقوم أحد المتسللين المحتملين بتفكيك البرنامج والبحث عن وحدات بت "حماية النسخ"، وتحديدًا عن الخوارزمية التي تحدد ما إذا كان الرقم التسلسلي صالحًا أم لا.من هذا الكود، يمكنك في كثير من الأحيان معرفة نمط البتات المطلوب لفتح الوظيفة، ثم كتابة مولد لإنشاء أرقام بهذه الأنماط.

البديل الآخر هو البحث عن الوظائف التي تُرجع "صحيح" إذا كان الرقم التسلسلي صالحًا و"خطأ" إذا لم يكن كذلك، ثم قم بتطوير تصحيح ثنائي بحيث تُرجع الدالة دائمًا "صحيح".

كل شيء آخر هو إلى حد كبير شكل مختلف عن هاتين الفكرتين.حماية النسخ هي دائماً قابل للكسر حسب التعريف - في مرحلة ما، يجب أن ينتهي بك الأمر برمز قابل للتنفيذ وإلا فلن يتمكن المعالج من تشغيله.

يمكنك فقط استخراج الرقم التسلسلي من الخوارزمية والبدء في إلقاء "التخمينات" عليه والبحث عن استجابة إيجابية.أجهزة الكمبيوتر قوية، ولا تستغرق عادةً سوى بعض الوقت قبل أن تبدأ في إصدار الضربات.

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

ثم كان الأمر يتعلق فقط بالعثور على المكالمة الصحيحة وترميز قيمة الإرجاع الصحيحة من تلك المكالمة.

أنا متأكد من أن الأمر لا يزال مشابهًا، لكنهم يبذلون الكثير من الجهد لإخفاء موقع المكالمة.آخر مرة حاولت فيها استسلمت لأنها استمرت في تحميل التعليمات البرمجية فوق التعليمات البرمجية التي كنت أتنقل فيها مرة واحدة، وأنا متأكد من أنها أصبحت أكثر تعقيدًا منذ ذلك الحين.

أتساءل لماذا لا يقومون فقط بتوزيع الثنائيات المخصصة، حيث يتم تخزين اسم المالك في مكان ما (مشفر ومبهم) في الثنائي أو يتم توزيعه بشكل أفضل على الثنائي بأكمله.تقوم AFAIK Apple بذلك مع ملفات الموسيقى من متجر iTunes، ولكن من السهل جدًا إزالة الاسم من الملفات.

أفترض أن كل صدع مختلف ، لكنني أعتقد في معظم الحالات أن شخصًا ما يقضي الكثير من الوقت في تصحيح الأخطاء يتتبع التطبيق المعني.

يأخذ المولد التسلسلي خطوة واحدة إلى الأمام من خلال تحليل الخوارزمية التي تتحقق من الرقم التسلسلي للصلاحية وعكس المهندسين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top