سريع وخفيف الوزن x86/x86-64 Disassembler و Library Code.
يستخدم برنامج المثال التالي Zydis لفك مخزن مؤقت للذاكرة المعطى وطباعة الإخراج إلى وحدة التحكم.
zydis/أمثلة/disassemblesimple.c
الخطوط 38 إلى 63 في 214536A
يولد برنامج المثال أعلاه الإخراج التالي:
007FFFFFFF400000 push rcx
007FFFFFFF400001 lea eax , [ rbp - 0x01 ]
007FFFFFFF400004 push rax
007FFFFFFF400005 push qword ptr [ rbp + 0x0C ]
007FFFFFFF400008 push qword ptr [ rbp + 0x08 ]
007FFFFFFF40000B call [ 0x008000007588A5B1 ]
007FFFFFFF400011 test eax , eax
007FFFFFFF400013 js 0x007FFFFFFF42DB15Zydis/أمثلة/encodemov.c
الخطوط 39 إلى 62 في B37076E
يولد برنامج المثال أعلاه الإخراج التالي:
48 C7 C0 37 13 00 00
يمكن العثور على المزيد من الأمثلة في دليل الأمثلة لهذا المستودع.
هناك العديد من الطرق لإتاحة Zydis على نظامك. قائمة الأقسام الفرعية التالية خيارات شائعة الاستخدام.
المنصات: Windows ، MacOS ، Linux ، BSDS
يمكنك استخدام Cmake لبناء Zydis على جميع المنصات المدعومة. يمكن العثور على تعليمات حول كيفية تثبيت Cmake هنا.
git clone --recursive ' https://github.com/zyantific/zydis.git '
cd zydis
cmake -B build
cmake --build build -j4المنصات: Windows
نحافظ يدويًا على مشروع Visual Studio 2022 بالإضافة إلى منطق Build Cmake.
المنصات: Windows
يمكن توجيه Cmake إلى إنشاء مشروع Visual Studio لأي إصدار VS. يتوفر دليل الفيديو الذي يصف كيفية استخدام CMake GUI لإنشاء ملفات المشروع هذه هنا. لا تخلط بين الاستخدام الواضح لـ MacOS في الفيديو: يعمل Windows ببساطة في جهاز افتراضي.
المنصات: أي منصة مع مترجم C11 يعمل
نحن نقدم رأسًا فرديًا تم إنشاؤه تلقائيًا ومتغير ملف مصدر واحد من Zydis. لاستخدام هذا البديل من Zydis في مشروعك ، كل ما عليك فعله هو نسخ هذين الملفين في مشروعك. يمكن العثور على بنيات الدمج على صفحة الإفراج الخاصة بنا باسم zydis-amalgamated.tar.gz .
يتم إنشاء هذه الملفات باستخدام البرنامج النصي amalgamate.py .
المنصات: Windows ، MacOS ، Linux ، FreeBSD
تتوفر الرؤوس المبنية مسبقًا والمكتبات المشتركة والعاملين التنفيذيين من خلال مجموعة متنوعة من مديري الحزم.
| مستودع | تثبيت الأمر |
|---|---|
| قوس لينكس | pacman -S zydis |
| ديبيان | apt-get install libzydis-dev zydis-tools |
| البيرة | brew install zydis |
| نيكسوس | nix-shell -p zydis |
| أوبونتو | apt-get install libzydis-dev zydis-tools |
| VCPKG | vcpkg install zydis |
مثال على كيفية استخدام Zydis في مشروعك القائم على Cmake الخاص بك يمكن العثور عليه في هذا الريبو.
ZydisInfo يمكن استخدام أداة سطر أوامر ZydisInfo لتفقد جميع المعلومات التي توفرها Zydis حول التعليمات.

توجد الروابط الرسمية لمختار اللغات:
إذا كنت تبحث عن واجهة تجميع على طراز ASMJIT للتشفير ، تحقق من Zasm. يوفر Zasm أيضًا غلاف C ++ Idiomatic حول وحدة فك الترميز والواجهة التنسيقية.
تتبع الإصدارات مخطط الإصدار الدلالي. تنطبق جميع ضمانات الاستقرار على واجهة برمجة التطبيقات فقط. يتم توفير استقرار ABI فقط بين إصدارات التصحيح.
master رمز حافة النزيف للإصدار التالي ، الذي لم يتم إصداره. يجب توقع زيادة الكميات من الأخطاء والمشكلات ولا يضمن استقرار API خارج الالتزامات الموسومة.-beta ، -rc ، إلخ. اللواحقmaintenance/v4 إلى رمز الإصدار الأخير من V4maintenance/v3 إلى رمز الإصدار الأخير من V3maintenance/v2 إلى رمز الإصدار القديم الأخير لـ V2-fPIC لبناء المكتبة المشتركة /usr/bin/ld: ./libfoo.a(foo.c.o): relocation R_X86_64_PC32 against symbol `bar' can not be used when making a shared object; recompile with -fPIC
في ظل بعض الظروف (على سبيل المثال ، عند بناء Zydis كمكتبة ثابتة باستخدام Cmake ثم استخدام Makefiles لربطها يدويًا في مكتبة مشتركة) ، قد تفشل Cmake في اكتشاف معلومات النقل. يمكن إجبار ذلك عن طريق تمرير -DCMAKE_POSITION_INDEPENDENT_CODE=ON استدعاء Cmake.
نحن نقدم الخدمات الاستشارية ودعم الأعمال المهنية ل Zydis. إذا كنت بحاجة إلى امتداد مخصص ، أو تحتاج إلى مساعدة في دمج Zydis في منتجك أو ببساطة تريد تحديثات مضمونة تعاقديًا وأوقات التحول ، يسعدنا المساعدة في ذلك! يرجى الاتصال بنا على [email protected].
يتم جمع التبرعات وتوزيعها باستخدام حساب Flobernd.
Zydis مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.