Skip to content

keyman9848/zyan-disassembler-engine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.7%
  • CMake 0.3%