مرحبا بالجميع! قررت أن أشارك مع المجتمع معلومات حول تحليل صغير لفائدة صغيرة واحدة (مع شفرة غامضة) ، والمعروفة في دوائر ضيقة من ألقاب 1s. هذا مقالتي الأولى عن هبر ، أطلب منك عدم الركل كثيرًا ، لكن جدير بالانتقاد.
تنصلكل ما تراه هنا يمكن أن يؤثر على قدراتك النفسية ، ولا تستخدم لنفسك ما هو موضح في المقال ، لأن هذا يمكن أن يضرك. لا يتحمل المؤلف أية مسؤولية عن دقة أو اكتمال أو جودة المعلومات المقدمة.
ما هذاTurboConf هو برنامج "برنامج تجريبي" يعمل على توسيع إمكانات مكون 1s ،
وليس كلمة حول 1s ، والتي لا تتطلب التثبيت. يمكنك تنزيله على موقع الويب الذي يحمل نفس الاسم Runet. أجريت جميع الدراسات على الإصدار 5.9.7209.21363 بتاريخ 27 سبتمبر 2019.
التحليل الأوليبعد التنزيل ، نحصل على أرشيف مضغوط. استخراج. نرى عدة ملفات إكس. دعنا ننظر إلى التطبيق الرئيسي مع أيقونة الشركة. إذا قمت بفتحها في محرر HEX بسيط ، على سبيل المثال ، HxD ، يمكنك بسهولة فهم أنه تجميع ضمن إطار .Net Framework ، لأن أسماء الفئات في مكتبة .Net القياسية مرئية:
بعد ذلك ، نأخذ برنامج إلغاء ترجمته DotPeek وننظر إلى هذا التجميع فيه. لا يتم تشفير البايت كود ، لذلك ينتج برنامج إلغاء ترجمته مصادر أصلية تقريبًا:
من السهل أن نفهم هنا أن مزيد من عمل الأداة ينتقل إلى تطبيق "TurboConf.Application.exe". فتحه في DotPeek. هذا أيضًا تجميع برمز IL. ولكن على عكس التجميع السابق ، فإن بعض الطرق هنا غامضة ، على الأرجح باستخدام Confuser. عند دراسة الكود ، يصبح من الواضح أن المنطق الرئيسي للعمل هو "TurboConf.Service.dll" - وهذا هو أيضًا تجميع لـ .Net ، وكذلك بعض الطرق غير معروفة. عظيم ، هذا هو أكثر إثارة للاهتمام!
بحوث الدفاععند عرض بنية التجميع ، في مساحة الاسم "TurboConf.Service.Utils" ، نجد الفئة "Crypto" ، وفيها طريقة تحمل اسم التحدث "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تحتوي المقالة بالتحديد على ثغرات في السرد ، حتى لا تحل محل مؤلف البرنامج. لا توجد رموز مصدر وبرامج عمل مرفقة ولن تكون كذلك. احترم عمل الآخرين ، خاصة الزملاء في "المتجر"!
شكرا لكل من يقرأ المنشور!