Skip to content

tathanhdinh/keystone-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keystone-rs

Yet another Rust binding for Keystone assembler framework.

Features

  • Hierarchical architecture: low-level binding is done by keystone-sys
  • Fully wrapped and reexported types: no more low-level stuffs
  • Zero-copy: no additional memory allocation
  • Windows support

Sample

use keystone::*;

fn main() {
    let engine = Keystone::from(Arch::X86, Mode::Bit32)
        .expect("Unable to initialize Keystone engine");

    engine.option(OptionType::Syntax, OptionValue::SyntaxNasm)
        .expect("Unable to set NASM syntax");

    let asm = engine.asm("mov ebp, esp", 0x4000)
        .expect("Unable to assemble");

    println!("{}", asm);
}

Contributors

Acknowledgments

About

Rust binding for Keystone assembler framework

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages