rydis
this is a crate which allows encoding, decoding and working with x86 instructions in a very convenient and user-friendly way.
it uses the Zydis library under the hood, but provides user-friendly wrappers around Zydis' interfaces to make it
easier to work with.
Example
let state = new?;
// encode an instruction
let encoded = state.encode?;
// decode it
let decoded_instruction = state.decode_one?;
// modify it
let mut modified_instruction = decoded_instruction.to_instruction;
modified_instruction.operands = Mem;
// format it
println!;
// re-encode the modified instruction
let re_encoded = state.encode?;