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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
binviz — أداة تصوّر وفرز ثنائي — أسطح الإنتروبيا وفئات البايت وهيلبرت، ومخططات النقاط ورسوم تدفق التحكم عبر نموذج مساحة عناوين مشترك واحد. | Kitploit
أدوات/GitHubGitHub/karankantaria/binviz
التحليل الثابتالهندسة العكسيةالتحقيق الجنائي الرقميالاختبار العشوائيتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالتعلم والتعليم
GitHubkarankantaria/binviz

binviz

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

عرض المستودع
3منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

binviz

أداة تصور وتحليل أولي للملفات الثنائية: عروض تفاعلية مترابطة (الإنتروبيا، المخططات البيانية، أسطح الصور/النقاط، رسوم التحكم في التدفق) فوق نموذج واحد مشترك لمساحة العناوين.

root@kitploit:~
pipx install binviz && binviz serve

ما تقوم به

افتح ملفًا وكل عرض ينظر إلى نفس مساحة العناوين. حدد نطاقًا في أحدها والباقي يتبعه — الهدف هو الإجابة على سؤال "ما هذه المنطقة" بالنظر إليها بعدة طرق في وقت واحد.

  • ارسم خريطة لها. binviz model يحلل ELF/PE/Mach-O عبر LIEF إلى مناطق ورموز وربط إزاحة↔عنوان افتراضي، مع إظهار الفجوات والتراكبات. المدخلات التالفة تتراجع إلى نموذج خام بدلاً من الفشل.
  • اعثر على الأجزاء الجديرة بالنظر. إنتروبيا النوافذ وإشارات أخرى مسماة، أسطح فئات البايت وهيلبرت، وتصنيف النوافذ مقابل عتبات مقاسة من مجموعة بيانات حقيقية بدلاً من اختيارها (ARCHITECTURE.md §2.1). الملفات المضغوطة والمشفرة والكود والحشو لا تبدو متشابهة.
  • حدد الترميز. مخططات بيانية للثنائيات والثلاثيات المتناثرة، مخطط نقاط للتكرار والتشابه الذاتي، وعرض صورة عبر 15 تنسيق بكسل معبأ و24 وضع باير — مع مقترح خطوة، لأن خطوة الصف الخاطئة تحول الصورة الفوتوغرافية إلى ضوضاء قطرية فتستنتج أنه لا توجد صورة فوتوغرافية.
  • اقرأ الكود. فك ترميز Capstone بالمسح الخطي والتنازل التكراري (مختبر تفاضليًا ضد objdump)، سلسلة اكتشاف وظائف من خمس طبقات تشمل جداول القفز، ورسوم التحكم في التدفق مرتبة في عامل — مع رسم عدم اليقين لحدود مستعادة بدلاً من إخفائه.
  • احصل على حكم. binviz triage يقول كيف يبدو الملف ولماذا؛ في الواجهة كل نتيجة تنقر للوصول إلى البايتات التي اشتقت منها.

الواجهة هي خمس مساحات عمل — نظرة عامة، بايتات، أنماط، كود، والكل — فوق نفس التحديد. تحليل ثابت فقط: العينات تُحلل، ولا تُنفذ أبدًا.

لقطات الشاشة

مساحة عمل النظرة العامة

مساحة عمل البايتات

مساحة عمل الأنماط

مساحة عمل الكود

اللوحات

مُنتجة بنفس الكود الذي ترسم به الواجهة، مباشرة من سطر الأوامر — أعد توليدها بـ python docs/make_plates.py.

ملف ثنائي ثابتنفس البرنامج، مضغوط بـ UPX
هيلبرت فئات البايت، ثابتهيلبرت فئات البايت، مضغوط
الكود والسلاسل والحشو تنفصل إلى مناطق مرئية.البنية تنهار إلى ضوضاء موحدة — بصمة الضغط.
الإنتروبيا، ثابتالإنتروبيا، مضغوط
إنتروبيا النوافذ تبقى نطاقية ومنخفضة.مسطحة وعالية، حتى كعب فك الضغط.
خطوة الصف الصحيحةخطوة الصف الخاطئة
أشرطة RGB، خطوة صحيحةأشرطة RGB، خطوة خاطئة

نفس البايتات، رقم واحد مختلف. لهذا يوجد مقترح الخطوة: خطوة الصف الخاطئة تحول الصورة الفوتوغرافية إلى ضوضاء قطرية، فتستنتج أنه لا توجد صورة فوتوغرافية.

