The Modern C++ wrapper for the Capstone-Engine.
Design a wrapper for our VMPilot project.
- CMake
- C++11 or higher compiler
Release build
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -G Ninja -DCMAKE_LINKER=mold
ninja
Debug build
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja -DCMAKE_LINKER=mold
ninja
#include <capstone.hpp>
#include <iostream>
int main()
{
auto cs = Capstone::Capstone(Capstone::Arch::X86, Capstone::Mode::MODE_64);
std::vector<uint8_t> code = {0x8d, 0x4c, 0x32, 0x08, 0x01, 0xd8};
auto insns = cs.disasm(code);
for (auto &insn : insns)
std::cout << insn.mnemonic << " " << insn.op_str << std::endl;
return 0;
}
add_executable(your_executable main.cpp)
target_include_directories(your_executable PRIVATE ${CAPSTONE_WRAPPER_INCLUDE_DIR})
target_link_libraries(your_executable ${CAPSTONE_WRAPPER_LIBRARY})