Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/battelle/sandsifter
تحليل الثغرات الأمنيةالهندسة العكسيةالاختبار العشوائيأمن الأجهزةتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubbattelle/sandsifter

sandsifter

فازر معالج x86

عرض المستودع
531412منذ 8 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

s a n d s i f t e r

: فازر معالجات x86

نظرة عامة

تقوم أداة sandsifter بتدقيق معالجات x86 بحثًا عن التعليمات المخفية وعيوب العتاد، عبر توليد كود آلة بشكل منهجي للتنقيب في مجموعة تعليمات المعالج، ورصد التنفيذ بحثًا عن الحالات الشاذة. كشفت sandsifter عن تعليمات معالج سرية من كل بائع رئيسي؛ وثغرات برمجية واسعة الانتشار في مفككات التجميع والمجمِّعات والمحاكيات؛ وعيوبًا في الهايبرفايزرات الخاصة بالمؤسسات؛ وعيوبًا في عتاد شرائح x86، بعضها حميد وبعضها حرج أمنيًا.

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

لتشغيل تدقيق أساسي على معالجك:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

demo_sandsifter

يتم فحص الكمبيوتر بشكل منهجي بحثًا عن التعليمات الشاذة. في النصف العلوي، يمكنك رؤية التعليمات التي تختبرها sandsifter حاليًا على المعالج. وفي النصف السفلي، تعرض sandsifter الحالات الشاذة التي تعثر عليها.

سيستغرق البحث من بضع ساعات إلى بضعة أيام، اعتمادًا على سرعة معالجك وتعقيده. وعند اكتماله، لخّص النتائج:

root@kitploit:~
./summarize.py data/log

demo_summarizer

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

  • ثغرة برمجية (على سبيل المثال، خلل في الهايبرفايزر أو مفكك التجميع لديك)،
  • ثغرة عتادية (خلل في وحدة المعالجة المركزية لديك)، أو
  • تعليمة غير موثّقة (تعليمة موجودة في المعالج، لكن الشركة المصنّعة لا تعترف بها)

اضغط 'Q' للخروج والحصول على ملخص نصي لعملية فحص النظام:

قد يصعب أحيانًا على الأدوات تصنيف نتائج الفحص تلقائيًا، وقد تتطلب تحليلًا يدويًا. للمساعدة في تحليل نتائجك، لا تتردد في إرسال ملف ./data/log إلى [email protected]. لا يتضمن هذا السجل أي معلومات شخصية سوى الشركة المصنّعة للمعالج وطرازه ومراجعته (من /proc/cpuinfo).

النتائج

كشف الفحص باستخدام sandsifter عن ميزات معالج غير موثّقة عبر عشرات الفئات من رموز opcode، وعيوبًا في الهايبرفايزرات الخاصة بالمؤسسات، وثغرات في كل أداة رئيسية تقريبًا لفك التجميع والمحاكاة، وعيوب عتاد حرجة تفتح ثغرات أمنية في المعالج نفسه.

يمكن العثور على تفاصيل النتائج في الورقة التقنية الخاصة بالمشروع.

(TODO: تعداد تفصيلي للنتائج هنا)

البناء

تتطلب sandsifter أولاً تثبيت مفكك التجميع Capstone: http://www.capstone-engine.org/. يمكن عادةً تثبيت Capstone باستخدام:

root@kitploit:~
sudo apt-get install libcapstone3 libcapstone-dev
sudo pip install capstone

يمكن بناء sandsifter باستخدام:

root@kitploit:~
make

ثم يتم تشغيلها باستخدام

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

الخيارات

تُمرَّر الخيارات إلى sifter باستخدام --flag، وإلى injector باستخدام -- -f.

مثال:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

خيارات Sifter:

