liblisa-enc 0.3.0

A tool for automated discovery and analysis of the ISA of a CPU.
docs.rs failed to build liblisa-enc-0.3.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: liblisa-enc-0.1.0

This library contains libLISA's encoding analysis and some parts of enumeration.

Encoding Analysis

Encoding analysis can be invoked as follows:

use liblisa::arch::x64::X64Arch;
use liblisa::instr::Instruction;
use liblisa_enc::infer_encoding;
use liblisa_x64_observer::with_oracle;

let instr = Instruction::new(&[0x90]);
let encoding = with_oracle(|mut oracle| infer_encoding(&instr, &mut oracle)).unwrap();

println!("{encoding}");

Enumeration

Two techniques for skipping invalid instructions or errors are implemented: tunneling and randomized search. See [crate::random_search_skip_invalid_instrs] and [tunnel_invalid_instrs]/[tunnel_memory_errors].