[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google--oss-fuzz-gen":3,"tool-google--oss-fuzz-gen":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160411,2,"2026-04-18T23:33:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":122,"env_os":123,"env_gpu":123,"env_ram":123,"env_deps":124,"category_tags":127,"github_topics":128,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":133,"updated_at":134,"faqs":135,"releases":165},9501,"google\u002Foss-fuzz-gen","oss-fuzz-gen","LLM powered fuzzing via OSS-Fuzz.","oss-fuzz-gen 是一个由谷歌推出的开源框架，旨在利用大语言模型（LLM）自动生成针对 C、C++、Java 和 Python 项目的模糊测试目标（Fuzz Targets），并通过 OSS-Fuzz 平台进行验证。它主要解决了传统模糊测试中人工编写测试用例成本高、覆盖率有限以及难以发现深层漏洞的痛点，显著降低了安全测试的门槛。\n\n该工具特别适合安全研究人员、开源项目维护者以及希望提升代码健壮性的开发者使用。其核心技术亮点在于能够调用包括 Gemini、GPT-4 在内的多种主流大模型，智能生成可编译且有效的测试代码。实验数据显示，oss-fuzz-gen 已成功在数百个真实项目中运行，不仅实现了最高 29% 的代码行覆盖率提升（相较于现有人工编写的用例），还实际发现了 30 多个此前未被披露的安全漏洞，如越界读写和栈缓冲区下溢等。通过自动化评估编译性、崩溃情况及覆盖率差异，oss-fuzz-gen 为软件安全测试提供了一种高效、智能的新范式，帮助团队更轻松地守护代码质量。","# A Framework for Fuzz Target Generation and Evaluation\n\nThis framework generates fuzz targets for real-world `C`\u002F`C++\u002FJava\u002FPython` projects with\nvarious Large Language Models (LLM) and benchmarks them via the\n[`OSS-Fuzz` platform](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz).\n\nMore details available in [AI-Powered Fuzzing: Breaking the Bug Hunting Barrier](https:\u002F\u002Fsecurity.googleblog.com\u002F2023\u002F08\u002Fai-powered-fuzzing-breaking-bug-hunting.html):\n![Alt text](images\u002FOverview.png \"Overview\")\n\nCurrent supported models are:\n- Vertex AI code-bison\n- Vertex AI code-bison-32k\n- Gemini Pro\n- Gemini Ultra\n- Gemini Experimental\n- Gemini 1.5\n- OpenAI GPT-3.5-turbo\n- OpenAI GPT-4\n- OpenAI GPT-4o\n- OpenAI GPT-4o-mini\n- OpenAI GPT-4-turbo\n- OpenAI GPT-3.5-turbo (Azure)\n- OpenAI GPT-4 (Azure)\n- OpenAI GPT-4o (Azure)\n\nGenerated fuzz targets are evaluated with four metrics against the most up-to-date data from production environment:\n- Compilability\n- Runtime crashes\n- Runtime coverage\n- Runtime line coverage diff against existing human-written fuzz targets in `OSS-Fuzz`.\n\nHere is a sample experiment result from 2024 Jan 31.\nThe experiment included [1300+ benchmarks](.\u002Fbenchmark-sets\u002Fall) from 297 open-source projects.\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_oss-fuzz-gen_readme_1a196669742b.png)\n\nOverall, this framework manages to successfully leverage LLMs to generate valid fuzz targets (which generate non-zero coverage increase)\nfor 160 C\u002FC++ projects. The maximum line coverage increase is 29% from the existing human-written targets.\n\nNote that these reports are not public as they may contain undisclosed vulnerabilities.\n\n## Usage\n\nCheck our detailed [usage guide](.\u002FUSAGE.md) for instructions on how to run this framework and generate reports based on the results.\n\n## Independent Agent Execution and Evaluation\nYou can also execute or evaluate individual agents without running full experiments, using the integrated agent execution framework.\nSee the [framework's documentation](.\u002Fagent_tests\u002Freadme.md) for detailed instructions on how to run individual agents or sequence of agents.\n\n## Collaborations\nInterested in research or open-source community collaborations?\nPlease feel free to create an issue or email us: oss-fuzz-team@google.com.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_oss-fuzz-gen_readme_dfc5e5f04fd6.png\" width=\"200\" height=\"200\">\n\n## Bugs Discovered\n\nSo far, we have reported 30 new bugs\u002Fvulnerabilities found by automatically generated targets built\nby this framework:\n| Project |    Bug    |    LLM    | Prompt Builder | Target oracle |\n| ------- | --------- | --------- | --------------- | ------- |\n| [`cJSON`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fcjson) | [OOB read](https:\u002F\u002Fgithub.com\u002FDaveGamble\u002FcJSON\u002Fissues\u002F800) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`libplist`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibplist) | [OOB read](https:\u002F\u002Fgithub.com\u002Flibimobiledevice\u002Flibplist\u002Fissues\u002F244) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`hunspell`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhunspell) | [OOB read](https:\u002F\u002Fgithub.com\u002Fhunspell\u002Fhunspell\u002Fissues\u002F996) | Vertex AI | [default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`zstd`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fzstd) | [OOB write](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67497) | Vertex AI | [default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`gdbm`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgdbm) | [Stack buffer underflow](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67483) | Vertex AI | [default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`hoextdown`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhoextdown) | [Use of uninitialised memory](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67516) | Vertex AI | [default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| [`pjsip`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fpjsip) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71356) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Low coverage with fuzz keyword + easy params far reach |\n| [`pjsip`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fpjsip)  | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71357) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Low coverage with fuzz keyword + easy params far reach |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71358) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Low coverage with fuzz keyword + easy params far reach |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [OOB read\u002Fwrite](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71542) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71543) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71544) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`sqlite3`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fsqlite3) | [OOB read](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F42538590) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`htslib`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhtslib) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71740) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`libical`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibical) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71741) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`croaring`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fcroaring) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71738) | Vertex AI | [Test-to-harness](prompts\u002Ftemplate_xml) | All |\n| [`openssl`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenssl) | [CVE-2024-9143](https:\u002F\u002Fwww.cve.org\u002FCVERecord?id=CVE-2024-9143) - [OOB read\u002Fwrite](https:\u002F\u002Fg-issues.oss-fuzz.com\u002Fissues\u002F42538437) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`liblouis`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fliblouis) | [Use of uninitialised memory](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71354) | Vertex AI | Test-to-harness | Test identifier |\n| [`libucl`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibucl) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71359) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Low coverage with fuzz keyword + easy params far reach |\n| [`openbabel`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenbabel) | [Use after free](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71360) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | Low coverage with fuzz keyword + easy params far reach |\n| [`libyang`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibyang) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71619) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`openbabel`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenbabel) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71650) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| [`exiv2`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fexiv2) | [OOB read](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71759) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| Undisclosed | Java RCE (pending maintainer triage) | Vertex AI |  [Default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| Undisclosed | Regexp DoS (pending maintainer triage) | Vertex AI |  [Default](prompts\u002Ftemplate_xml) | Far reach, low coverage |\n| Undisclosed | [OOB read](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F370872803) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| Undisclosed | [OOB write](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F378009361) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| Undisclosed | [OOB read](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391234167) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| Undisclosed | [OOB read](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391453674) | Vertex AI | [Default](prompts\u002Ftemplate_xml) | All |\n| Undisclosed | [Use after free](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391456091) | Vertex AI | Agent prompt | All |\n\nThese bugs could only have been discovered with newly generated targets. They were not reachable with existing OSS-Fuzz targets.\n\n## Current top coverage improvements by project\n\n| Project | Total coverage gain\t| Total relative gain\t| OSS-Fuzz-gen total covered lines | OSS-Fuzz-gen new covered lines | Existing covered lines | Total project lines |\n| --------| ------------------- | ------------------- | -------------------------------- | ------------------------------ | ---------------------- | ------------------- |\n| phmap | 98.42% | 205.75% | 1601 | 1181 | 574 | 1120 |\n| usbguard | 97.62% | 26.04% | 24550 | 5463 | 20979 | 3564 |\n| onednn | 96.67% | 7057.14% | 5434 | 5434 | 77 | 210 |\n| avahi | 82.06% | 155.90% | 3358 | 2814 | 1805 | 3046 |\n| pugixml | 72.98% | 194.95% | 9015 | 6646 | 3409 | 7662 |\n| librdkafka | 66.88% | 845.57% | 5019 | 4490 | 531 | 1169 |\n| casync | 66.75% | 903.23% | 1171 | 1120 | 124 | 1678 |\n| tomlplusplus | 61.06% | 331.10% | 4755 | 3652 | 1103 | 5981 |\n| astc-encoder | 59.35% | 177.88% | 2726 | 1745 | 981 | 2940 |\n| mruby | 48.56% | 0.00% | 34493 | 34493 | 0 | 71038 |\n| arduinojson | 42.10% | 85.80% | 3344 | 1800 | 2098 | 4276 |\n| json | 41.13% | 66.51% | 5051 | 3339 | 5020 | 8119 |\n| double-conversion | 40.40% | 88.12% | 1663 | 779 | 884 | 1928 |\n| tinyobjloader | 38.26% | 77.01% | 1157 | 717 | 931 | 1874 |\n| glog | 38.18% | 58.69% | 895 | 331 | 564 | 867 |\n| cppitertools | 35.78% | 45.07% | 253 | 151 | 335 | 422 |\n| eigen | 35.38% | 190.70% | 2643 | 1947 | 1021 | 5503 |\n| glaze | 34.55% | 30.06% | 2920 | 2416 | 8036 | 6993 |\n| rapidjson | 31.83% | 148.07% | 1585 | 958 | 647 | 3010 |\n| libunwind | 30.58% | 83.25% | 2899 | 1342 | 1612 | 4388 |\n| openh264 | 30.07% | 50.14% | 6607 | 5751 | 11470 | 19123 |\n\n\\* \"Total project lines\" measures the source code of the project-under-test compiled and linked by the preexisting human-written fuzz targets from OSS-Fuzz.\n\n\\* \"Total coverage gain\" is calculated using a denominator of the \"Total project lines\". \"Total relative gain\" is the increase in coverage compared to the old number of covered lines.\n\n\\* Additional code from the project-under-test maybe included when compiling the new fuzz targets and result in high percentage gains.\n\n## Citing This Work\nPlease click on the _'Cite this repository'_ button located on the right-hand side of this GitHub page for citation details.\n","# 模糊测试目标生成与评估框架\n\n该框架利用多种大型语言模型（LLM），为现实世界的 `C`\u002F`C++`\u002F`Java`\u002F`Python` 项目生成模糊测试目标，并通过 [`OSS-Fuzz` 平台](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz)对其进行基准测试。\n\n更多详情请参阅 [AI 驱动的模糊测试：突破漏洞挖掘的壁垒](https:\u002F\u002Fsecurity.googleblog.com\u002F2023\u002F08\u002Fai-powered-fuzzing-breaking-bug-hunting.html)：\n![Alt text](images\u002FOverview.png \"Overview\")\n\n当前支持的模型包括：\n- Vertex AI code-bison\n- Vertex AI code-bison-32k\n- Gemini Pro\n- Gemini Ultra\n- Gemini Experimental\n- Gemini 1.5\n- OpenAI GPT-3.5-turbo\n- OpenAI GPT-4\n- OpenAI GPT-4o\n- OpenAI GPT-4o-mini\n- OpenAI GPT-4-turbo\n- OpenAI GPT-3.5-turbo（Azure）\n- OpenAI GPT-4（Azure）\n- OpenAI GPT-4o（Azure）\n\n生成的模糊测试目标将基于来自生产环境的最新数据，采用以下四项指标进行评估：\n- 可编译性\n- 运行时崩溃\n- 运行时覆盖率\n- 与 `OSS-Fuzz` 中现有人工编写的模糊测试目标相比，运行时代码行覆盖率的变化量。\n\n以下是 2024 年 1 月 31 日的一份实验结果示例。该实验涵盖了来自 297 个开源项目的 [1300 多个基准测试](.\u002Fbenchmark-sets\u002Fall)。\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_oss-fuzz-gen_readme_1a196669742b.png)\n\n总体而言，该框架成功地利用大型语言模型为 160 个 C\u002FC++ 项目生成了有效的模糊测试目标（这些目标能够带来非零的覆盖率提升）。其中，代码行覆盖率的最大提升幅度达到了 29%，相较于现有的人工编写的模糊测试目标。\n\n请注意，这些报告并未公开，因为它们可能包含尚未披露的漏洞。\n\n## 使用方法\n\n请查阅我们详细的 [使用指南](.\u002FUSAGE.md)，了解如何运行本框架并根据结果生成报告。\n\n## 独立代理执行与评估\n您也可以不运行完整实验，而是使用集成的代理执行框架来单独执行或评估各个代理。有关如何运行单个代理或代理序列的详细说明，请参阅 [框架文档](.\u002Fagent_tests\u002Freadme.md)。\n\n## 合作交流\n如果您对研究合作或开源社区合作感兴趣，请随时创建议题或发送邮件至：oss-fuzz-team@google.com。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_oss-fuzz-gen_readme_dfc5e5f04fd6.png\" width=\"200\" height=\"200\">\n\n## 发现的漏洞\n\n到目前为止，我们已报告由该框架构建的自动生成目标所发现的30个新漏洞\u002F安全问题：\n| 项目       |    漏洞     |    LLM    | 提示词生成器 | 目标预言机 |\n| ---------- | ----------- | --------- | -------------- | ---------- |\n| [`cJSON`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fcjson) | [越界读取](https:\u002F\u002Fgithub.com\u002FDaveGamble\u002FcJSON\u002Fissues\u002F800) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`libplist`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibplist) | [越界读取](https:\u002F\u002Fgithub.com\u002Flibimobiledevice\u002Flibplist\u002Fissues\u002F244) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`hunspell`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhunspell) | [越界读取](https:\u002F\u002Fgithub.com\u002Fhunspell\u002Fhunspell\u002Fissues\u002F996) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`zstd`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fzstd) | [越界写入](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67497) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`gdbm`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgdbm) | [栈缓冲区下溢](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67483) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`hoextdown`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhoextdown) | [使用未初始化内存](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=67516) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| [`pjsip`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fpjsip) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71356) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 使用模糊测试关键字和简单参数时覆盖范围低但可达性高 |\n| [`pjsip`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fpjsip)  | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71357) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 使用模糊测试关键字和简单参数时覆盖范围低但可达性高 |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71358) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 使用模糊测试关键字和简单参数时覆盖范围低但可达性高 |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [越界读\u002F写](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71542) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71543) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`gpac`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fgpac)  | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71544) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`sqlite3`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fsqlite3) | [越界读取](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F42538590) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`htslib`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fhtslib) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71740) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`libical`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibical) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71741) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`croaring`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fcroaring) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71738) | Vertex AI | [Test-to-harness](prompts\u002Ftemplate_xml) | 全部 |\n| [`openssl`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenssl) | [CVE-2024-9143](https:\u002F\u002Fwww.cve.org\u002FCVERecord?id=CVE-2024-9143) - [越界读\u002F写](https:\u002F\u002Fg-issues.oss-fuzz.com\u002Fissues\u002F42538437) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`liblouis`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fliblouis) | [使用未初始化内存](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71354) | Vertex AI | Test-to-harness | 测试标识符 |\n| [`libucl`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibucl) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71359) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 使用模糊测试关键字和简单参数时覆盖范围低但可达性高 |\n| [`openbabel`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenbabel) | [释放后使用](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71360) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 使用模糊测试关键字和简单参数时覆盖范围低但可达性高 |\n| [`libyang`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Flibyang) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71619) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`openbabel`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fopenbabel) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71650) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| [`exiv2`](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz\u002Ftree\u002Fmaster\u002Fprojects\u002Fexiv2) | [越界读取](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Fdetail?id=71759) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| 未披露 | Java RCE（待维护者评估） | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| 未披露 | 正则表达式DoS（待维护者评估） | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 覆盖范围广但覆盖率低 |\n| 未披露 | [越界读取](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F370872803) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| 未披露 | [越界写入](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F378009361) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| 未披露 | [越界读取](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391234167) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| 未披露 | [越界读取](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391453674) | Vertex AI | [默认](prompts\u002Ftemplate_xml) | 全部 |\n| 未披露 | [释放后使用](https:\u002F\u002Fissues.oss-fuzz.com\u002Fissues\u002F391456091) | Vertex AI | 代理提示词 | 全部 |\n\n这些漏洞仅能通过新生成的目标被发现。在现有的OSS-Fuzz目标中，它们是无法触及的。\n\n## 各项目当前覆盖率提升情况\n\n| 项目 | 总覆盖率提升 | 总相对覆盖率提升 | OSS-Fuzz 生成的总覆盖行数 | OSS-Fuzz 生成的新覆盖行数 | 已有覆盖行数 | 项目总代码行数 |\n| --------| ------------------- | ------------------- | -------------------------------- | ------------------------------ | ---------------------- | ------------------- |\n| phmap | 98.42% | 205.75% | 1601 | 1181 | 574 | 1120 |\n| usbguard | 97.62% | 26.04% | 24550 | 5463 | 20979 | 3564 |\n| onednn | 96.67% | 7057.14% | 5434 | 5434 | 77 | 210 |\n| avahi | 82.06% | 155.90% | 3358 | 2814 | 1805 | 3046 |\n| pugixml | 72.98% | 194.95% | 9015 | 6646 | 3409 | 7662 |\n| librdkafka | 66.88% | 845.57% | 5019 | 4490 | 531 | 1169 |\n| casync | 66.75% | 903.23% | 1171 | 1120 | 124 | 1678 |\n| tomlplusplus | 61.06% | 331.10% | 4755 | 3652 | 1103 | 5981 |\n| astc-encoder | 59.35% | 177.88% | 2726 | 1745 | 981 | 2940 |\n| mruby | 48.56% | 0.00% | 34493 | 34493 | 0 | 71038 |\n| arduinojson | 42.10% | 85.80% | 3344 | 1800 | 2098 | 4276 |\n| json | 41.13% | 66.51% | 5051 | 3339 | 5020 | 8119 |\n| double-conversion | 40.40% | 88.12% | 1663 | 779 | 884 | 1928 |\n| tinyobjloader | 38.26% | 77.01% | 1157 | 717 | 931 | 1874 |\n| glog | 38.18% | 58.69% | 895 | 331 | 564 | 867 |\n| cppitertools | 35.78% | 45.07% | 253 | 151 | 335 | 422 |\n| eigen | 35.38% | 190.70% | 2643 | 1947 | 1021 | 5503 |\n| glaze | 34.55% | 30.06% | 2920 | 2416 | 8036 | 6993 |\n| rapidjson | 31.83% | 148.07% | 1585 | 958 | 647 | 3010 |\n| libunwind | 30.58% | 83.25% | 2899 | 1342 | 1612 | 4388 |\n| openh264 | 30.07% | 50.14% | 6607 | 5751 | 11470 | 19123 |\n\n\\* “项目总代码行数”是指由 OSS-Fuzz 中现有的人工编写的模糊测试目标编译并链接后的被测项目源代码行数。\n\n\\* “总覆盖率提升”是以“项目总代码行数”为分母计算得出的。而“总相对覆盖率提升”则是指与原有覆盖行数相比，覆盖率的增加量。\n\n\\* 在编译新的模糊测试目标时，可能会包含来自被测项目的额外代码，从而导致较高的百分比提升。\n\n## 引用本工作\n请单击此 GitHub 页面右侧的 _'引用此仓库'_ 按钮，以获取引用详情。","# oss-fuzz-gen 快速上手指南\n\n`oss-fuzz-gen` 是一个利用大语言模型（LLM）为真实的 C\u002FC++\u002FJava\u002FPython 项目自动生成模糊测试目标（Fuzz Targets）并在 `OSS-Fuzz` 平台上进行评估的框架。它能有效发现现有测试覆盖不到的深层漏洞。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: 推荐 Linux (Ubuntu 20.04\u002F22.04) 或 macOS。Windows 用户建议使用 WSL2。\n*   **Python**: Python 3.8 或更高版本。\n*   **Docker**: 必须安装并配置好 Docker，因为该框架依赖 Docker 容器来构建和运行 OSS-Fuzz 项目。\n*   **Git**: 用于克隆仓库。\n*   **LLM API 密钥**: 您需要拥有支持的 LLM 服务访问权限及 API 密钥。\n    *   支持模型包括：Google Vertex AI (Code Bison, Gemini 系列), OpenAI (GPT-3.5\u002F4\u002F4o 系列), 以及 Azure OpenAI 服务。\n    *   *注意：国内开发者若无法直接访问 Google Vertex AI 或 OpenAI，建议配置代理或使用兼容的 API 中转服务。*\n\n## 安装步骤\n\n1.  **克隆仓库**\n    将项目代码克隆到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen.git\n    cd oss-fuzz-gen\n    ```\n\n2.  **安装 Python 依赖**\n    创建虚拟环境并安装所需库（推荐）：\n    ```bash\n    python3 -m venv venv\n    source venv\u002Fbin\u002Factivate\n    pip install -r requirements.txt\n    ```\n\n3.  **配置 API 密钥**\n    根据您的模型提供商设置环境变量。例如，使用 OpenAI：\n    ```bash\n    export OPENAI_API_KEY=\"your-api-key-here\"\n    ```\n    若使用 Google Vertex AI，请确保已配置 `GOOGLE_APPLICATION_CREDENTIALS`：\n    ```bash\n    export GOOGLE_APPLICATION_CREDENTIALS=\"\u002Fpath\u002Fto\u002Fservice-account-key.json\"\n    ```\n\n## 基本使用\n\n### 1. 查看可用命令\n运行主脚本查看帮助信息，了解可用的子命令和参数：\n```bash\npython3 main.py --help\n```\n\n### 2. 生成并评估单个项目的 Fuzz Target\n以下是最简单的使用示例，针对 `cJSON` 项目生成 fuzz target 并进行评估：\n\n```bash\npython3 main.py \\\n  --model vertexai-code-bison \\\n  --project cJSON \\\n  --language c \\\n  --experiment run_one\n```\n\n*   `--model`: 指定使用的 LLM 模型（如 `vertexai-code-bison`, `gpt-4`, `gemini-pro` 等）。\n*   `--project`: 指定 OSS-Fuzz 中的项目名称。\n*   `--language`: 项目语言 (`c`, `cpp`, `java`, `python`)。\n*   `--experiment`: 指定实验类型，`run_one` 表示运行单次生成与评估。\n\n### 3. 独立代理执行（高级）\n如果您只想测试特定的 Agent 逻辑而不运行完整实验，可以使用集成的代理执行框架：\n\n```bash\npython3 agent_tests\u002Frun_agent.py \\\n  --model gpt-4 \\\n  --project libpng \\\n  --agent default\n```\n详细参数请参考 `.\u002Fagent_tests\u002Freadme.md`。\n\n### 4. 查看结果\n运行结束后，生成的 fuzz target 代码、覆盖率报告及崩溃日志将保存在输出目录中（通常在 `results\u002F` 或指定的输出路径下）。框架会自动对比现有的人工编写 target，展示覆盖率提升（Line Coverage Diff）和发现的崩溃点。\n\n> **提示**：生成的报告可能包含未公开的安全漏洞，请妥善保管，不要随意公开分享详细的崩溃日志。","某开源安全团队负责维护一个广泛使用的 C++ 数据解析库，亟需在版本发布前深度挖掘潜在的内存破坏漏洞以保障用户安全。\n\n### 没有 oss-fuzz-gen 时\n- 安全工程师需手动编写大量模糊测试（Fuzz）目标代码，不仅耗时数周，且高度依赖个人对代码逻辑的理解，难以覆盖边缘场景。\n- 现有的人工测试用例覆盖率停滞不前，许多深层逻辑分支和复杂输入组合长期处于“盲区”，导致隐蔽的越界读写漏洞潜伏其中。\n- 面对成千上万的开源项目依赖，团队缺乏自动化手段快速生成针对新函数或新接口的有效测试驱动，漏洞响应速度严重滞后。\n- 尝试引入传统自动生成工具时，常因生成的代码无法编译或缺乏有效的崩溃检测机制（Oracle），导致大量无效计算资源浪费。\n\n### 使用 oss-fuzz-gen 后\n- 利用集成的 Gemini 或 GPT-4 等大模型，oss-fuzz-gen 能在数小时内自动为库中数百个函数生成可编译、高质量的 Fuzz 目标代码，效率提升数十倍。\n- 生成的测试目标在 OSS-Fuzz 平台上运行后，成功将代码行覆盖率提升了 29%，精准触达了人工测试从未覆盖的低频执行路径。\n- 工具自动评估运行时崩溃与覆盖率差异，直接定位并报告了包括 `cJSON` 和 `zstd` 类项目中常见的越界读取\u002F写入等 30+ 个此前未被发现的高危漏洞。\n- 通过内置的代理执行框架，团队可独立验证特定 Agent 的生成效果，无需运行全量实验即可快速迭代优化测试策略，大幅降低试错成本。\n\noss-fuzz-gen 通过将大模型的代码理解能力与工业级模糊测试平台结合，彻底打破了人工编写测试用例的效率瓶颈，让漏洞挖掘从“大海捞针”变为“自动化收割”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_oss-fuzz-gen_627cfbf9.png","google","Google","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle_c4bedcda.png","Google ❤️ Open Source",null,"opensource@google.com","GoogleOSS","https:\u002F\u002Fopensource.google\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle",[83,87,91,95,99,103,107,111,114],{"name":84,"color":85,"percentage":86},"Python","#3572A5",86,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",5.8,{"name":92,"color":93,"percentage":94},"HTML","#e34c26",5.5,{"name":96,"color":97,"percentage":98},"Shell","#89e051",1.3,{"name":100,"color":101,"percentage":102},"CSS","#663399",0.5,{"name":104,"color":105,"percentage":106},"C","#555555",0.4,{"name":108,"color":109,"percentage":110},"Dockerfile","#384d54",0.2,{"name":112,"color":113,"percentage":110},"C++","#f34b7d",{"name":115,"color":116,"percentage":117},"Java","#b07219",0.1,1384,218,"2026-04-17T03:36:37","Apache-2.0",4,"未说明",{"notes":125,"python":123,"dependencies":126},"该工具主要依赖云端大语言模型 API（如 Google Vertex AI, Gemini, OpenAI GPT 系列，Azure OpenAI），而非本地部署的模型，因此 README 中未提及本地 GPU、显存或特定深度学习库（如 PyTorch\u002FTensorFlow）的需求。运行环境需配置相应的云服务商 API 密钥及网络访问权限。生成的模糊测试目标需在支持 OSS-Fuzz 的环境（通常为 Linux 容器）中进行编译和评估。",[123],[15,13,14,35],[129,130,131,132],"ai","fuzzing","llm","security","2026-03-27T02:49:30.150509","2026-04-19T15:38:21.365680",[136,141,146,151,156,161],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},42619,"如何在本地开发时实现实验报告的自动热重载（hot-reloading）？","目前官方建议不要将此功能直接集成到 `run-all-experiments.py` 中，以免命令过于复杂。推荐的方案是创建一个独立的脚本或进程，手动启动并并行运行。该脚本可以监视 `results` 目录的变化，当有新实验完成时自动触发 `report.web` 更新报告并热重载 HTTP 服务器。对于大型实验，还可以考虑添加节流机制以避免频繁更新导致负载过高。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen\u002Fissues\u002F862",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},42620,"是否有 OSS-Fuzz-Gen 的视频教程或使用指南？","有的。维护者已经制作了一个简要介绍 OSS-Fuzz-Gen 的视频教程，展示了如何在简单直观的示例上运行该工具。您可以访问以下链接观看：https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RR7CUyOtYXY。维护者也表示计划制作更多教程。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen\u002Fissues\u002F520",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},42621,"如何为不同的 LLM 模型动态配置 Vertex AI 的区域（locations）？","可以通过修改 `ci\u002Frequest_pr_exp.py` 来实现。建议硬编码模型与区域的对应关系，同时允许用户通过新增的 `--llm-locations` 标志覆盖默认设置。例如：\n1. 使用模型默认区域：`\u002Fgcbrun exp ... --llm model_1`\n2. 指定特定区域（如 l1, l2, l3）：`\u002Fgcbrun exp ... --llm model_1 --llm-locations l1,l2,l3`\n注意：原有的 location 标志是用于 GKE 的，而非模型区域。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen\u002Fissues\u002F830",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},42622,"为什么报告索引页上的基准测试状态显示不正确（例如显示为 Done 但实际仍在运行）？","这是因为状态仅根据报告中包含的试验（trials）来判断。修复方案是在 `report\u002Fcommon.py` 中创建一个辅助方法 `_get_expected_trials_count`，扫描基准测试目录（`fuzz_targets` 和 `raw_targets`）以计算预期的总试验数量。然后更新 `match_benchmark` 的逻辑：只有当实际结果数量等于预期试验数量且所有结果都已完成时，才将状态标记为\"Done\"；否则应标记为\"Running\"，以反映仍有试验在进行中。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen\u002Fissues\u002F721",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},42623,"在实现覆盖率分析代理（Coverage Analyzer Agent）时，是否需要实现 bash_tool？","不需要。维护者明确表示目前无需担心实现 `bash_tool`。当前的重点应放在完善 GSoC 提案以及理解代理如何通过提取覆盖率信息、构建提示词喂给 LLM、获取洞察并返回 `CoverageResult` 这一流程上。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Foss-fuzz-gen\u002Fissues\u002F558",{"id":162,"question_zh":163,"answer_zh":164,"source_url":160},42624,"LLM 代理（如崩溃分析器、覆盖率分析器）的主要目标和工作流程是什么？","各类分析代理的高级目标是在 `AnalysisResult` 中返回额外信息（如 `CrashResult`, `CoverageResult`），这些信息包含由 LLM 生成的洞察，并利用 LLM 的建议来修复或迭代模糊测试目标（fuzz targets）。以覆盖率分析为例，流程包括：1. 从最后的 `RunResult` 提取覆盖率信息；2. 获取覆盖率报告；3. 构建包含所有信息的提示词发送给 LLM；4. 获取洞察并返回结果。如果覆盖率低，还可以根据 LLM 建议迭代 fuzz target（通过容器工具执行）。",[]]