俱乐部开源实习课题任务书

俱乐部开源实习课题任务书

Yinchunyuan

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(复现代码)。
请前往 登录/注册 即可发表您的看法…