Crates.io | liblisa |
lib.rs | liblisa |
version | |
source | src |
created_at | 2024-08-30 17:20:14.11404 |
updated_at | 2024-09-30 13:35:31.149822 |
description | A tool for automated discovery and analysis of the ISA of a CPU. |
homepage | https://liblisa.nl/ |
repository | https://github.com/liblisa/liblisa |
max_upload_size | |
id | 1357935 |
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` |
size | 0 |
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:
liblisa-enc
for enumeration and encoding analysisliblisa-synth
for synthesisliblisa-x64-observer
for observing instruction execution on x86-64Encodings 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.
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.