
俱乐部开源实习课题任务书
2026-05-18 发布20 浏览 · 0 点赞 · 0 收藏
- 课题名称:为 Syzkaller 添加 loongarch64 架构支持
- 指导导师:慕冬亮
- 开发语言:Go、C/C++、汇编
- 预计项目时长:120小时 / 8周
- 难度等级:中等
- 课题背景信息介绍:Syzkaller 是业界主流的、基于代码覆盖率引导的无监督操作系统内核模糊测试(Fuzzing)工具。目前,随着 LoongArch(龙架构)生态的不断发展,针对该架构的 Linux 内核漏洞挖掘需求日益增加。当前 Syzkaller 尚未对 loongarch 架构提供原生支持,本课题旨在为 Syzkaller 补齐这一关键拼图,使其能够原生支持并在 LoongArch 环境下高效开展系统调用 Fuzzing,助力该架构底层生态的安全建设。
- 熟练掌握 Go 语言(用于 Syzkaller 主控制流开发)与 C/C++ 语言(用于 Executor 底层执行器开发)。
- 熟悉 Linux 内核机制与系统调用(Syscall)原理,了解计算机体系结构以及特定于架构的 ABI(应用程序二进制接口)与调用约定。
- 熟悉 QEMU 虚拟化技术及 Linux 内核编译与调试流程。
- 熟练掌握 Git 版本控制,了解大型开源项目的协作与代码 Review 流程。
- 任务1:架构定义与描述:在 Syzkaller 的
sys/targets中注册loongarch64目标,生成并适配 LoongArch 专属的系统调用号映射表(syscall numbers)与数据结构(sys/linux/各类 .txt 描述文件)。 - 任务2:执行器(Executor)适配:修改
syz-executor的 C/C++ 源码,处理与平台高度相关的底层逻辑,包括特定的寄存器状态恢复、内联汇编(Inline Assembly)适配、以及特定的内存映射处理等。 - 任务3:环境配置与覆盖率支持:配置并跑通基于
qemu-system-loongarch64的测试环境支持(vm/qemu模块),确保 Syzkaller 能够正常拉起虚拟机、注入测试用例,并成功收集 KCOV 提供的代码覆盖率数据。 - 任务4:文档编写与社区沟通:编写完整的 LoongArch 架构 Syzkaller 使用指南,并在开发过程中与 Syzkaller 上游社区保持沟通,确保技术路线符合开源社区规范。
验收时间:本课题预计于认领后 2-3 月内开展课题验收,验收项如下所示:
- 代码:完整实现各项功能代码,通过本地所有检查(
make generate等)。(强制要求:必须将完整的 loongarch 支持代码以 Pull Request (PR) 的形式提交到 google/syzkaller 官方开源仓库)。 - 文档:提交中英文版的用户使用手册(包含如何编译内核、构建 rootfs 及启动基于 loongarch 的 fuzzing),以及开发设计文档。
- 汇报:完成课题总结 PPT,并撰写一篇技术博客,深入探讨适配过程中遇到的 ABI 差异、底层踩坑记录及解决方案。
- 展示:现场演示或录制视频展示完整流程:成功启动 LoongArch 虚拟机进行 Fuzzing,并演示如何触发一次 Crash 且成功生成对应的 C Repro(复现代码)。
请前往 登录/注册 即可发表您的看法…


