AegiScan 框架安装及使用教程
本文将指导您了解并安装 AegiScan
,一个用于 iOS 应用静态数据流分析的框架。我们将详细介绍项目目录结构、启动文件以及配置文件。
1. 项目目录结构及介绍
AegiScan
的目录结构如下:
AegiScan/
├── cases/ # 包含示例分析的目标二进制文件
│ └── os/ # 示例中包含的 macOS 系统服务和私有框架
├── db/ # 存储数据库相关配置的目录
│ └── docker-compose.yml # Docker 配置文件,用于启动 Neo4j 数据库
├── resources/ # 可能包含辅助资源的目录
└── src/ # 核心源代码及脚本
├── gitignore # .gitignore 文件
├── LICENSE # 许可证文件
├── README.md # 项目说明文档
└── ida_runner.py # IDA 脚本,用于运行分析任务
cases/
: 存放待分析的目标二进制文件。db/
: 用于设置和管理数据库。resources/
: 可能包含在分析过程中用到的额外资源。src/
: 包含核心分析脚本和工具,如ida_runner.py
。
2. 项目启动文件介绍
(1) docker-compose.yml
位于 db/
目录下的 docker-compose.yml
是用于启动 Neo4j 图数据库容器的配置文件。通过运行以下命令,您可以启动数据库:
cd AegiScan/db
docker-compose up -d
这将在后台运行一个容器,提供持久化的数据存储。
(2) ida_runner.py
src/ida_runner.py
是核心的 IDA 脚本,它定义了如何在 IDA Pro 中执行分析任务。例如,使用这个脚本来分析目标二进制文件:
cd AegiScan/src
ida64 -A -S"[Path to ida_runner.py] [parameters]" -L"Path to your log file]" "[Path to your idb]"
其中 [Path to ida_runner.py]
是 ida_runner.py
的完整路径,[parameters]
是传递给脚本的参数,[Path to your log file]
是日志文件的位置,而 [Path to your idb]
是要分析的 IDB 文件路径。
3. 项目的配置文件介绍
虽然 AegiScan
不包含特定的全局配置文件,但其依赖于 Docker 和 IDA Pro 设置来配置分析环境。Docker 的配置主要通过 docker-compose.yml
完成,而 IDA Pro 的配置通常是通过 IDAPython 脚本(如 ida_runner.py
)进行的。如有需要自定义分析行为或扩展,可以在 src/scanners
中编写新的扫描器或修改现有脚本。
为了自定义数据流分析,可以利用 AegiScan
提供的接口和基于 Neo4j 的 Cypher 查询语言来开发自己的查询API。
请注意,正确地生成 IDB 文件是分析前的关键步骤。例如,对于二进制文件 osanalyticshelper
,应先使用 IDA 创建 IDB,然后将其放在适当的目录中,再通过 ida_runner.py
进行分析。
通过以上步骤,您应该能够成功设置和使用 AegiScan
对 iOS 应用进行静态数据流分析。若遇到任何问题,参考项目文档或查看 README.md
获取更多支持。