
منصة شاملة لمحاكاة وتجهيز الثنائيات.
زيلوس (Zeropoint Emulated Lightweight Operating System) هي منصة محاكاة ثنائية مبنية على بايثون. أحد استخدامات زيلوس هو تقييم السلوك الديناميكي للملفات الثنائية بسرعة عبر سطر الأوامر أو نصوص بايثون. جميع استدعاءات النظام (syscalls) يتم محاكاتها لعزل الملف الثنائي المستهدف. يتم دعم ملفات لينكس x86_64 (32 و 64 بت)، ARM و MIPS الثنائية. محرك Unicorn يوفر محاكاة لوحدة المعالجة المركزية (CPU).

التوثيق الكامل متاح هنا.
استخدم مدير الحزم pip لتثبيت زيلوس.
pip install zelos
لمحاكاة ملف ثنائي باستخدام الخيارات الافتراضية:
$ zelos my_binary
لعرض التعليمات التي يتم تنفيذها، أضف العلم --inst:
$ zelos --inst my_binary
يمكنك طباعة المرة الأولى فقط التي يتم فيها تنفيذ كل تعليمة، بدلاً من كل تنفيذ، باستخدام --fasttrace:
$ zelos --inst --fasttrace my_binary
بشكل افتراضي، يتم إخراج استدعاءات النظام (syscalls) على stdout. لكتابة استدعاءات النظام إلى ملف بدلاً من ذلك، استخدم العلم --trace_file:
$ zelos --trace_file path/to/file my_binary
حدد أي وسائط لسطر الأوامر بعد اسم الملف الثنائي:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
زيلوس تدعم الإضافات من الطرف الأول والثالث. بعض الإضافات البارزة حتى الآن:
zelos في IDA مع إضافة تعليقات على مستوى التعليمات.zelos.طلبات السحب (pull requests) مرحب بها. للتغييرات الكبيرة، يرجى فتح issue أولاً لمناقشة ما ترغب في تغييره.
يرجى التأكد من تحديث الاختبارات حسب الاقتضاء.
أولاً، قم بإنشاء بيئة بايثون افتراضية جديدة. هذا سيضمن عدم حدوث تعارض في إصدارات الحزم:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
الآن قم باستنساخ المستودع وانتقل إلى دليل zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
قم بتثبيت إصدار قابل للتعديل من زيلوس في البيئة الافتراضية. هذا يجعل import zelos متاحًا، وأي تغييرات محلية على زيلوس ستصبح سارية المفعول فورًا:
(zelos) $ pip install -e '.[dev]'
عند هذه النقطة، يجب أن تنجح الاختبارات ويجب أن يتم بناء التوثيق:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
التوثيق المبني موجود في docs/_build/html/.
قم بتثبيت hooks ما قبل الالتزام (pre-commit) لزيلوس لضمان الامتثال لأسلوب الكود:
(zelos) $ pre-commit install
بالإضافة إلى التشغيل التلقائي في كل commit، يمكنك تشغيلها في أي وقت باستخدام:
(zelos) $ pre-commit run --all-files
تختلف الأوامر قليلاً على ويندوز:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]