williballenthin/lancelot
GitHub: williballenthin/lancelot
一个用于 Intel x86/x86-64 代码分析并重建控制流的 Rust 库。
Stars: 109 | Forks: 14
# Lancelot
[](https://github.com/williballenthin/lancelot/actions)
用于重建控制流的 intel x86(-64) 代码分析库
## 依赖项
- make
- cmake
- pkg-config
建议在开发期间使用 [cranelift](https://github.com/rust-lang/rustc_codegen_cranelift):
```
$ rustup component add rustc-codegen-cranelift-preview --toolchain nightly
$ env CARGO_PROFILE_DEV_CODEGEN_BACKEND=cranelift cargo build -Zcodegen-backend
```
也可以考虑使用 `mold`:
```
$ mold -run cargo build
# 或使用 cranelift:
$ env CARGO_PROFILE_DEV_CODEGEN_BACKEND=cranelift mold -run cargo build -Zcodegen-backend
```
如果它不能在你的(这里指 Willi 的) nix 环境中工作,
请仅在增量构建时使用它。
## 维护
```
$ rustup update # update rust compiler
$ cargo update # update dependencies, not crossing major versions
$ cargo outdated -x unicorn # find outdated major version dependencies
```
因为我们使用的是更容易用 cargo 构建的旧版本 unicorn,
所以我们想要忽略任何源自 unicorn 的旧依赖项。
## 测试
```
$ pre-commit run --all-files --hook-stage manual
```
标签:Bash脚本, Rust, x86架构, 二进制分析, 云安全运维, 云资产清单, 代码分析, 凭证管理, 可视化界面, 控制流重构, 网络流量审计, 逆向工程, 通知系统