cedar-renjun / zyan-disassembler-engine

Fast and lightweight x86/x86-64 disassembler library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zyan Disassembler Engine (Zydis) Build Status

Fast and lightweight x86/x86-64 disassembler library.

Features

  • Supports all x86 and x86-64 (AMD64) General purpose and System instructions.
  • Supported ISA extensions:
  • MMX, FPU (x87), AMD 3DNow
  • SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AES,
  • AMD-V, INTEL-VMX, SMX
  • Optimized for high performance
  • Very small overhead compared to other common disassembler libraries (about 60KiB)
  • Abstract formatter and symbol-resolver classes for custom syntax implementations.
  • Intel syntax is implemented by default
  • Complete doxygen documentation

Quick Example

The following example program uses Zydis to disassemble a given memory buffer and prints the output to the console.

#include <tchar.h>
#include <iostream>
#include <stdint.h>
#include "Zydis.hpp"

int _tmain(int argc, _TCHAR* argv[])
{
    uint8_t data[] =
    {
        0x90, 0xE9, 0x00, 0x00, 0x00, 0x00, 0xC3
    };
    Zydis::MemoryInput input(&data[0], sizeof(data));
    Zydis::InstructionInfo info;
    Zydis::InstructionDecoder decoder;
    decoder.setDisassemblerMode(Zydis::DisassemblerMode::M32BIT);
    decoder.setDataSource(&input);
    decoder.setInstructionPointer(0);
    Zydis::IntelInstructionFormatter formatter;
    while (decoder.decodeInstruction(info))
    {
        std::cout << formatter.formatInstruction(info) << std::endl;
    }
}

Compilation

Zydis builds cleanly on most platforms without any external dependencies. You can use CMake to generate project files for your favorite C++14 compiler.

Documentation

The HTML Doxygen documentation is automatically built from master every 12 hours.

License

Zyan Disassembler Engine is licensed under the MIT License. Dependencies are under their respective licenses.

About

Fast and lightweight x86/x86-64 disassembler library.

License:MIT License


Languages

Language:C++ 99.7%Language:CMake 0.3%