TurboConf الأمن دراسة

مرحبا بالجميع! قررت أن أشارك مع المجتمع معلومات حول تحليل صغير لفائدة صغيرة واحدة (مع شفرة غامضة) ، والمعروفة في دوائر ضيقة من ألقاب 1s. هذا مقالتي الأولى عن هبر ، أطلب منك عدم الركل كثيرًا ، لكن جدير بالانتقاد.

تنصل

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

ما هذا

TurboConf هو برنامج "برنامج تجريبي" يعمل على توسيع إمكانات مكون 1s ، وليس كلمة حول 1s ، والتي لا تتطلب التثبيت. يمكنك تنزيله على موقع الويب الذي يحمل نفس الاسم Runet. أجريت جميع الدراسات على الإصدار 5.9.7209.21363 بتاريخ 27 سبتمبر 2019.

التحليل الأولي

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

TurboConf في HxD
صورة

بعد ذلك ، نأخذ برنامج إلغاء ترجمته DotPeek وننظر إلى هذا التجميع فيه. لا يتم تشفير البايت كود ، لذلك ينتج برنامج إلغاء ترجمته مصادر أصلية تقريبًا:

استعادة طريقة رمز
صورة

من السهل أن نفهم هنا أن مزيد من عمل الأداة ينتقل إلى تطبيق "TurboConf.Application.exe". فتحه في DotPeek. هذا أيضًا تجميع برمز IL. ولكن على عكس التجميع السابق ، فإن بعض الطرق هنا غامضة ، على الأرجح باستخدام Confuser. عند دراسة الكود ، يصبح من الواضح أن المنطق الرئيسي للعمل هو "TurboConf.Service.dll" - وهذا هو أيضًا تجميع لـ .Net ، وكذلك بعض الطرق غير معروفة. عظيم ، هذا هو أكثر إثارة للاهتمام!

بحوث الدفاع

عند عرض بنية التجميع ، في مساحة الاسم "TurboConf.Service.Utils" ، نجد الفئة "Crypto" ، وفيها طريقة تحمل اسم التحدث "DecryptStringAES":

طريقة DecryptStringAES
صورة

على الرغم من أنها مبهمة ، فإنه ليس من الصعب استعادة منطق العمل منه. ابحث عن استخدام هذه الطريقة (إزاحة + F12):

نتائج البحث
صورة

وعلى الفور النجاح! تسمى هذه الطريقة 2 مرات في مُنشئ الفئة المسؤولة عن الترخيص!

مصدر الانتعاش

قام المشفر بتشفير جميع الخطوط ووضعها في ملف مورد واحد. يمكنك الحصول على هذا الملف باستخدام أداة فك ترميز Microsoft ildasm.exe المضمنة في Windows SDK (وليس فقط):

استرداد ملف الموارد
صورة

وبدلاً من الخطوط الأصلية ، يستبدل obfuscator الإنشاء التالي في التعليمات البرمجية: "<Module> .c (random_arithmic_operation)" ، حيث تكون نتيجة العملية الحسابية هي رقم معين يستند إلى إزاحة ملف المورد ، ومن ثم يتم استخراج البيانات المشفرة منه ، ثم يتم استرجاع البيانات المشفرة منها. لتسهيل مهمة فك تشفير السلاسل ، سننشئ مشروعًا جديدًا في Visual Studio ، وننقل ، مع القليل من التنقيح ، والفئة "<Module>" ومورد المورد "مورد". وبالتالي ، يمكننا أن نفهم أنه في نافذة DotPeek الكود التالي

<Module>.c(sizeof (float) - 47, sizeof (int) + 6429, (int) ((uint) k >> 16) >= 0 ? sizeof (int) + 200 : System.Type.EmptyTypes.Length - 1805516213) 

هذا هو السطر "المستخدم:"

استعادة ببطء المنطق بأكمله لفئة الترخيص. يمكن أن نتوقف عند هذا ، أي القيام باختراق بسيط في ملف "TurboConf.Service.dll" الذي يتم فحصه ، لاستبدال التحقق من المساواة للحصول على ترخيص مع عدم المساواة ، ولكن هذا ليس مثيرًا للاهتمام. الذهاب أبعد ...

مبدأ الحماية

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

مركز التراخيص المصغرة

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

بتشر
صورة

ثم تقوم الأداة المساعدة المطورة لإنشاء المفاتيح (سواء المؤقتة لفترة الصلاحية المحددة وإلى الأبد) ، بإضافة توقيع رقمي إلى المفتاح استنادًا إلى المفتاح الخاص الذي تم إنشاؤه نفسه:

كجن
صورة

نتيجة لذلك ، لدينا برنامج مسجل قابل للتنفيذ مع وظائف كاملة:

عن البرنامج
صورة

أخلاقية

التشويش هو طريقة جيدة للتشويش على العكس ، ولكنها مسألة وقت فقط.

PS

تحتوي المقالة بالتحديد على ثغرات في السرد ، حتى لا تحل محل مؤلف البرنامج. لا توجد رموز مصدر وبرامج عمل مرفقة ولن تكون كذلك. احترم عمل الآخرين ، خاصة الزملاء في "المتجر"!

شكرا لكل من يقرأ المنشور!

Source: https://habr.com/ru/post/ar480280/


All Articles