ARCHITECTURE.md هو كيف يتم تجميعها: ما يُشحن، العلامة التجارية التي يرثها كل سطح، الاتفاقيات التي يجب أن يتبعها أي شاشة جديدة، والقيود المتعمدة. SECURITY.md هو الموقف الأمني.

بدء سريع

root@kitploit:~
python -m venv .venv
# -c يثبت الإصدارات الدقيقة التي تعمل بها المجموعة؛ pyproject.toml
# ينشر نطاقات، لذا بدونها تحصل على ما يُحل اليوم
.venv/Scripts/pip install -e ".[dev]" -c constraints-dev.txt   # POSIX: .venv/bin/pip

# بناء مجموعة البيانات الحقيقية (يستخدم zig cc من حزمة ziglang pip؛
# يحتاج UPX في PATH، أو في $UPX، أو مفكوكًا في corpus/tools/upx-*/)
make -C corpus                            # أو: python corpus/build.py

# العتبات مقاسة، وليست مشفرة أبدًا (انظر ARCHITECTURE.md §2.1)
python corpus/calibrate.py                # يكتب corpus/calibration.json

pytest                                    # مجموعة الاختبارات الوظيفية
pytest -m perf -s                         # أهداف أداء 100 ميجابايت

binviz probe  corpus/out/hello_O2
binviz model  corpus/out/hello_upx
binviz signal corpus/out/hello_upx --name entropy_4096 --png out.png
binviz hist   corpus/out/ramp16.bin --n 2 --dtype u16le --png bigram.png

# الأسطح: -p يمرر معاملات السطح
binviz surface corpus/out/hello_static --name hilbert -p mode=byteclass --png h.png
binviz surface corpus/out/rgb_raw.bin  --name image -p mode=rgb8 -p width=320 --png i.png
binviz surface corpus/out/repeats.bin  --name dotplot -p mode=exact --png d.png
binviz stride  corpus/out/bayer_raw.bin --mode bayer_RGGB_RGB_12

# الكود
binviz disasm    corpus/out/hello_O2 --limit 20
binviz functions corpus/out/hello_static --sort size
binviz cfg       corpus/out/hello_O2 --func main --dot main.dot

# الحكم، ولماذا
binviz triage corpus/out/hello_upx

تشغيل الخادم

root@kitploit:~
binviz serve                              # 127.0.0.1:8000

يطبع عنوان URL يحتوي رمز جلسة — افتحه. كل مسار /api يتطلب الرمز، لأن "يستمع فقط على localhost" ليس دفاعًا ضد صفحة ويب في تبويب آخر، تصل إلى 127.0.0.1 مثل أي أصل آخر. SECURITY.md يحتوي المنطق.

الوصول إلى الملفات محصور في --root (الافتراضي: دليل العمل)، لذا تُرفض المسارات خارجه.

الحدود

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

العلمالبيئةالافتراضيما يحدده
--max-cache BYTESBINVIZ_MAX_CACHE5 جيجابايتالحجم الإجمالي للتحليلات المخزنة. بعد ذلك، تُطرد الإدخالات الأقل استخدامًا مؤخرًا — ولا يُطرد أبدًا ما يُحلل أو يُعرض.
--max-upload BYTESBINVIZ_MAX_UPLOAD8 جيجابايتأكبر رفع مقبول.
--max-analyses N—4التحليلات المتزامنة؛ بعدها يُرجع /api/open 503.
--root DIR—cwdالدليل الذي قد يقرأ منه الخادم الملفات.

التحليلات مخزنة تحت ~/.cache/binviz (أو $BINVIZ_CACHE)، بمفتاح تجزئة المحتوى، لذا إعادة فتح ملف ثنائي فورية. ارفع --max-cache إذا كنت تفضل الاحتفاظ بالمزيد؛ ذاكرة التخزين المؤقت آمنة للحذف يدويًا في أي وقت — أسوأ حالة هي أن إعادة الفتح التالية تعيد التحليل.

أعلام أخرى: --token لتثبيت رمز عبر عمليات إعادة التشغيل (مفيد مع وكيل تطوير Vite، الذي يقرأ BINVIZ_TOKEN)، --port، --cache، و--no-auth لـ CI. --no-auth يطبع لافتة تخبرك بما أطفأه؛ لا تستخدمه على جهاز تشاركه.

نافذة سطح المكتب

