https://github.com/williballenthin/lancelot
intel x86(-64) code analysis library that reconstructs control flow
https://github.com/williballenthin/lancelot
malware-analysis reverse-engineering
Last synced: 3 months ago
JSON representation
intel x86(-64) code analysis library that reconstructs control flow
- Host: GitHub
- URL: https://github.com/williballenthin/lancelot
- Owner: williballenthin
- License: apache-2.0
- Created: 2015-11-18T12:57:04.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-02-19T10:39:03.000Z (about 1 year ago)
- Last Synced: 2025-05-11T08:56:19.546Z (11 months ago)
- Topics: malware-analysis, reverse-engineering
- Language: Rust
- Homepage:
- Size: 22.3 MB
- Stars: 103
- Watchers: 7
- Forks: 12
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lancelot
[](https://github.com/williballenthin/lancelot/actions)
intel x86(-64) code analysis library that reconstructs control flow
## dependencies
- make
- cmake
- pkg-config
Consider using [cranelift](https://github.com/rust-lang/rustc_codegen_cranelift) during development:
```console
$ rustup component add rustc-codegen-cranelift-preview --toolchain nightly
$ env CARGO_PROFILE_DEV_CODEGEN_BACKEND=cranelift cargo build -Zcodegen-backend
```
Also consider using `mold`:
```console
$ mold -run cargo build
# or with cranelift:
$ env CARGO_PROFILE_DEV_CODEGEN_BACKEND=cranelift mold -run cargo build -Zcodegen-backend
```
If it doesn't work with your (read: Willi's) nix setup,
use it just for incremental builds.
## maintenance
```
$ rustup update # update rust compiler
$ cargo update # update dependencies, not crossing major versions
$ cargo outdated -x unicorn # find outdated major version dependencies
```
because we use an older version of unicorn thats easier to build with cargo,
we want to ignore any old dependencies stemming from unicorn.
## testing
```
$ pre-commit run --all-files --hook-stage manual
```