Media Fuzzing Framework for Android (MFFA) 使用教程
MFFA Media Fuzzing Framework for Android 项目地址: https://gitcode.com/gh_mirrors/mf/MFFA
1. 项目目录结构及介绍
MFFA 项目的目录结构如下:
MFFA/
├── docs/
├── test/
├── LICENSE
├── README.md
├── get_uniquecrash.py
├── sp_codec.py
├── sp_sf2.py
├── sp_stagefright.py
├── sp_stream.py
├── test.py
├── triage.py
└── utils.py
目录介绍:
- docs/: 存放项目文档的目录。
- test/: 存放测试相关文件的目录。
- LICENSE: 项目的许可证文件,采用 GPL-2.0 许可证。
- README.md: 项目的介绍文件,包含项目的基本信息和使用说明。
- get_uniquecrash.py: 用于获取唯一崩溃的脚本。
- sp_codec.py: 与编解码器相关的脚本。
- sp_sf2.py: 与 SF2 文件格式相关的脚本。
- sp_stagefright.py: 与 Stagefright 相关的脚本。
- sp_stream.py: 与流媒体相关的脚本。
- test.py: 项目的启动文件,用于启动模糊测试。
- triage.py: 用于崩溃分类的脚本。
- utils.py: 包含项目中使用的各种实用工具函数。
2. 项目启动文件介绍
test.py
test.py
是 MFFA 项目的启动文件,用于启动模糊测试。该脚本的主要功能是向 Android 设备发送畸形的媒体文件,并监控系统是否出现潜在的问题。
使用方法:
python test.py stagefright <video|audio> <play|noplay> <index>
- stagefright: 指定使用 Stagefright 进行媒体文件解码。
- <video|audio>: 指定测试的媒体文件类型,可以是视频 (
video
) 或音频 (audio
)。 - <play|noplay>: 指定是否测试播放功能,
play
表示测试播放功能,noplay
表示不测试播放功能。 - : 指定测试的起始索引,如果中断后重新启动,可以从指定索引继续测试。
3. 项目配置文件介绍
devices.txt
devices.txt
是一个配置文件,用于记录参与测试的 Android 设备的 ID。在启动模糊测试之前,需要手动运行以下命令来生成该文件:
adb devices > devices.txt
batches.txt
batches.txt
是另一个配置文件,用于记录包含模糊输入媒体文件的目录列表。在启动模糊测试之前,需要手动编写该文件,内容格式如下:
/path/to/batch1
/path/to/batch2
/path/to/batch3
logs.txt
logs.txt
是用于崩溃分类的配置文件,记录了模糊测试生成的日志文件名。在启动崩溃分类之前,需要手动编写该文件,内容格式如下:
log1.txt
log2.txt
log3.txt
使用方法:
python triage.py <SIGSEGV|SIGILL|SIGFPE|all> <video|audio>
- <SIGSEGV|SIGILL|SIGFPE|all>: 指定要查找的信号类型,可以是
SIGSEGV
、SIGILL
、SIGFPE
或all
(所有类型)。 - <video|audio>: 指定测试的媒体文件类型,可以是视频 (
video
) 或音频 (audio
)。
通过以上配置文件和启动文件,可以有效地进行 Media Fuzzing Framework for Android 的模糊测试和崩溃分类。
MFFA Media Fuzzing Framework for Android 项目地址: https://gitcode.com/gh_mirrors/mf/MFFA
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考