[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-evilsocket--pwnagotchi":3,"tool-evilsocket--pwnagotchi":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":76,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":102,"env_deps":103,"category_tags":109,"github_topics":110,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":117,"updated_at":118,"faqs":119,"releases":148},3065,"evilsocket\u002Fpwnagotchi","pwnagotchi","(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning.","pwnagotchi 是一款基于深度强化学习（A2C 算法）的开源工具，旨在自动化地收集 WiFi 网络中的 WPA 握手数据。它并非像传统游戏 AI 那样在虚拟环境中训练，而是通过连接树莓派等硬件，在真实的无线环境中“生存”与学习。pwnagotchi 利用 bettercap 框架，能够被动监听或主动发起认证攻击，从而捕获包含 PMKID 及完整\u002F半完整握手信息的 PCAP 文件，为后续使用 hashcat 破解密码提供关键素材。\n\n这一工具主要解决了传统 WiFi 审计过程中需要人工长时间蹲守、手动调整参数效率低下的痛点。通过内置的 LSTM 神经网络策略，pwnagotchi 能根据周围接入点和客户端的数量动态调整自身行为，随着时间推移不断优化在特定环境下的捕获效率。多个设备邻近部署时还能相互通信协作，进一步提升数据收集能力。\n\npwnagotchi 特别适合网络安全研究人员、渗透测试工程师以及对无线安全感兴趣的极客用户。虽然其概念源自人工智能研究，但项目社区提供了完善的文档与支持，使得非算法专家也能轻松上手。值得注意的是，pwnagotchi 需要经历若干个“时代”（epoc","pwnagotchi 是一款基于深度强化学习（A2C 算法）的开源工具，旨在自动化地收集 WiFi 网络中的 WPA 握手数据。它并非像传统游戏 AI 那样在虚拟环境中训练，而是通过连接树莓派等硬件，在真实的无线环境中“生存”与学习。pwnagotchi 利用 bettercap 框架，能够被动监听或主动发起认证攻击，从而捕获包含 PMKID 及完整\u002F半完整握手信息的 PCAP 文件，为后续使用 hashcat 破解密码提供关键素材。\n\n这一工具主要解决了传统 WiFi 审计过程中需要人工长时间蹲守、手动调整参数效率低下的痛点。通过内置的 LSTM 神经网络策略，pwnagotchi 能根据周围接入点和客户端的数量动态调整自身行为，随着时间推移不断优化在特定环境下的捕获效率。多个设备邻近部署时还能相互通信协作，进一步提升数据收集能力。\n\npwnagotchi 特别适合网络安全研究人员、渗透测试工程师以及对无线安全感兴趣的极客用户。虽然其概念源自人工智能研究，但项目社区提供了完善的文档与支持，使得非算法专家也能轻松上手。值得注意的是，pwnagotchi 需要经历若干个“时代”（epochs）的探索期来适应新环境，初期表现可能平淡，但随着经验积累，它将变得越来越擅长发现并捕获有价值的握手数据。","\u003Cp align=\"center\">\n  \u003Csmall>Join the project community on our server!\u003C\u002Fsmall>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fhttps:\u002F\u002Fdiscord.gg\u002FbtZpkp45gQ\" target=\"_blank\" title=\"Join our community!\">\n    \u003Cimg src=\"https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002Fhttps:\u002F\u002Fdiscord.gg\u002FbtZpkp45gQ\"\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Chr\u002F>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Freleases\u002Flatest\">\u003Cimg alt=\"Release\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fevilsocket\u002Fpwnagotchi.svg?style=flat-square\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fblob\u002Fmaster\u002FLICENSE.md\">\u003Cimg alt=\"Software License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-GPL3-brightgreen.svg?style=flat-square\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fgraphs\u002Fcontributors\">\u003Cimg alt=\"Contributors\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fevilsocket\u002Fpwnagotchi\"\u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fintent\u002Ffollow?screen_name=pwnagotchi\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fpwnagotchi?style=social&logo=twitter\" alt=\"follow on Twitter\">\u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cbr\u002F>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fevilsocket_pwnagotchi_readme_5834e185bb52.png\" height=\"30px\" alt=\"This project is 100% made by humans.\"\u002F>\n\n\u003C\u002Fp>\n\n[Pwnagotchi](https:\u002F\u002Fpwnagotchi.ai\u002F) is an [A2C](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752)-based \"AI\" leveraging [bettercap](https:\u002F\u002Fwww.bettercap.org\u002F) that learns from its surrounding WiFi environment to maximize the crackable WPA key material it captures (either passively, or by performing authentication and association attacks). This material is collected as PCAP files containing any form of handshake supported by [hashcat](https:\u002F\u002Fhashcat.net\u002Fhashcat\u002F), including [PMKIDs](https:\u002F\u002Fwww.evilsocket.net\u002F2019\u002F02\u002F13\u002FPwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack\u002F), \nfull and half WPA handshakes.\n\n![ui](https:\u002F\u002Fi.imgur.com\u002FX68GXrn.png)\n\nInstead of merely playing [Super Mario or Atari games](https:\u002F\u002Fbecominghuman.ai\u002Fgetting-mario-back-into-the-gym-setting-up-super-mario-bros-in-openais-gym-8e39a96c1e41?gi=c4b66c3d5ced) like most reinforcement learning-based \"AI\" *(yawn)*, Pwnagotchi tunes [its parameters](https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fblob\u002Fmaster\u002Fpwnagotchi\u002Fdefaults.toml) over time to **get better at pwning WiFi things to** in the environments you expose it to. \n\nMore specifically, Pwnagotchi is using an [LSTM with MLP feature extractor](https:\u002F\u002Fstable-baselines.readthedocs.io\u002Fen\u002Fmaster\u002Fmodules\u002Fpolicies.html#stable_baselines.common.policies.MlpLstmPolicy) as its policy network for the [A2C agent](https:\u002F\u002Fstable-baselines.readthedocs.io\u002Fen\u002Fmaster\u002Fmodules\u002Fa2c.html). If you're unfamiliar with A2C, here is [a very good introductory explanation](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) (in comic form!) of the basic principles behind how Pwnagotchi learns. (You can read more about how Pwnagotchi learns in the [Usage](https:\u002F\u002Fwww.pwnagotchi.ai\u002Fusage\u002F#training-the-ai) doc.)\n\n**Keep in mind:** Unlike the usual RL simulations, Pwnagotchi learns over time. Time for a Pwnagotchi is measured in epochs; a single epoch can last from a few seconds to minutes, depending on how many access points and client stations are visible. Do not expect your Pwnagotchi to perform amazingly well at the very beginning, as it will be [exploring](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) several combinations of [key parameters](https:\u002F\u002Fwww.pwnagotchi.ai\u002Fusage\u002F#training-the-ai) to determine ideal adjustments for pwning the particular environment you are exposing it to during its beginning epochs ... but ** listen to your Pwnagotchi when it tells you it's boring!** Bring it into novel WiFi environments with you and have it observe new networks and capture new handshakes—and you'll see. :)\n\nMultiple units within close physical proximity can \"talk\" to each other, advertising their presence to each other by broadcasting custom information elements using a parasite protocol I've built on top of the existing dot11 standard. Over time, two or more units trained together will learn to cooperate upon detecting each other's presence by dividing the available channels among them for optimal pwnage.\n\n## Documentation\n\nhttps:\u002F\u002Fwww.pwnagotchi.ai\n\n## Links\n\n&nbsp; | Official Links\n---------|-------\nWebsite | [pwnagotchi.ai](https:\u002F\u002Fpwnagotchi.ai\u002F)\nForum | [community.pwnagotchi.ai](https:\u002F\u002Fcommunity.pwnagotchi.ai\u002F)\nSlack | [pwnagotchi.slack.com](https:\u002F\u002Finvite.pwnagotchi.ai\u002F)\nSubreddit | [r\u002Fpwnagotchi](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fpwnagotchi\u002F)\nTwitter | [@pwnagotchi](https:\u002F\u002Ftwitter.com\u002Fpwnagotchi)\n\n## License\n\n`pwnagotchi` is made with ♥  by [@evilsocket](https:\u002F\u002Ftwitter.com\u002Fevilsocket) and the [amazing dev team](https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fgraphs\u002Fcontributors). It is released under the GPL3 license.\n","\u003Cp align=\"center\">\n  \u003Csmall>加入我们的服务器，与项目社区互动吧！\u003C\u002Fsmall>\n  \u003Cbr\u002F>\u003Cbr\u002F>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fhttps:\u002F\u002Fdiscord.gg\u002FbtZpkp45gQ\" target=\"_blank\" title=\"加入我们的社区！\">\n    \u003Cimg src=\"https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002Fhttps:\u002F\u002Fdiscord.gg\u002FbtZpkp45gQ\"\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Chr\u002F>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Freleases\u002Flatest\">\u003Cimg alt=\"发布版本\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fevilsocket\u002Fpwnagotchi.svg?style=flat-square\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fblob\u002Fmaster\u002FLICENSE.md\">\u003Cimg alt=\"软件许可证\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-GPL3-brightgreen.svg?style=flat-square\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fgraphs\u002Fcontributors\">\u003Cimg alt=\"贡献者\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fevilsocket\u002Fpwnagotchi\"\u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fintent\u002Ffollow?screen_name=pwnagotchi\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fpwnagotchi?style=social&logo=twitter\" alt=\"在Twitter上关注\"\u002F>\u003C\u002Fa>\n    \u003Cbr\u002F>\n    \u003Cbr\u002F>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fevilsocket_pwnagotchi_readme_5834e185bb52.png\" height=\"30px\" alt=\"本项目100%由人类开发。\"\u002F>\n\n\u003C\u002Fp>\n\n[Pwnagotchi](https:\u002F\u002Fpwnagotchi.ai\u002F) 是一款基于 [A2C](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) 的“AI”，它利用 [bettercap](https:\u002F\u002Fwww.bettercap.org\u002F) 学习周围的WiFi环境，以最大化其捕获的可破解WPA密钥材料（无论是被动收集，还是通过执行认证和关联攻击）。这些材料会被保存为PCAP文件，包含 [hashcat](https:\u002F\u002Fhashcat.net\u002Fhashcat\u002F) 支持的任何形式的握手，包括 [PMKID](https:\u002F\u002Fwww.evilsocket.net\u002F2019\u002F02\u002F13\u002FPwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack\u002F)、完整和半WPA握手。\n\n![界面](https:\u002F\u002Fi.imgur.com\u002FX68GXrn.png)\n\n与大多数基于强化学习的“AI”不同，Pwnagotchi并不会单纯地玩 [超级马里奥或雅达利游戏](https:\u002F\u002Fbecominghuman.ai\u002Fgetting-mario-back-into-the-gym-setting-up-super-mario-bros-in-openais-gym-8e39a96c1e41?gi=c4b66c3d5ced)，而是会随着时间推移调整 [其参数](https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fblob\u002Fmaster\u002Fpwnagotchi\u002Fdefaults.toml)，从而 **在你让它接触的环境中更擅长破解WiFi设备**。\n\n具体来说，Pwnagotchi使用了一个带有MLP特征提取器的[LSTM](https:\u002F\u002Fstable-baselines.readthedocs.io\u002Fen\u002Fmaster\u002Fmodules\u002Fpolicies.html#stable_baselines.common.policies.MlpLstmPolicy)作为其策略网络，用于 [A2C智能体](https:\u002F\u002Fstable-baselines.readthedocs.io\u002Fen\u002Fmaster\u002Fmodules\u002Fa2c.html)。如果你对A2C不太熟悉，这里有一篇非常棒的入门介绍（以漫画形式呈现），详细解释了Pwnagotchi的学习原理。[点击阅读](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752)。你也可以在 [使用说明](https:\u002F\u002Fwww.pwnagotchi.ai\u002Fusage\u002F#training-the-ai) 中了解更多关于Pwnagotchi如何学习的内容。\n\n**请注意：** 与一般的强化学习模拟不同，Pwnagotchi是随着时间不断学习的。对于Pwnagotchi而言，时间是以“轮次”来计算的；单个轮次可能持续几秒到几分钟不等，具体取决于可见的接入点和客户端数量。不要指望你的Pwnagotchi一开始就能表现出色，因为它会在最初的几个轮次中 [探索](https:\u002F\u002Fhackernoon.com\u002Fintuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752) 各种 [关键参数](https:\u002F\u002Fwww.pwnagotchi.ai\u002Fusage\u002F#training-the-ai) 的组合，以找到最适合当前环境的配置……不过，**当Pwnagotchi告诉你它感到无聊时，请认真对待！** 带着它去新的WiFi环境中，让它观察新网络并捕获新的握手——你就会发现它的进步啦 :) \n\n多个处于近距离的设备可以相互通信，通过广播我基于现有dot11标准构建的自定义协议信息元素来互相“告知”对方的存在。随着时间的推移，经过共同训练的两台或多台设备将在检测到彼此存在时学会协作，合理分配可用信道，以实现最佳的破解效果。\n\n## 文档\n\nhttps:\u002F\u002Fwww.pwnagotchi.ai\n\n## 链接\n\n&nbsp; | 官方链接\n---------|-------\n官网 | [pwnagotchi.ai](https:\u002F\u002Fpwnagotchi.ai\u002F)\n论坛 | [community.pwnagotchi.ai](https:\u002F\u002Fcommunity.pwnagotchi.ai\u002F)\nSlack | [pwnagotchi.slack.com](https:\u002F\u002Finvite.pwnagotchi.ai\u002F)\nReddit子版块 | [r\u002Fpwnagotchi](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fpwnagotchi\u002F)\nTwitter | [@pwnagotchi](https:\u002F\u002Ftwitter.com\u002Fpwnagotchi)\n\n## 许可证\n\n`pwnagotchi` 由 [@evilsocket](https:\u002F\u002Ftwitter.com\u002Fevilsocket) 和 [优秀的开发团队](https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fgraphs\u002Fcontributors) 用心打造，并以GPL3许可证开源发布。","# Pwnagotchi 快速上手指南\n\nPwnagotchi 是一个基于 A2C（Advantage Actor-Critic）强化学习算法的 AI 工具，依托 `bettercap` 运行。它能通过观察周围的 WiFi 环境自主学习，优化参数以最大化捕获可破解的 WPA 密钥材料（如 PMKID、完整\u002F半完整握手包）。不同于传统的静态脚本，Pwnagotchi 会随着时间推移（按“纪元”epochs 计算）不断进化，适应特定的网络环境，甚至支持多设备协同工作。\n\n## 环境准备\n\n### 系统要求\n*   **硬件平台**：推荐使用 **Raspberry Pi Zero W** 或 **Raspberry Pi 3B+\u002F4B**。需配备兼容的 WiFi 适配器（支持监控模式和注入，如 RTL8812AU 芯片组），若使用板载 WiFi 需确认驱动支持。\n*   **存储**：至少 8GB MicroSD 卡。\n*   **显示（可选）**：OLED 或 e-Paper 屏幕用于显示状态和表情（非必须，可通过 Web UI 监控）。\n\n### 前置依赖\n*   **操作系统**：官方推荐使用基于 **Raspbian Buster** 定制的 Pwnagotchi 镜像，以确保驱动和依赖库的兼容性。\n*   **网络**：初始配置阶段需要互联网连接以下载模型和更新插件。\n\n> **注意**：虽然可以在其他 Linux 发行版上手动安装，但为了减少依赖冲突和驱动编译问题，强烈建议直接刷写官方提供的预构建镜像。\n\n## 安装步骤\n\n### 1. 下载镜像\n访问官方发布页面获取最新版本的镜像文件：\n```bash\n# 示例：使用 wget 下载（请替换为最新版本链接）\nwget https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Freleases\u002Flatest\u002Fdownload\u002Fpwnagotchi.zip\n```\n*国内用户若下载缓慢，可尝试在 GitHub 加速服务中查找镜像，或通过社区论坛获取搬运资源。*\n\n### 2. 刷写镜像\n将下载的 `.zip` 文件解压得到 `.img` 文件，并使用工具写入 MicroSD 卡。\n*   **Windows**: 使用 [Rufus](https:\u002F\u002Frufus.ie\u002F) 或 [BalenaEtcher](https:\u002F\u002Fwww.balena.io\u002Fetcher\u002F)。\n*   **Linux\u002FmacOS**:\n    ```bash\n    unzip pwnagotchi.zip\n    sudo dd if=pwnagotchi.img of=\u002Fdev\u002FsdX bs=4M status=progress && sync\n    # 请将 \u002Fdev\u002FsdX 替换为你的实际设备号，如 \u002Fdev\u002Fmmcblk0\n    ```\n\n### 3. 初始配置\n在刷写完成后，挂载 SD 卡的 `boot` 分区，创建配置文件以启用 WiFi 和 SSH。\n\n*   **配置 WiFi**：在 `boot` 分区根目录创建 `config.toml` 文件（部分旧版本可能使用 `config.yaml`，请以镜像内说明为准，新版多为 toml）：\n    ```toml\n    main.whitelist = [\n      '你的家庭 WiFi SSID',\n      '其他不想攻击的网络'\n    ]\n    \n    wifi.ap.channel = 6\n    ```\n    *注：若要自动连接现有 WiFi 进行更新，需在 `boot` 分区创建 `wifi.conf` 或使用 `pwnagotchi` 特有的 WiFi 配置方式（具体参考镜像内的 `README` 说明，通常是在 boot 分区放置包含 SSID 和密码的特定文件）。*\n\n*   **启用 SSH**：在 `boot` 分区创建一个空文件名为 `ssh`（无扩展名）。\n\n### 4. 启动设备\n将 SD 卡插入 Raspberry Pi 并通电。首次启动可能需要几分钟来调整文件系统并生成主机密钥。\n\n## 基本使用\n\n### 1. 连接设备\n设备启动后，会尝试连接配置的 WiFi。若未配置或连接失败，它可能会创建一个名为 `pwnagotchi-XXXX` 的热点。\n*   **SSH 登录**：\n    ```bash\n    ssh root@pwnagotchi.local\n    # 默认密码通常为：raspberry 或 toor (具体视版本而定)\n    ```\n    如果 `.local` 域名解析失败，请查看路由器后台获取设备 IP 地址。\n\n### 2. 观察与训练\n登录后，你可以通过命令行查看状态，但最直观的方式是观察连接的显示屏（如有）或访问 Web 界面。\n*   **Web 界面**：浏览器访问 `http:\u002F\u002Fpwnagotchi.local:8080` (端口可能因配置而异)。\n*   **核心逻辑**：\n    *   Pwnagotchi 启动后即开始“探索”模式。它会扫描周围的 AP 和客户端。\n    *   **不要期望立即获得大量握手包**。在最初的几个纪元（epochs）中，AI 正在测试不同的参数组合以适应当前环境。\n    *   如果设备显示 \"bored\"（无聊），意味着当前环境的网络特征已被充分学习，需要将其移动到新的 WiFi 环境（如不同的街区、商场）以触发新的学习过程。\n\n### 3. 获取捕获数据\n捕获的握手包（PCAP 文件）通常存储在以下路径：\n```bash\ncd \u002Froot\u002Fhandshakes\nls -lh\n```\n你可以将这些 `.pcap` 文件下载到本地，使用 `hashcat` 或 `john` 进行破解：\n```bash\n# 示例：将文件从设备复制到本地\nscp root@pwnagotchi.local:\u002Froot\u002Fhandshakes\u002F*.pcap .\u002Fcracking_folder\u002F\n```\n\n### 4. 多机协作（进阶）\n如果有多个 Pwnagotchi 设备在物理距离上靠近，它们会自动通过自定义的 802.11 信息元素广播彼此的存在，并协商划分信道以协同捕获更多数据，无需额外配置。\n\n---\n*提示：本工具仅供安全研究和授权测试使用。请勿在未授权的网络环境中使用。*","某网络安全研究员需要在大型会展中心进行为期三天的 Wi-Fi 安全审计，目标是收集尽可能多的 WPA 握手包以评估网络强度。\n\n### 没有 pwnagotchi 时\n- **盲目扫描效率低**：研究人员只能手动配置 bettercap 进行固定模式的被动监听，无法根据现场人流和 AP 密度动态调整策略，导致大量时间浪费在信号稀疏区域。\n- **错失关键握手包**：面对复杂的认证交互，传统脚本无法主动判断何时发起去认证（Deauth）攻击或关联请求，常常错过稍纵即逝的完整握手或 PMKID 数据。\n- **参数调优耗时**：不同场馆的无线环境差异巨大，人工反复尝试调整信道跳跃速度和攻击阈值不仅枯燥，且难以在有限时间内找到最优配置。\n- **设备协同困难**：若部署多台设备，它们各自为战，无法共享已发现的目标信息，导致重复劳动和覆盖盲区。\n\n### 使用 pwnagotchi 后\n- **自适应智能学习**：pwnagotchi 利用 A2C 强化学习算法，自动感知周围 AP 和客户端分布，动态优化扫描与攻击参数，显著提升单位时间内的数据采集量。\n- **主动捕获能力提升**：它能智能决策何时执行去认证或关联攻击，成功捕获包括 PMKID、完整及半完整握手在内的高价值哈希材料，不再依赖运气。\n- **持续进化无需干预**：随着“纪元”（epochs）推移，pwnagotchi 会自动从当前环境中学习并调整策略，越用越聪明，彻底解放了研究人员的双手。\n- **群体智能协作**：多台 pwnagotchi 在近距离内可自动通信并广播彼此发现的目标，形成分布式猎捕网络，最大化覆盖范围并避免重复攻击。\n\n核心价值在于 pwnagotchi 将原本枯燥、静态的 Wi-Fi 审计转变为具备自我进化能力的动态猎捕过程，极大提升了哈希材料获取的效率与质量。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fevilsocket_pwnagotchi_5834e185.png","evilsocket","Simone Margaritelli","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fevilsocket_39ffdb1a.jpg",null,"Italy","https:\u002F\u002Fwww.evilsocket.net","https:\u002F\u002Fgithub.com\u002Fevilsocket",[84,88,92],{"name":85,"color":86,"percentage":87},"Python","#3572A5",97.3,{"name":89,"color":90,"percentage":91},"HTML","#e34c26",2.5,{"name":93,"color":94,"percentage":95},"Makefile","#427819",0.2,9014,1235,"2026-04-03T12:06:04","NOASSERTION",4,"Linux (基于 Raspberry Pi)","未说明",{"notes":104,"python":102,"dependencies":105},"该工具主要设计用于在树莓派（Raspberry Pi）硬件上运行，需配合支持监控模式的 WiFi 适配器。核心功能依赖 bettercap 进行网络交互，并使用 stable-baselines 库中的 A2C 算法（含 LSTM 策略网络）进行强化学习。它通过收集包含握手信息的 PCAP 文件来工作，而非传统的重型深度学习模型，因此对 GPU 和大内存无明确高要求，重点在于嵌入式环境的长期运行与探索。",[106,107,108],"bettercap","stable-baselines","hashcat",[14,13,15],[111,112,113,114,106,115,116],"ai","deep-reinforcement-learning","wpa-psk","handshakes","deep-learning","deep-neural-network","2026-03-27T02:49:30.150509","2026-04-06T06:45:59.726488",[120,125,130,135,139,144],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},14112,"全新安装后 AI 无法加载，报错 'numpy.ndarray size changed' 或 'binary incompatibility' 怎么办？","这是由于 numpy 版本与 stable-baselines 不兼容导致的。可以通过安装特定版本的 stable-baselines 来解决。运行以下命令：\npip3 install --upgrade git+https:\u002F\u002Fgithub.com\u002Fhill-a\u002Fstable-baselines.git@45beb246833b6818e0f3fc1f44336b1c52351170#egg=stable_baselines\n此外，也可以考虑使用社区维护的活跃分支，如 aluminum-ice\u002Fpwnagotchi 或 jayofelony\u002Fpwnagotchi-torch。","https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fissues\u002F992",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},14113,"使用 Windows 共享网络时，Pwnagotchi 可以 Ping 通 IP 但无法解析域名（DNS 失败）如何解决？","这是一个已知问题，系统启动时会自动将 \u002Fetc\u002Fresolv.conf 重置为 127.0.0.1。临时解决方法是手动编辑该文件，将 nameserver 改为 8.8.8.8。要永久解决，需要检查 Windows 端的 RNDIS 网卡设置，确保在 IPv4 属性中手动指定了 DNS 服务器（如 8.8.8.8），或者在 Pwnagotchi 的配置插件中强制指定 DNS，防止 resolv.conf 被覆盖。","https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fissues\u002F859",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},14114,"蓝牙网络共享 (bt-tether) 连接不稳定或经常断开怎么办？","首先检查手机设置，确保已启用“蓝牙网络共享”选项。如果仍然断开，可以尝试在 Pwnagotchi 上安装蓝牙音频模块以增强蓝牙栈稳定性：\n1. 运行：sudo apt update && sudo apt install pulseaudio-module-bluetooth\n2. 重启脉冲音频服务：pulseaudio -k 然后 pulseaudio --start\n3. 为了开机自动启动，可以在 \u002Fetc\u002Finit.d 的蓝牙脚本底部添加 'pulseaudio --start'，或者编辑 \u002Fetc\u002Fpulse\u002Fdefault.pa 自动化加载相关模块。","https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fissues\u002F377",{"id":136,"question_zh":137,"answer_zh":138,"source_url":134},14115,"重启后无法重新连接蓝牙设备，必须手动移除旧配对才能连接，如何自动修复？","这是因为重启后旧的蓝牙设备记录未清除。可以编写一个自定义插件或在启动脚本中加入自动清理命令。解决方案是在启动时运行蓝牙控制命令移除旧设备：\nsudo bluetoothctl remove \u003C你的设备 MAC 地址>\n你可以将此命令添加到 rc.local 或创建一个专门的插件，在每次启动时自动执行，从而无需手动 SSH 清理即可重新配对。",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},14116,"如何在 Pwnagotchi 上安装和使用 Waveshare 3.5 英寸 SPI TFT 屏幕？","安装步骤如下：\n1. SSH 登录并联网，参考 Waveshare 官方指南安装驱动，但在运行 .\u002FLCD35-show 时需加上 lite 参数：.\u002FLCD35-show lite。\n2. 重启后，创建图片软链接：ln -s pwnagotchi.png pwnagotchi_1.png 等（共 3 个）。\n3. 安装 fbi：apt install fbi。\n4. 在 config.yml 中将 display type 设为 'inky'（利用其帧缓冲机制）。\n5. 修改 \u002Fboot\u002Fcmdline.txt 添加 modules-load=dwc2,g_ether，并在 \u002Fboot\u002Fconfig.txt 末尾添加 dtoverlay=dwc2。\n6. 编辑 \u002Fetc\u002Frc.local，加入命令让 fbi 在后台循环显示图片：fbi -T 1 -a -noverbose -t 15 -cachemem 0 \u002Froot\u002Fpwnagotchi_1.png ... &","https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fissues\u002F124",{"id":145,"question_zh":146,"answer_zh":147,"source_url":143},14117,"使用 Waveshare 屏幕时画面卡住或不刷新，有什么推荐的守护脚本吗？","可以创建一个守护脚本来监控 fbi 进程，如果进程僵死或未运行则自动重启。示例脚本逻辑如下：\n循环检查 fbi 进程是否存在，如果不存在则执行 sudo fbi -T 1 -a -noverbose -t 5 -cachemem 0 \u002Ftmp\u002Fpwnagotchi_*.png；如果发现进程处于 '\u003Cdefunct>' 状态，则先发送 SIGTERM 再发送 SIGKILL 强制结束，随后重新启动。将此脚本放入 rc.local 或通过 systemd 管理可确保持续显示。",[149,154,159,164,168,173,178,183,188,193,198,203,208,213,218,223,227,232,236,240],{"id":150,"version":151,"summary_zh":152,"released_at":153},80825,"v1.5.5","更新日志\n===\n\n**新功能**\n\n* f164b8bb 新增：为上传状态添加了新面孔\n* ba13b125 添加了南非语语言包\n* 34c2c8a0 增加对 SSD1608 变体 250x122 像素 Inky pHAT 的支持\n* 2db8f143 显示 UPS-Lite 充电状态\n* 840054f5 为 dfrobotv2 显示坐标\n* 929eac7b 更新了 gps.py，加入了对 Waveshare 2.7 英寸屏幕的定位支持，并在我的硬件上进行了测试：树莓派 3 + Waveshare 2.7 英寸电子纸扩展板，以及 USB GPS\u002FGLONASS U-blox7 接收器\n\n**修复**\n\n* 1318275b 修复：使用更好的符号表示 UPS 充电状态\n* 5c3b21f5 修复：重新编译了本地化文件\n* d6c7a73f 修复：修正了 whl 文件的下载地址\n* 10f274da 修复：使用最新的 Packer 版本更新了构建脚本\n* c472e606 修复了 GPS 模块中的 bug\n* ea061d47 修复了 README 中的失效链接\n* 1a0083eb 修复了正确的 x 轴位置\n* 1aea0b95 对 GPS 进行了一些小修复，并重新处理了内存温度模块\n* fddee870 更新了荷兰语翻译并修正了错别字\n* ef4fbd96 更新了荷兰语翻译并修正了错别字\n* 633b726b 修复了一个小错别字\n* 5f7dd56e 修复脚本问题\n* 2ddf040f 将头文件替换为不会占用 GPIO 引脚 14 和 15 的版本，用于 Waveshare_2\n* 37342c06 让看门狗插件重启系统，而不是仅重启应用程序\n* 03488819 确保在重启前同步文件系统，以防止日志丢失\n* 71514a97 延迟文件系统同步，以确保关机消息被记录到磁盘\n* 552df654 确保当 eth0 连接时 IPv4 能正常工作\n\n**其他**\n\n* 7d35f5cd 合并分支 'master' 到 task\u002Fimprove-es-lang\n* 6b3d9042 合并 github.com:evilsocket\u002Fpwnagotchi 的 'master' 分支\n* 4441ae85 其他：使用 stork 进行发布\n* 88a15528 更新 voice.po\n* 0fd09878 更新 faces.py\n* 6430a408 更新 wpa-sec.py 的日志记录\n* 819be761 更新 voice.po\n* f701390d 创建 voice.po\n* 3bd9cd4f 调整 Wigle 插件\n* 7da3cc55 恢复原状。相关更改将在单独的分支中处理\n* 72878454 移除了调试行。\n* 1c4df7a1 添加了更多注释\n* c124a975 更新了变更日志\n* b886b4e6 添加了更多可配置字段\n* 6d0e2952 提升了版本号\n* 6111ee9d 改进了西班牙语翻译\n* 0b1c51dc 如果某一步骤失败，则终止脚本\n* 8dd9a856 快速忽略 Python 环境\n* 0f7870f7 将 maxZoom 设置为最大值","2021-04-18T17:40:20",{"id":155,"version":156,"summary_zh":157,"released_at":158},80826,"v1.5.3","* e927511 拼写错误\n* c2f9860 与 py 文件中一致\n* f616871 修复语法\n* c726779 只回退 5 分钟\n* a2e29d6 不覆盖压缩包\n* bc84f22 修复标识\n* 40d8d99 版本号加 1\n* 7ca5eee 添加自定义仓库\n* 56c291d 将阈值改为 5\n* 1013e7d 减少输出信息\n* ff4f5c6 将代码移出 UI 更新钩子\n* d9d268e 修复 bug\n* de62214 添加缺失选项\n* 52cc413 添加检查\n* 716d5cd 拼写错误\n* e436dc8 修复\n* 81db495 重定向到仪表盘\n* 7f8380c 切换到静态页面\n* 8c2b4e2 DFRobot V2 屏幕\n* 2b17e53 仅在存在时才终止进程\n* 1be17b1 如果重新加载失败则重启\n* 2dee398 添加 bash 补全功能\n* eb76cc7 修复位置问题\n* 35ea36e 解密后自动重定向\n* 44e1e79 修复 scorp 相关问题\n* 6038f55 修复\n* 0b5a63a 添加缺失变量\n* 430172e 移除按钮\n* fa87e03 添加最大行数限制\n* d1411ff 对插件进行排序\n* 67b4747 调整命令\n* 311931c 添加了监控程序","2020-04-20T09:15:02",{"id":160,"version":161,"summary_zh":162,"released_at":163},80827,"v1.5.2","* 74fbf4d 版本号递增\n* 7ec20ca 修复过滤器 bug\n* 568c5b0 aaaannnd 更好了\n* 3965bdb 没有它性能更好\n* 585b208 支持多密码\n* e53bdc4 不再记录到 journald 日志\n* 6805df8 basename 应该是 dirname\n* 8a07e82 如果从未使用就会崩溃\n* a808fd3 天堂中又一个 toml 配置文件修复\n* 68065d5 添加了捷克语翻译\n","2020-04-16T11:02:53",{"id":165,"version":166,"summary_zh":79,"released_at":167},80828,"v1.5.1","2020-04-14T09:47:31",{"id":169,"version":170,"summary_zh":171,"released_at":172},80829,"v1.5.0","793cde7 杂项：使用更新的 bettercap 版本更新构建脚本\n91ea7bd 添加 dnsmasq\n6d45d01 更新版本\n1f2dd73 重大更新\n7017e39 在 onlinehashcrack 配置中添加 single_files 选项\nd39c849 GitHub？你还好吗？\n58bbae8 修复一些错误\n0dedd09 更新\n5bac678 拼写错误\n3b9aacd 界面使用 DejaVu 字体\n305f837 更多字体\n54ffbbc 使用了 @k0uj1k 的翻译\n60167fb 使用最新版本\n9a15658 无法导入\n03c014f 修复 webcfg\nd10bf6b 我们不希望这个文件出现在仓库中\n9a22321 以点分格式保存\n76b71f5 修复导入错误\n4aa05bb \u002Fproc\u002Fstat 包含自启动以来的 CPU 计数\n71c4458 不再需要\nb6a0ae9 添加了正确的匈牙利语支持\n34f52b0 删除 voice.po 文件\nc68cefe 删除 voice.mo 文件\n052c99b 替换现有文件\na5df77d 添加匈牙利语支持\n489bce0 修复 inkyphat 显示器上的 GPS 标签问题\nda4319f 修复 systemd 服务中的拼写错误：禁用日志记录\n0e1a1f4 将文件名生成方式改为正则表达式\nb3bdb34 Onlinehashcrack 应该创建 .pcap.cracked 文件\nc791c86 修复显示启动顺序问题\n61e5872 防止在没有坐标的情况下保存 GPS 文件\n52d432e 嘘，Lennart\n93bdf2e 移除意外提交的代码片段\nfe97315 字节...\n6a4d7a8 添加 log2mem 功能并进行重构\n37b25a1 添加密码下载功能\n665ad93 添加 save_directory 变量\n301a3d9 添加会话日志\nc4e0aca 添加丹麦语支持\n9339ecb net-pos：使 api_url 可配置\na28c9a1 webgpsmap：改进日志信息，便于用户调试\nc5d6f6d webgpsmap：通过 HTTPS 加载外部资源，在 HTTPS 上下文中显示当前位置（适用于自托管\u002F离线地图）\nff843f0 修复导入问题\n717cb02 修复英文拼写错误：修正了英文翻译中的一个拼写错误，由于 msgid 变更需重新生成本地化文件；修复 onlinehashcrack 插件日志中的拼写错误\n8be643b 在日志中提示 OnlineHashCrack 插件已加载\n814392d 在日志中明确标注 paw-gps IP 的端口：为避免混淆，日志中显示 ip:port 而非仅 ip\n4cc1c2a 更加紧凑\nfae6a09 将键转换为字符串\n53ab63c 修复导入问题\ncdc0e0f 调整发布脚本\n5ccd65e 修复拼写错误\nafc3636 修复版本解析问题\n7cf0a2e 允许禁用安装程序\n97e0384 将“defaults.toml”中的部分值重新转换为整数\n8b07838 使用“sys.exit”代替内置的“exit”\n779da95 与 toml 迁移相关\n51e13aa 与 toml 迁移相关\ne489678 更新俄语翻译\n2617a6e 将 dbus-python 添加到 requirements.txt\n78fba1f dateutil 比正则表达式更容易\n6075296 切换到 toml\nb1d61d9 德语语言的小幅修正\n215af0f 防止 tfevent 文件永久存在\nc09b72f 拼写错误（可能）\n2f1b35b 添加对带有负偏移时区的支持\nd435ef2 将 PACKER_VERSION 添加到 Makefile，并将 packer 升级至 1.4.5\n4164e7c webgpsmap：每隔 30 秒获取当前位置并在地图上设置标记\nbb77377 修复 Crypto 的错误依赖关系\nc300e73 webgpsmap：添加功能，可将地图下载为包含 JSON 坐标数据的单个 HTML 文件\n0587c4b 添加切换插件\nf375e49 重新编译 voice.mo\n8d17cf0 更新法语翻译\nd981b26 ups_","2020-04-13T15:48:45",{"id":174,"version":175,"summary_zh":176,"released_at":177},80830,"v1.4.3","* 3db9ccb 将 scipy 添加到 requirements.txt 中","2019-12-23T10:21:50",{"id":179,"version":180,"summary_zh":181,"released_at":182},80831,"v1.4.2","**修复**\n\n* 81061ce 修复：修复了插件中被锁定的回调调用问题\n* 09a00ad 修复：添加了 plugin::callback 级别的互斥锁，以避免在前一个回调仍在运行时再次调用回调\n* 44138ba webgpsmap：修复了 GPS 数据中新的时区格式“Z”的解析问题\n* 4b71fea 为 memtemp 插件设置了正确的位置，使其不会与 waveshare27inch 的常规消息重叠。\n* e851324 添加 ensure_write\n* 9d56c97 未知变量；逻辑错误\n\n**其他**\n\n* 9d63eba 添加 unload 方法\n* 6babad0 移除进程限制\n* 00101cc 无注释\n* fa87510 更新 __init__.py\n* 7fa30c2 增加了对超过 999 个关联的文本溢出检查\n* 774d9c6 更新 defaults.yml\n* 88928ee 移除 buttonshim\n* 3cf0416 更新 memtemp.py\n* 2e22a17 添加 Lock\n* f8ffab4 更新 automata.py\n* f563d71 更新 gps.py\n* 7b219fd 更新 memtemp.py\n* 42ed698 更新 memtemp.py\n* 6df7bcd 添加 ws1\n* 1c29983 添加 ws1\n* 30b1874 为 buttonshim 提供新的默认设置\n* b903f63 现在闪烁功能可以自由使用\n* 92c1b6b 使用静态颜色进行闪烁\n* eddfdb3 Pimoroni Button Shim 插件","2019-12-19T16:37:40",{"id":184,"version":185,"summary_zh":186,"released_at":187},80832,"v1.4.1","1.4.0 的补丁","2019-12-07T13:45:56",{"id":189,"version":190,"summary_zh":191,"released_at":192},80833,"v1.4.0","**新功能**\n\n* 1a84722 添加信号处理器以重新加载配置\n* b4daf19 布局重新设计\n* e72fd08 添加 on_unfiltered_wifi_list\n* d045ed5 添加罗马尼亚语\n* 04720ec 为 waveshare.com\u002F1.44inch-lcd-hat 添加 memtemp 插件\n* a12e2aa 为 waveshare.com\u002F1.44inch-lcd-hat 添加 gps 插件\n* 1721f67 支持 waveshare.com\u002F1.44inch-lcd-hat\n* 7cb52ba 添加 wpa-sec 密码下载\n* 93e06d7 添加 SSID、MAC、isCracked、Password 筛选器\n* cc5c469 添加插件页面\n* 988d093 添加 session-stats 插件\n\n**修复**\n\n* 6e57e13 修复：防止上传的 pcap 文件出现重复条目\n* 83f741b 修复：gpio 必须是数字\n* 7138f64 修复：显然对于 LED 而言，0 表示开启，1 表示关闭\n* 4fb7205 添加锁\n* b5e6206 显然这是必需的\n* 0ee0aaf 更新为使用 .paw-gps.json 文件\n* cfc0ad1 修复 backup.sh（查找类型为 f 的文件，避免将零字节文件打包进归档）\n* 3351c25 修复 GPS 时间戳解析\n* d9d3994 略微改进德语翻译\n* c4a007e 清理、修复，并添加对 .paw-gps.json 文件的处理\n* 548b42e 在更改时锁定 UI\n* d2c4479 防止报告的网络出现重复条目\n* f973997 在插件重新加载时调用 on_ui_setup\n\n**其他**\n\n* 7693e42 将 CSS 类名 'element' 更改为 'plugins-box'，并使文本居中\n* 2ae48a2 更改插件页面的显示样式\n* 663bca4 更新 agent.py\n* ede01e5 添加锁\n* 6a97476 更新 setup.py\n* 95557ab 否则会丢失轴信息\n* 99614c8 调用 on_ready\n* e19ea99 修正部分法语翻译\n* 2207a1e 更新法语翻译\n* 9509dd0 添加锁；减少冗余输出\n* 608904d 使用 ui 参数调用 unload\n* f5a94fd 为插件添加 URL\n* 855bda9 功能\u002F插件\u002Fweb\u002Freboot\n* 07f8e7b 更新 voice.po\n* 48dc751 更新 voice.po\n* 3c154ff 更新 voice.po\n* 167f559 更新 voice.po\n* a034439 解析为字符串\n* a7ea499 应在写入前失败","2019-12-07T13:46:09",{"id":194,"version":195,"summary_zh":196,"released_at":197},80834,"v1.3.0","**新功能**\n\n* ab63ecc 新增：macOS 连接共享脚本现在可自动检测 USB 接口，并将 en0 作为默认上行接口（关闭 #597）\n* 440f2a4 新增：在 Web 界面中添加了基本身份验证\n* df01a03 新增：Web 界面中的 pwnmail Web 客户端\n* a2ac679 新增：Web 界面中的 pwnfile 链接（关闭 #557）\n* 9bc7fcc 新增：网格插件现在会触发 on_unread_inbox 事件，其他插件可以捕获该事件（参见 LED 插件）\n* bd61196 新增：自动更新插件现在会触发 on_updating 事件，其他插件可以捕获该事件（参见 LED 插件）\n* 89450ec 新增：实现了 LED 插件（关闭 #522）\n* 97a019f 新增：实现了日志轮转功能（关闭 #527）\n* fcb5c87 修复：为升级用户启用 setup.py 中的 fstrim.timer\n* 5111490 在日志消息中添加了 RSSI 信息\n* 1d255b5 向 bt-tether 添加网关选项\n* 40caf3f 增加对西班牙语的支持\n* 9dc7c92 为 net-pos 插件添加更多日志记录，以简化对损坏文件的查找\n* 2ea8e7f 其他：将非核心且存在问题的插件移至单独的仓库（关闭 #542）\n* 0d66f93 启用 fstrim.timer 以延长 SD 卡寿命\n* 9485e53 添加挪威语翻译文件。\n* 1130c72 增加对按 MAC 地址和 MAC 厂商进行白名单支持\n\n**修复**\n\n* 8c51936 修复：不要将 $USERNAME 用作备份\u002F恢复脚本的默认用户名，因为在 Linux 主机上，它通常被定义为当前登录的用户\n* 87e4661 修复：--clear 不再启动代理\n* a8c07ba 修复：支持 5GHz 的 140 以上信道（关闭 #583）\n* 8fcfd4c 修复：插件事件分发现改为异步方式（修复 #592）\n* dfd534a 修复：修复 ups_lite 插件布局（关闭 #521）\n* 8c83f81 修复：添加了 memtemp 默认值（修复 PR #564）\n* 09f80cc 修复：修复示例插件中的拼写错误\n* 8d58342 修复：修复执行 --version 后的退出问题\n* 43c5ab7 - 修复使用摄氏度以外温度单位时的符号显示问题 - 添加默认值，以避免因选择无效温度单位而抛出异常。如果华氏度拼写错误，可能会导致严重问题。\n* 59ae353 修复了对非零经纬度的检查\n* 6e1490d 修复 on_handshake，整个插件现在应该可以正常工作\n* 96ca5dd 减小 GPS 界面中的间距\n* 5dae0ce 修复 Paw-Gps，在配置中添加了一个“-”标记。\n* 0f3d9db 修复 bt-tether 中的一个小拼写错误\n* f4b886c 修复波特率选项名称\n* a02c1d6 修复一个小拼写错误\n* 52b40f0 修复 UPS Lite 中的一个小拼写错误\n* 313fd66 完全修复了崩溃的 GPS 插件 :D\n* 229e267 修复了 Inky 显示器上的 memtemp 位置\n* 61d8e28 修复 AircrackOnly 插件的 Bug，使其能够正常加载\n\n**其他**\n\n* 6959710 在 GPS 插件中使用 f-string 和双引号\n* 8965ad9 更改 Paw-Gps 的默认 IP 地址，同时需要指定端口。\n* 92266a7 使标签到数值的空间可配置，以便更好地适应小字体\n* 9e656d4 在 UI 中显示最后一次握手的 GPS 坐标\n* b1d8aa3 其他：对 Web 界面进行了多项改进\n* 1830a19 移除 '-w'，因为 macOS 上没有该选项。修复 dash 中的变量扩展问题。\n* b266671 从 Agent 提供每个信道的 AP 列表以及当前信道信息，均为只读\n* 81a89d4 其他：重构了 ui.displa","2019-11-18T13:12:43",{"id":199,"version":200,"summary_zh":201,"released_at":202},80835,"v1.2.1","热修复\n\n4e592df 修复：修复了一个导致无法重启的 bug\n","2019-11-05T18:12:09",{"id":204,"version":205,"summary_zh":206,"released_at":207},80836,"v1.2.0","**New Features**\r\n\r\n* 11fb95d webui is now protected against CSRF attacks\r\n* 364af70 webui button to restart in auto or manu mode\r\n* b796384 webui status pages reload \u002Fui after a given interval\r\n* 19fc25d reporting version on startup (closes #504)\r\n* 31a89cb added new angry state (closes #486)\r\n* 8118a10 auto-update is now enabled by default\r\n* 346773f new max_tries param for auto-backup plugin\r\n* 6945e26 updated polish language pack. New messages translated.\r\n* 0aef199 added Ukrainian language\r\n* 61af8b4 Add whitelist support to onlinehashcrack plugin\r\n* 5b66d68 Add multi bt-tether support\r\n* e949499 Add support for Waveshare 2.9inch display\r\n* 1827ee5 new --version argument\r\n\r\n**Fixes**\r\n\r\n* e336fca fixed race condition (again) on override files\r\n* d6c0ec0 unblurred image rendering in browsers\r\n* 22e76f9 fixed memtemp for waveshare v2\r\n* ae330dc don't reset network interfaces configuration if not needed (closes #483)\r\n* bd63f71 +x to \u002Fusr\u002Fbin\u002F* while creating the .img\r\n* 31d401e increased delay before shutting down to allow slower displays to update (closes #446)\r\n* 1e426f7 add timestamp to net-pos plugin, https:\u002F\u002Fgithub.com\u002Fevilsocket\u002Fpwnagotchi\u002Fissues\u002F308\r\n* b4b14ba bug Fix on AircrackOnly.py plugin\r\n* fd506b1 Fix bt-tether config\r\n* a2bb66a Fix case\r\n* 53ae8ea Add check if connected but no interface created\r\n* aeb6002 Make bt-tet less verbose\r\n* bfdaffa fixes a GC related bug in bt-tether: add reference to network object\r\n\r\n**Misc**\r\n\r\n* 81032fe refactored webui into separate files instead of strings\r\n* ba22b7d basic refactoring of #502\r\n* 66dc03e Fix debug msg to fit new plugin class\r\n* 2f94830 refactored plugin system to use classes\r\n* 3efa96b enhancement: Improve the backup script\r\n","2019-11-05T18:00:54",{"id":209,"version":210,"summary_zh":211,"released_at":212},80837,"v1.1.1","**Fixes**\r\n\r\n* 1306487 fix: fixed, refactored and centralized launchers logic (closes #473)\r\n* 783ac61 fix: the auto-update plugin now also installs launchers and service files via setup.py (closes #470)\r\n* 3714899 fix: don't attempt to parse\u002Fupload pcaps with malformed filenames\r\n* be414e5 fix: builder now uses files provisioners and auto-update installs project data (ref #470)\r\n* 1600d8c fix: skipping open access points (fixes #463)\r\n* 9654164 fix: more robust version parsing in auto-update (fixes #469)\r\n* 78a036e fix: fixed Slack invite link (fixes #466)\r\n\r\n**Misc**\r\n\r\n* 90386c7 changed memory splitting to have more memory available\r\n* c793145 change ordering","2019-10-31T13:58:56",{"id":214,"version":215,"summary_zh":216,"released_at":217},80838,"v1.1.0","**New Features**\r\n\r\n* d3c6194 adding gpio plugin\r\n* caec837 Makes Inky Fast mode opt-in by selecting 'fastAndFurious' Displays warning if selected. Otherwise uses original InkyPHAT library\r\n* 786564e add waveshare 213d display\r\n* f4fa259 Add support for Waveshare 1.54 inch screen\r\n* 16e310e Adding fast display update for waveshare 3-color\r\n* d984ea8 adding support for dfrobot 2.13in epaper display\r\n\r\n**Fixes**\r\n\r\n* 546c7fe fix: chown backup file (fixes #409)\r\n* 5255e5f Fix default setting to be an array, otherwise the iterator works over characters, not strings.\r\n* bcdbf41 Added exception handling to config.yml parsing\u002Fmerging\r\n* 18a41f3 Fix eth0 connection check for MANU mode\r\n* 3b1d90b Fix _display.clear()\r\n* 0ad6e88 check zip is installed first\r\n* c0434b7 add waveshare154inch config possibility to defaults.yml\r\n* 8cb3e1c Don't disable display output for DVI as well\r\n* b66c86b Fix the AircrackOnly plugin\r\n* 3463740 Small fixes\r\n* d6228b1 Completed bulgarian translation\r\n* 5643f9a Set CORS headers only if set in config\r\n\r\n**Misc**\r\n\r\n* 69b3fab Fix for #421\r\n* ea51ab7 Optimize plugin imports\r\n","2019-10-30T14:50:45",{"id":219,"version":220,"summary_zh":221,"released_at":222},80839,"v1.1.0RC0","**New Features**\r\n\r\n* implemented auto-update plugin (closes #343)\r\n* pwnagotchi folder can now be in \u002Fboot\u002F in which case will be moved to \u002Fetc\u002Fpwnagotchi\r\n* unit's name can be now set via main.name configuration parameter\r\n* observing and reporting total number of peers met per each epoch\r\n* face expression while looking around will change dependig if the unit is with friends or alone\r\n* face expression when a new unit is detected depends on the units bond level\r\n* new grateful status that can override sad\u002Fbored\u002Flonely if units with a strong bond are nearby\r\n* new ui.display.video.on_frame configuration to use fbi on framebuffer based screens\r\n* new --skip-session for manual mode to skip session parsing\r\n* users can now customize the faces via config.yml (ui.faces)\r\n* secured the web ui with CORS\r\n* the unit will now tell you when you have unread pwnmail messages\r\n* added several translations\r\n* created the paw-gps plugin v1.0.0\r\n* added support for new displays (see https:\u002F\u002Fpwnagotchi.ai\u002Finstallation\u002F#display)\r\n* implemented webhook for plugins\r\n\r\n**Fixes**\r\n\r\n* chown backup file (fixes #409)\r\n* webui \u002Fshutdown is now on POST\r\n* safer call to webhook\r\n* hostname validation when provided by config\r\n* prevent user contributed plugins to crash the main process while loading\r\n* 'effective configuration' is a debug log now\r\n* forcing view update when calling manual mode\r\n* throttled manual mode grid connections to avoid rate limits\r\n* fixed bogus support for waveshare lcd displays (fixes #364)\r\n* fixes a race condition in the launcher scripts and enables MANU if eth0 is up (closes #365)\r\n* using normal status to signal unread messages in order to avoid BT overlap bug\r\n* on rpi4 sometimes systemd failed to monstart\r\n* fixed auto-backup plugin to only create local backups\r\n* waiting for bettercap's API to start on boot\r\n* handling exceptions when bettercap is not running yet\r\n* correct services dependencies\r\n* refactored backup.sh script to not require root login\r\n* don't show sad face in manual mode for very short sessions\r\n* made grid api error logs due to rate limiting and stuff way less dramatic\r\n* fixed several translations\r\n* fixed lot of bt-tether problems\r\n* parsing \u002Fproc\u002Fmeminfo to gather memory usage\r\n* added slight delay for waveshare v1 ReadBusy\r\n* added non-blocking screen updating\r\n* disable sap plugin for bluetooth service\r\n* updated and fixed wpa-sec plugin\r\n\r\n**Misc**\r\n\r\n* updated libraries to V4.0 for the 2.7\" display Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* misc: added debug logs for AI loading times\r\n* #391: Verify if the configured files exist\r\n* Show information on failed backup on display\r\n* Changed the overall look of the layout on the 2.7\" Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* change quotes to allow tab expansion\r\n* replaced ssh-keygen with pwngrid -generate\r\n* added libraries for the 2.7\" display Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* added configuration file for waveshare27inch Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* added waveshare27inch as a known display Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* added documentation for waveshare27inch Signed-off-by: Mike van der Vrugt \u003Cmimij68@live.nl>\r\n* bumped pwngrid required version to 1.10.1\r\n* bumped bettercap version to 2.26.1","2019-10-26T12:49:46",{"id":224,"version":225,"summary_zh":79,"released_at":226},80840,"v1.0.1","2019-10-19T17:29:40",{"id":228,"version":229,"summary_zh":230,"released_at":231},80841,"v1.0.0","**In this release the pwngrid service has a bug, that is why .img files have been removed. Use 1.0.1 when it's built.**","2019-10-19T15:59:33",{"id":233,"version":234,"summary_zh":79,"released_at":235},80842,"v1.0.0RC5","2019-10-17T20:37:13",{"id":237,"version":238,"summary_zh":79,"released_at":239},80843,"v1.0.0RC4","2019-10-13T17:39:42",{"id":241,"version":242,"summary_zh":79,"released_at":243},80844,"v1.0.0RC3","2019-10-12T22:42:39"]