تخطَّ إلى المحتوى

FLOSS - استخراج النصوص المشفرة للبرمجيات الخبيثة (Cheatsheet)

FLOSS - استخراج النصوص المشفرة للبرمجيات الخبيثة (Cheatsheet)

FLOSS (FLARE Obfuscated String Solver، من Mandiant) يستخرج النصوص المشفرة من البرمجيات الخبيثة تلقائياً. يقوم المؤلفون بإخفاء URLs ومفاتيح التسجيل والأوامر بانتظام بحيث تجد أداة strings الكلاسيكية لا شيء مفيد. يذهب FLOSS أبعد من ذلك: فهو يحدد روتينات فك التشفير داخل الملف الثنائي، يحاكيها، ويستعيد النص الواضح — ويكشف نصوص المكدس والنصوص الضيقة والنصوص المفكك تشفيرها التي لا يمكن للاستخراج الثابت أن يكتشفها. إنها أداة الفحص الأولى لأي عينة برمجيات خبيثة Windows.

حلل البرمجيات الخبيثة فقط في آلة افتراضية/صندوق رمل معزول. FLOSS تحاكي الكود من العينة.

التثبيت

الطريقةالأمر
ملف ثنائي مستقلتنزيل من GitHub Releases (Windows/Linux/macOS)
pippip install flare-floss
التحققfloss --version

الاستخدام الأساسي

الأمرالوصف
floss malware.exeاستخرج جميع أنواع النصوص
floss -j malware.exeمخرجات JSON
floss --no static malware.exeتخطي النصوص الثابتة العادية
floss -n 6 malware.exeالحد الأدنى لطول النص 6
floss --helpقائمة الخيارات الكاملة

أنواع النصوص التي يستعيدها FLOSS

النوعما هو
الثابتالنصوص العادية (ما يجده strings)
المكدسبناء الأحرف حرفاً تلو الآخر على المكدس في وقت التشغيل
الضيقمبني في حلقات ضيقة، غير موجود بالكامل في الذاكرة في وقت واحد
مفكك التشفيرينتج عن روتين فك التشفير (XOR, RC4, مخصص)

الثلاثة الأخيرة هي القيمة المضافة — فهي غير مرئية لـ strings لأنها لا تكون موجودة كبايتات متجاورة في الملف.

اختيار أنواع التحليل

العلمالتأثير
--only staticنصوص عادية فقط (سريع)
--only stackنصوص المكدس فقط
--only tightنصوص ضيقة فقط
--only decodedنصوص مفكك التشفير/المحاكاة فقط
--no decodedتخطي مرحلة المحاكاة (البطيئة)
# فحص سريع: تخطي المحاكاة
floss --no decoded sample.exe

# تمرير عميق: كل شيء، JSON للأتمتة
floss -j sample.exe > strings.json

إشارات الفحص للبحث عنها

النمطيقترح
URLs / IPsالبنية التحتية C2
HKLM\, HKCU\المثابرة عبر التسجيل
cmd.exe, powershellتنفيذ الأوامر
CreateRemoteThread, VirtualAllocحقن العملية
كتل Base64حمولات مضمنة
.onion, عناوين المحفظةالبرمجيات المالية/التسريب
floss sample.exe | grep -iE "http|\.exe|HKLM|powershell|AppData"

المخرجات والتكامل

الخيارالغرض
-j / --jsonمخرجات قابلة للقراءة الآلية للأنابيب
-v / -vvVerbose / debug
--functions 0x401000ركز المحاكاة على وظائف محددة
سكريبتات IDA/Ghidraعد النصوص المستعادة إلى فك التجميع

تغذية مخرجات FLOSS مرة أخرى إلى Ghidra كتعليقات تجعل التحليل اليدوي اللاحق أسرع بكثير.

سير العمل الشائع

# تسلسل فحص البرمجيات الخبيثة القياسي
floss -j sample.exe > floss.json          # استعادة النصوص
jq -r '.strings.decoded[].string' floss.json | sort -u   # ركز على المفكك
# → pivot to Ghidra/x64dbg على الوظائف التي أنتجت نصوس مثيرة للاهتمام

# قارن المتغيرات: أي نصوص تغيرت بين العينات؟
floss --no decoded a.exe > a.txt; floss --no decoded b.exe > b.txt
diff a.txt b.txt

FLOSS مقابل الأدوات ذات الصلة

الأداةتستعيد
FLOSSStatic + stack + tight + decoded (محاكاة)
stringsبايتات قابلة للطباعة متجاورة فقط
capaالإمكانيات/السلوكيات، وليس النصوص
Detect It Easyتحديد Packer/compiler

ثالوث فحص قياسي: Detect It Easy لتحديد الحزم، FLOSS لاستعادة النصوص، capa لتعداد الإمكانيات.

الموارد