liblisa

Crates.ioliblisa
lib.rsliblisa
version
sourcesrc
created_at2024-08-30 17:20:14.11404
updated_at2024-09-30 13:35:31.149822
descriptionA tool for automated discovery and analysis of the ISA of a CPU.
homepagehttps://liblisa.nl/
repositoryhttps://github.com/liblisa/liblisa
max_upload_size
id1357935
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Jos (jxors)

documentation

https://docs.liblisa.nl/

README

libLISA is a library for automated discovery and analysis of CPU instructions. This crate is the core library that can be used to load and manipulate already-analyzed datasets. Several separate crates are available for enumeration, synthesis and architecture support:

Loading semantics from disk

Encodings support serde, and can be serialized and deserialized by any library that supports serde. By default, libLISA uses JSON. You can import these semantics as follows:

use std::fs::File;
use std::io::BufReader;
use std::path::PathBuf;

use liblisa::encoding::Encoding;
use liblisa::semantics::default::computation::SynthesizedComputation;
use liblisa::arch::x64::X64Arch;

let file = File::open("semantics.json").unwrap();
let reader = BufReader::new(file);
let semantics: Vec<Encoding<X64Arch, SynthesizedComputation>> =
    serde_json::from_reader(reader).unwrap();

See encoding::Encoding for how these semantics can be used.

Features

  • z3: adds the z3 crate as a dependency, and enables the Z3 implementation for smt::SmtSolver.
  • x64-undef: enables the arch::x64::undef namespace, which uses the XED disassembler library to provide definitions for undefined behavior.
Commit count: 32

cargo fmt