root@kitploit:~
--len
	البحث عن اختلافات الطول بين جميع التعليمات (تعليمات نُفِّذت
	بشكل مختلف عما توقعه مفكك التجميع، أو لم تكن موجودة عندما
	توقعها مفكك التجميع

--dis
	البحث عن اختلافات الطول بين التعليمات الصالحة (تعليمات
	نُفِّذت بشكل مختلف عما توقعه مفكك التجميع)

--unk
	البحث عن التعليمات غير المعروفة (تعليمات لا يعرفها مفكك
	التجميع لكنها تُنفَّذ بنجاح)

--ill
	عكس --unk؛ البحث عن عمليات فك تجميع غير صالحة (تعليمات لا
	تُنفَّذ بنجاح لكن مفكك التجميع يعترف بها)

--tick
	كتابة التعليمات الحالية إلى القرص بشكل دوري

--save
	حفظ تقدم البحث عند الخروج

--resume
	استئناف البحث من آخر حالة محفوظة

--sync
	كتابة نتائج البحث إلى القرص فور العثور عليها

--low-mem
	عدم تخزين النتائج في الذاكرة

خيارات Injector:

root@kitploit:~
-b
	الوضع: القوة العمياء

-r
	الوضع: فازينج عشوائي

-t
	الوضع: فازينج نَفقي

-d
	الوضع: فازينج موجَّه خارجيًا

-R
	وضع الإخراج الخام

-T
	وضع الإخراج النصي

-x
	كتابة تقدم دوري إلى stderr

-0
	السماح بالإلغاء المرجعي لـ null (يتطلب صلاحيات sudo)

-D
	السماح بالبادئات المكررة

-N
	بدون دعم بت NX

-s seed
	في البحث العشوائي، قيمة البذرة (seed)

-B brute_depth
	في البحث بالقوة العمياء، أقصى عمق للبحث

-P max_prefix
	الحد الأقصى لعدد البادئات التي سيتم البحث فيها

-i instruction
	التعليمة التي يبدأ عندها البحث (شاملة)

-e instruction
	التعليمة التي ينتهي عندها البحث (غير شاملة)

-c core
	النواة التي سيتم تنفيذ البحث عليها

-X blacklist
	وضع التعليمات المحددة في القائمة السوداء

-j jobs
	عدد المهام المتزامنة التي سيتم تشغيلها

-l range_bytes
	عدد بايتات التعليمات الأساسية في كل نطاق فرعي

المفاتيح

m: الوضع - تغيير وضع البحث (القوة العمياء أو العشوائي أو النفقي) لأداة sifter

q: خروج - الخروج من أداة sifter

p: إيقاف مؤقت - إيقاف البحث مؤقتًا أو استئنافه

الخوارزميات

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

  • البحث العشوائي: يولّد تعليمات عشوائية لاختبارها؛ وينتج نتائج سريعة عمومًا، لكنه لا يستطيع العثور على التعليمات والثغرات المخفية المعقدة.
  • البحث بالقوة العمياء: يجرب التعليمات بشكل تدريجي، حتى طول يحدده المستخدم؛ وفي جميع الحالات تقريبًا، يكون أداؤه أسوأ من البحث العشوائي.
  • البحث الموجَّه أو المستند إلى الطفرات (mutation): صُمم لإنشاء تعليمات جديدة متزايدة التعقيد عبر الخوارزميات الجينية؛ وعلى الرغم من أن هذا النهج واعد، إلا أنه لم يُستكمل بالكامل أبدًا، ويُترك كنواة (stub) لأبحاث مستقبلية.
  • البحث النفقي (Tunneling): هو النهج الموصوف في العرض التقديمي والورقة التقنية، ويوفّر في جميع الحالات تقريبًا أفضل توازن بين الشمولية والسرعة.

نصائح

  • sudo

    للحصول على أفضل النتائج، يجب تشغيل الأداة كمستخدم جذر (root). هذا ضروري لكي تتمكن العملية من تعيين صفحة في الذاكرة عند العنوان 0، وهو ما يتطلب صلاحيات الجذر. تمنع هذه الصفحة العديد من التعليمات من التسبب في خطأ تجزئة (seg-fault) عند الوصول إلى الذاكرة، مما يسمح بتحليل أكثر دقة للأخطاء.

  • البادئات

    القيد الرئيسي لعمق البحث في التعليمات هو عدد بايتات البادئة التي سيتم استكشافها، حيث يزيد كل بايت بادئة إضافي من مساحة البحث بعامل يبلغ حوالي 10. حدد عدد بايتات البادئة باستخدام الخيار -P.

  • الألوان

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

    root@kitploit:~
    export TERM='xterm-256color'
    
  • الواجهة الرسومية

    تفترض الواجهة أن حجم الطرفية لا يقل عن حجم معين؛ إذا لم تكن الواجهة تُعرض بشكل صحيح، فجرّب تكبير حجم الطرفية؛ ويمكن تحقيق ذلك غالبًا عن طريق تصغير حجم خط الطرفية.

    في بعض الحالات، قد يكون من المرغوب أو الضروري تشغيل الأداة بدون الواجهة الرسومية. يمكن القيام بذلك عن طريق تشغيل injector مباشرة:

    root@kitploit:~
    sudo ./injector -P1 -t -0
    

    لفلترة نتائج استدعاء مباشر لـ injector، يمكن استخدام grep. على سبيل المثال،

    root@kitploit:~
    sudo ./injector -P1 -r -0 | grep '\.r' | grep -v sigill
    

    يبحث عن التعليمات التي اختلف فيها المعالج ومفكك التجميع حول طول التعليمات (grep '.r')، لكن التعليمات نُفِّذت بنجاح (grep -v sigill).

  • الفازينج الموجَّه

    في كثير من الحالات، من المفيد توجيه الفازر إلى هدف محدد. على سبيل المثال، إذا كنت تشتبه في وجود ثغرات في محاكٍ ما حول بادئات 'lock' المتكررة (0xf0)، يمكنك توجيه الفازر للبحث في هذه المنطقة من فضاء التعليمات باستخدام الخيارين -i و -e:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick -- -t -i f0f0 -e f0f1 -D -P15
    
  • الأنظمة القديمة

    لفحص الأنظمة الأقدم بكثير (معالجات فئة i586، الأنظمة منخفضة الذاكرة)، مرّر الخيار --low-mem إلى sifter والخيار -N إلى injector:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick --low-mem -- -P1 -t -N
    

المراجع

  • يمكن العثور على مناقشة للتقنيات والنتائج في العرض التقديمي الخاص بـ Black Hat.
  • التفاصيل التقنية موصوفة في الورقة التقنية.
  • شرائح العرض التقديمي الخاص بـ Black Hat متاحة هنا.

المؤلف

sandsifter هي جهد بحثي من كريستوفر دوماس (@xoreaxeaxeax).

تنزيل الأداة

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

  • 32 مقابل 64 بت

    افتراضيًا، تُبنى sandsifter لاستهداف عدد البتات (bitness) في نظام التشغيل المضيف. ومع ذلك، تختلف سلوكيات بعض التعليمات عند تشغيلها في عملية 32 بت مقارنةً بتشغيلها في عملية 64 بت. لاستكشاف هذه السيناريوهات، قد يكون من المفيد أحيانًا تشغيل sandsifter بنسخة 32 بت على نظام 64 بت.

    لبناء نسخة 32 بت من sandsifter على نظام 64 بت، يجب تثبيت Capstone بنسخة 32 بت؛ يمكن العثور على إرشادات ذلك على http://www.capstone-engine.org/.

    ثم يجب بناء sandsifter لمعمارية 32 بت:

    root@kitploit:~
    make CFLAGS=-m32
    

    وبهذا، يمكن استكشاف فضاء التعليمات الخاص بـ 32 بت على نظام 64 بت.