root@kitploit:~
pip install "binviz[app]"
binviz app                    # نافذة أصلية؛ --browser لمتصفحك

نفس الخادم، نفس الرمز، نفس تقييد --root مثل binviz serve — الفرق الوحيد هو ما يعرضه. بدون تثبيت pywebview، يفتح binviz app متصفحك بدلاً من ذلك.

يطبع عنوان URL الذي يخدم عليه، عمدًا: تغليف الواجهة في نافذة لا يزيل مستمع الشبكة، بل يسهل فقط نسيان وجوده. المستمع مصادق عليه في كلتا الحالتين، ولا يوجد --no-auth على binviz app.

تعرض النافذة وظيفة واحدة بالضبط للصفحة — منتقي ملفات أصلي — ولا شيء آخر. انظر src/binviz/app.py لمعرفة لماذا تلك القائمة قصيرة كما هي.

بناء تطبيق مستقل

الإصدارات تشحن عجلة ولا شيء آخر. برنامج Python مجمد غير موقع يضم capstone وlief ويوجد لتشريح الملفات الثنائية المضغوطة هو بالضبط الملف الشخصي الذي تخطئ فيه SmartScreen وهجمات AV — لذا بدلاً من شحن واحد، يحمل المستودع ما تحتاجه لبنائه بنفسك، مما يتجاوز توقيع الكود تمامًا.

root@kitploit:~
pip install pyinstaller                # 6.x
python tools/build_ui.py               # يبني web/ ويجهزه في الحزمة
pyinstaller packaging/binviz.spec      # -> dist/binviz/

توقع ~100 ميجابايت، يهيمن عليها numpy وlief. إنها حزمة onedir، وليست ملفًا واحدًا ذاتي الاستخراج: أطلق dist/binviz/binviz.exe (أو انقر نقرًا مزدوجًا) لنافذة سطح المكتب، أو أعطه أي أمر فرعي — dist/binviz/binviz.exe triage sample.exe — لأن البناء المجمد هو CLI كامل، وليس النافذة فقط.

خطوة التجهيز ليست اختيارية. web/dist يعيش خارج حزمة Python، لذا تخطيها ينتج تطبيقًا تفتح نافذته على JSON 404؛ يرفض spec البناء بدلاً من السماح بذلك بصمت.

على macOS نفس الأمر ينتج أيضًا dist/Striate.app، بعلامة تجارية من packaging/icons/icon.icns. لم يُشغل أي منهما على Mac — انظر ARCHITECTURE.md §5.

--root لا يزال افتراضيًا إلى دليل العمل، لذا ملف تنفيذي بنقر مزدوج محصور في المجلد الذي يبدأ فيه — وهو عادةً مجلد التطبيق نفسه. اضبط "بدء في" للاختصار، أو أطلقه بـ --root DIR.

ملف تنفيذي بنقر مزدوج يطلب بيانات اعتماد. بدون وسائط، يشغل البناء المجمد binviz app --auth local، وهو الفرق الوحيد عن افتراضي العجلة نفسه بعدم وجود شاشة تسجيل دخول. الاثنان يجيبان على سؤالين مختلفين: binviz app المكتوب في طرفية هو بالفعل فعل متعمد من مالك الجلسة، بينما النقر المزدوج لا يثبت شيئًا — إنه مسار الإطلاق الوحيد بدون طرفية، بدون أمر مكتوب وبدون قرار تقييد خلفه. طلب بيانات الاعتماد هو كيف تقول النافذة بصوت عالٍ ما كانت الطرفية ستقوله. شغّل binviz passwd أولاً لتعيين واحدة، أو مرر --auth none صراحةً لتخطيها؛ أي شيء تقدمه في سطر الأوامر يظل يفوز.

تسجيل الدخول

افتراضيًا لا توجد شاشة تسجيل دخول ولا شيء للنسخ: الخادم يصك رمز جلسة ويحقنه في الصفحة التي يخدمها، لذا فتح http://127.0.0.1:8000/ يعمل فقط بينما كل استدعاء API لا يزال مصادقًا عليه.

على جهاز تشاركه، شغّل شاشة تسجيل الدخول:

root@kitploit:~
binviz passwd                 # يطالب؛ ملخص scrypt، وضع 0600
binviz serve --auth local

إذا تخطيت binviz passwd، أول تسجيل دخول يطالب بالتثبيت — لافتة بدء التشغيل تحذر من ذلك، لأن من يصل إلى المنفذ أولاً يصبح الحساب.

