Fast and Lightweight X86/X86-64 Disassembler และ Library การสร้างรหัส
โปรแกรมตัวอย่างต่อไปนี้ใช้ 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 ด้วยตนเองนอกเหนือจาก CMake Build Logic
แพลตฟอร์ม: Windows
CMAKE สามารถได้รับคำแนะนำให้สร้างโครงการ Visual Studio สำหรับรุ่นเทียบกับรุ่นใดก็ได้ คู่มือวิดีโอที่อธิบายถึงวิธีการใช้ 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 |
| Ubuntu | apt-get install libzydis-dev zydis-tools |
| VCPKG | vcpkg install zydis |
ตัวอย่างเกี่ยวกับวิธีการใช้ Zydis ในโครงการ CMake ของคุณเองสามารถพบได้ใน repo นี้
ZydisInfo เครื่องมือบรรทัดคำสั่ง ZydisInfo สามารถใช้เพื่อตรวจสอบข้อมูลทั้งหมดที่ Zydis ให้เกี่ยวกับคำสั่ง

มีการผูกมัดอย่างเป็นทางการสำหรับการเลือกภาษา:
หากคุณกำลังมองหาส่วนหน้าของแอสเซมเบลอร์แบบ Asmjit สำหรับตัวเข้ารหัสลองดู Zasm Zasm ยังให้ wrapper C ++ ที่มีสำนวนรอบตัวถอดรหัสและอินเทอร์เฟซ Formatter
เวอร์ชันเป็นไปตามรูปแบบการกำหนดเวอร์ชันความหมาย การรับประกันความมั่นคงทั้งหมดใช้กับ API เท่านั้น ความเสถียรของ ABI นั้นมีให้เฉพาะระหว่างเวอร์ชันแพตช์เท่านั้น
master ถือรหัสขอบเลือดออกของรุ่นถัดไปที่ยังไม่เผยแพร่ zydis ต้องคาดหวังจำนวนแมลงและปัญหาที่เพิ่มขึ้นและความมั่นคงของ 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 ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT