kudu-dynamics/blaze-platform
GitHub: kudu-dynamics/blaze-platform
基于 Haskell 构建的程序分析框架,集成 Ghidra 和二进制 lifter,专注于路径敏感、上下文敏感的程序分析及类型检查。
Stars: 56 | Forks: 6
# Blaze 平台
Blaze、Flint 和二进制 lifter 后端的 Monorepo
## 准备开发环境
如果您想搭建环境以为 Flint 做贡献,请遵循此 [DevelopersGuide.md](DevelopersGuide.md) 指南。
## 运行
### 使用 Docker 运行
`DOCKER_REGISTRY` 是一个可选的环境变量,在 [`docker-compose.yaml`](docker-compose.yaml) 中使用,用于引用存储由 [`Dockerfile`](Dockerfile) 和 [`.gitlab-ci.yml`](.gitlab-ci.yml) 构建的镜像的 Docker registry。
如果您使用 Docker registry,请设置此环境变量(例如,`export DOCKER_REGISTRY=gitlab.example.com:1234`)以使用存储在 registry 中的镜像。
否则,请保持未设置状态。
`docker-compose run { SERVICE_NAME } [ ARGS... ]`
### 从源码运行
通常情况下,使用 `stack run { TARGET } [ ARGS... ]`,但更多信息请参阅各个包的 `README.md`。
## 构建
### 使用 Docker 构建
只需 `docker build --platform=linux/amd64 .` 或 `docker-compose build`。
请参阅 [运行 > 使用 Docker](#using-docker) 部分中关于 `DOCKER_REGISTRY` 的注释。
您可以例如通过 `--build-arg OPTIM=-O2` 提高 GHC 优化级别(默认为 `-O0`)。
#### 带有 Ghidra 的 Blaze
以下命令构建带有 ghidra 的 blaze 工具。
Ghidra 是一个 FOSS 项目,我们可以在构建 Docker 镜像时直接获取它。
##### 带有单元测试的 Ghidra Blaze
`docker build -t blaze .`
(这有效,因为它是 Dockerfile 中的最后一个镜像)
或者
`docker build -t blaze --target deliver-tests .`
##### 不带单元测试的 Ghidra Blaze
`docker build -t blaze --target deliver .`
## 使用 Docker 运行 Flint
Flint:
```
docker run --rm -v /your/local/path/:/whatever:ro blaze /out/bin/flint --doNotUseSolver /whatever/somebinary
```
还有一个 `-o yourfile.json` 选项可以将结果直接输出为 JSON。
"Flint Classic" 是 Flint 的一个较旧版本,具有内核模块选项以检查悬空处理程序。对 `.ko` 文件使用 `--isKernelModule`。
```
docker run --rm -v /your/local/path/:/whatever:ro blaze /out/bin/flint_classic --doNotUseSolver /whatever/somebinary
```
标签:Blaze, Flint, Ghidra, Haskell, TLS抓取, 二进制分析, 二进制提升, 云安全监控, 云安全运维, 云资产清单, 可配置连接, 形式化验证, 恶意代码分析, 控制流分析, 程序分析, 符号执行, 类型检查, 系统运维工具, 请求拦截, 软件安全, 逆向工程, 配置文件, 静态分析