عن المشروع

obfus.h هي مكتبة تعتمد فقط على وحدات الماكرو لتعتيم تطبيقات C وقت الترجمة، مصممة خصيصًا لمترجم Tiny C Compiler (tcc) على ويندوز x86 وx64. يتم توزيعها كملف رأس واحد تضمينه في الكود المصدري؛ ويتم تطبيق التعتيم تلقائيًا أثناء الترجمة. يلاحظ المؤلف أنها تدعم جميع إصدارات tcc تقريبًا، ويوصي بالإصدار 0.9.27، ويذكر أن Visual C وGCC وClang غير مدعومة. الميزات الموثقة: - تعتيم استدعاءات الدوال لجعل الاستدعاءات أقل قابلية للقراءة. - آليات مكافحة التصحيح تهدف إلى إعاقة التحليل أثناء التشغيل؛ يتم تفعيل الحماية عبر استدعاءات للعديد من دوال MSVCRT الأساسية، ويمكن وضع بنية ANTI_DEBUG؛ في نقاط حرجة. - تحويل تدفق التحكم الذي يعيد هيكلة الشروط والحلقات؛ يوفر خيار CFLOW_V2 نسخة أقوى (وأبطأ). - إخفاء السلاسل عبر HIDE_STRING(str)، والتي تجمع السلاسل على المكدس من خلال تعليمات mov وقت التشغيل بدلاً من تعريفها بشكل ثابت. يحذر ملف README من أن بعض أدوات فك الترجمة قد تكشفها بسبب التحسينات الثابتة. - تقنيات مكافحة فك الترجمة تهدف إلى كسر مخرجات أدوات فك الترجمة بصريًا. - توقيعات مزيفة لعدة أدوات تعبئة وحماية لإرباك المهندسين العكسيين. - آلة افتراضية رياضية (تُفعَّل بـ VIRT) توفر VM_ADD وVM_SUB وVM_MUL وVM_DIV وVM_MOD، ووحدات مقارنة مثل VM_EQU/VM_NEQ/VM_LSS/VM_GTR/VM_LEQ/VM_GEQ، ونسخ للقيم المزدوجة، وبنى منطقية VM_IF/VM_ELSE_IF/VM_ELSE. يحذر README من أن الافتراضية قد تؤثر على التحسين ويجب استخدامها فقط عند الحاجة، وأن بعض عمليات المقارنة المزدوجة غير مدعومة. يتم التكوين عبر تعريفات مثل VIRT وCFLOW_V2 وANTIDEBUG_V2 وFAKE_SIGNS، وتعطيل عبر NO_OBF وNO_CFLOW وNO_ANTIDEBUG، أو عبر وسائط المترجم (مثال: tcc app.c -w -D NO_CFLOW -D ANTIDEBUG_V2 -D FAKE_SIGNS -D VIRT). ينصح README بالترجمة مع -w لقمع التحذيرات العديدة الناتجة أثناء التعتيم. الاستخدام هو سطر واحد: #include "obfus.h". يمكن لسكربت دفعي لويندوز (include-updater/obfh-update.cmd) جلب أحدث إصدار من المستودع دون git، وهو مفيد للتحديثات الأمنية الآلية قبل البناء. يربط README تحليلات أمنية من المجتمع، بما في ذلك تحليل الصندوق الأسود لآليات الحماية (التي يقول المؤلف إنها تم إصلاحها)، وكتابة عن CTF باستخدام جيل سابق، وObfusHunter وهي أداة لفحص الملفات المحمية بـ obfus.h. يذكر المؤلف أن منطق البرنامج المحمي يكاد يكون من المستحيل استعادته، لكنه يؤكد أن التعتيم وحده لا يضمن حماية كاملة وأن الأنظمة الأمنية الداخلية يجب تطويرها وصيانتها.