ملف تنفيذي مجمد بنقر مزدوج يشغل --auth local لنفسه؛ انظر بناء تطبيق مستقل لمعرفة لماذا يختلف هذا الافتراضي عن العجلة.

شاشة تسجيل الدخول ليست حدود الأمان؛ فحص الرمز على كل مسار /api هو. أي شيء على الجهاز يمكنه تخطي النموذج واستدعاء API مباشرة، وهذا بالضبط سبب وجود الرمز. انظر SECURITY.md.

الأمان

binviz يفتح ملفات اختارها مهاجم — هذه هي الوظيفة، وليست حالة حافة، وأداة تحليل أولي حيث تحليل البرامج الضارة يعرض المحلل للخطر هو أسوأ فشل متاح. العينات تُحلل، ولا تُنفذ أبدًا. ما يُفعل بالباقي:

ضد ملف ثنائي عدائي

  • التحليل يتدهور بدلاً من أن يفشل: ملف ثنائي لا يستطيع LIEF فهمه يتراجع إلى نموذج خام، لذا العينة التالفة التي تريد النظر إليها أكثر ما زالت قابلة للفحص.
  • كل ربط مقيد بـ EOF، وما قُص يُبلغ في تحذيرات النموذج بدلاً من تصحيحه بصمت.
  • فك الترميز لا يمكن أن يحلق إلى الأبد — المسح يحد عند 1M تعليمة ويحمل مجموعة زيارات، لذا قفزة إلى الذات تنتهي بنيويًا بدلاً من مهلة. استرداد جدول القفز يحد عند 256 إدخالًا.
  • مسارات التخزين المؤقت لا يمكن اجتيازها: id في كل مسار /api/{id}/… يجب أن يكون بالضبط 64 حرفًا سداسيًا قبل استخدامه لبناء مسار.
  • الملفات الكبيرة تتدفق بدلاً من التخزين المؤقت، لذا ملف أكبر من RAM بطيء بدلاً من انهيار نفاد الذاكرة.

ضد متصفح عدائي — التهديد الذي لا يعالجه "يستمع فقط على localhost"، لأن صفحة في تبويب آخر تصل إلى 127.0.0.1 مثل أي أصل آخر:

  • كل مسار /api يتطلب رمزًا. يُصك عند بدء التشغيل ويُحقن في الصفحة، لذا لا يُلصق شيء يدويًا ولا يُترك أي مسار مفتوحًا.
  • شاشة تسجيل الدخول ليست حدود الأمان — فحص الرمز هو. يمكن تخطي النموذج؛ لا يمكن تخطي الرمز.
  • الوصول إلى الملفات محصور في --root، الذي افتراضيًا إلى دليل العمل. تُرفض المسارات خارجه.
  • قائمة سماح Host وCORS ضيقة، لذا الأصل الذي يحتاج الوصول هو الوحيد الذي يحصل عليه.
  • البيانات الوصفية الثنائية لا يمكن أن تصبح سكربت: السلاسل المرفوعة من عينة — أسماء الأقسام، الرموز — تمر عبر هارب واحد، مدعوم بـ CSP.
  • الطلبات محدودة ومتحقق منها — حجم الرفع، حجم التخزين المؤقت، أبعاد الصورة النقطية وتزامن التحليل كلها لها سقوف (انظر الحدود).

نافذة سطح المكتب لا تزيل مستمع الشبكة، بل تسهل فقط نسيانه. لذا لا يوجد --no-auth على binviz app، وجسر js_api يعرض طريقة واحدة بالضبط — pick_file()، التي لا تأخذ وسائط وتُرجع مسارًا عبر نفس تقييد --root. يفشل اختبار إذا ظهرت طريقة ثانية أبدًا.

بيانات الاعتماد لـ --auth local هي ملخصات scrypt مكتوبة بوضع 0600؛ binviz لا يخزن كلمة مرور نصية.

SECURITY.md يحتوي نموذج التهديد، المنطق وراء كل ضابط، ما لم يُفعل عمدًا بعد، وكيفية الإبلاغ عن ثغرة بشكل خاص.

الترخيص

MIT — انظر LICENSE.

المجموعة تعبر تجميع عينات ELF بـ zig cc، لذا لا حاجة لأدوات Linux على Windows/macOS — العينات تُحلل، ولا تُنفذ أبدًا.

تنزيل الأداة