Cepat dan ringan X86/x86-64 Disassembler dan Perpustakaan Pembuatan Kode.
Contoh program berikut menggunakan zydis untuk membongkar buffer memori yang diberikan dan mencetak output ke konsol.
zydis/contoh/disassemblesimple.c
Baris 38 hingga 63 pada 214536a
Contoh program di atas menghasilkan output berikut:
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/contoh/encodemov.c
Baris 39 hingga 62 di B37076E
Contoh program di atas menghasilkan output berikut:
48 C7 C0 37 13 00 00
Lebih banyak contoh dapat ditemukan di direktori contoh repositori ini.
Ada banyak cara untuk membuat zydis tersedia di sistem Anda. Daftar sub-bagian berikut ini umumnya digunakan.
Platform: Windows, MacOS, Linux, BSDS
Anda dapat menggunakan cmake untuk membangun zydis di semua platform yang didukung. Instruksi tentang cara menginstal cmake dapat ditemukan di sini.
git clone --recursive ' https://github.com/zyantific/zydis.git '
cd zydis
cmake -B build
cmake --build build -j4Platform: Windows
Kami secara manual memelihara proyek Visual Studio 2022 di samping logika CMake Build.
Platform: Windows
CMake dapat diinstruksikan untuk menghasilkan proyek Visual Studio untuk hampir semua versi VS. Panduan video yang menjelaskan cara menggunakan CMAKE GUI untuk menghasilkan file proyek tersebut tersedia di sini. Jangan bingung dengan penggunaan macOS yang jelas dalam video: Windows hanya berjalan di mesin virtual.
Platform: Platform apa pun dengan kompiler C11 yang berfungsi
Kami menyediakan varian header tunggal yang dihasilkan secara otomatis & varian file sumber tunggal Zydis. Untuk menggunakan varian zydis ini dalam proyek Anda, yang perlu Anda lakukan adalah menyalin kedua file ini ke dalam proyek Anda. Bangunan yang digabungkan dapat ditemukan di halaman rilis kami sebagai zydis-amalgamated.tar.gz .
File -file ini dihasilkan dengan skrip amalgamate.py .
Platform: Windows, MacOS, Linux, FreeBSD
Header yang sudah dibangun, perpustakaan bersama dan executable tersedia melalui berbagai manajer paket.
| Gudang | Instal perintah |
|---|---|
| Arch Linux | pacman -S zydis |
| Debian | apt-get install libzydis-dev zydis-tools |
| Homebrew | brew install zydis |
| Nixos | nix-shell -p zydis |
| Ubuntu | apt-get install libzydis-dev zydis-tools |
| vcpkg | vcpkg install zydis |
Contoh tentang cara menggunakan zydis dalam proyek berbasis CMake Anda sendiri dapat ditemukan dalam repo ini.
ZydisInfo Alat baris perintah ZydisInfo dapat digunakan untuk memeriksa pada dasarnya semua informasi yang disediakan Zydis tentang suatu instruksi.

Binding resmi ada untuk pilihan bahasa:
Jika Anda mencari front-end assmjit assmjit untuk encoder, lihat ZASM. ZASM juga menyediakan pembungkus C ++ idiomatik di sekitar decoder dan antarmuka formatter.
Versi mengikuti skema versi semantik. Semua jaminan stabilitas berlaku untuk API saja. Stabilitas ABI hanya disediakan antara versi tambalan.
master memegang kode tepi pendarahan dari versi Zydis berikutnya yang belum dirilis. Peningkatan jumlah bug dan masalah harus diharapkan dan stabilitas API tidak dijamin di luar komitmen yang ditandai.-beta , -rc , dll. Sufiksmaintenance/v4 POINT ke kode rilis terbaru V4maintenance/v3 POINT ke kode rilis terbaru V3maintenance/v2 POINT ke Kode Rilis Legacy Terakhir V2-fPIC for shared Library Builds /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
Dalam beberapa keadaan (misalnya saat membangun zydis sebagai perpustakaan statis menggunakan cmake dan kemudian menggunakan makefiles untuk secara manual menghubungkannya ke perpustakaan bersama), CMake mungkin gagal mendeteksi bahwa informasi relokasi harus dipancarkan. Ini dapat dipaksakan dengan melewati -DCMAKE_POSITION_INDEPENDENT_CODE=ON ke doa cmake.
Kami menawarkan layanan konsultasi dan dukungan bisnis profesional untuk Zydis. Jika Anda memerlukan ekstensi khusus, memerlukan bantuan dalam mengintegrasikan zydi ke dalam produk Anda atau hanya ingin pembaruan yang dijamin secara kontrak dan waktu penyelesaian, kami dengan senang hati membantu dengan itu! Silakan hubungi kami di [email protected].
Sumbangan dikumpulkan dan didistribusikan menggunakan akun Flobernd.
Zydis dilisensikan di bawah lisensi MIT.