告诉Trae开发任务

现在电脑上停了360之后,就被装上了好几个恶意软件,关键这些恶意软件会极大的拖累电脑速度。

我想让AI agent帮我做一款防恶意软件的软件,名字就叫jk100,极快100 ,致敬当前江民公司的kv100 !

Trae开始干活

P1 架构:2 种方案对比

方案 A(推荐):单进程多模块 + clamd 子进程 jk100.exe 是单个 MoonBit 原生进程,内部按模块划分(扫描/清理/FFI/UI)。ImGui 直接以 C FFI 链接进同一进程;ClamAV 作为独立 clamd.exe 子进程被拉起,走本地 socket。

  • 优:单文件分发(+便携clamd)、IPC 最少、调试简单、性能好
  • 劣:UI 卡顿会阻塞扫描(需把扫描放后台线程)

方案 B:双进程——引擎服务 + UI 前端 jk100-engine.exe(headless,做扫描清理)+ jk100-ui.exe(ImGui),两者用本地管道/共享内存 IPC。

  • 优:UI 崩溃不影响扫描、职责清晰、为 P2 实时防护预留服务形态
  • 劣:MVP 阶段引入 IPC 协议设计成本,两份构建,过度设计

我的推荐:方案 A。 MVP 单进程最简最快,扫描放后台线程解决阻塞。等 P2/P3 需要常驻服务和内核通信时,再演进为方案 B——那时引擎逻辑已经稳定,拆分风险低。


P1 详细设计(按节)

1. 模块结构

Plain Text

jk100.exe (MoonBit native x64, 单进程)
├─ core/            扫描引擎
│   ├─ scan          扫描调度(后台线程 + 并发)
│   ├─ sigdb         特征库加载(流氓软件 JSON 规则)
│   ├─ clamd         ClamAV socket 客户端(SCAN 模式)
│   ├─ pe            PE 解析(纯 MoonBit,取签名/版本/入口)
│   └─ hash          SHA256/MD5(纯 MoonBit)
├─ clean/           清理模块
│   ├─ classify      分类引导清理(按类别分组、勾选)
│   ├─ oneclick      一键深度清理(自动全流程)
│   ├─ quarantine    隔离区 + 回滚 manifest
│   └─ targets       清理目标操作(进程/自启/服务/计划任务/文件/主页)
├─ platform/        Win32 C FFI 绑定层(我来写)
│   ├─ process       枚举/结束进程
│   ├─ registry      Run 键读写
│   ├─ service       SCM 服务枚举/删除
│   ├─ sched         计划任务枚举/删除
│   └─ file          文件移动/占用检测/PendingFileRename
├─ ui/              ImGui 前端(C FFI)
│   └─ views         主窗/扫描/结果/清理/回滚
└─ bundled/
    ├─ clamav/       便携 clamd.exe + .cvd 特征快照
    └─ sigdb/        rogue_rules.json(自研流氓软件规则)

2. 核心数据流

Plain Text

[选目标] → scan 遍历 PE 文件
        → 分流:
           (a) hash → 查 rogue_rules.json 哈希库
           (b) 路径/签名/自启名 → 匹配流氓软件规则
           (c) clamd SCAN <path> → 通用病毒判定
        → 汇总 Threat 列表
[结果视图] → 用户选清理模式:
           分类引导(勾选类别) / 一键深度(自动全选)
[清理执行] → 每项操作先写 quarantine manifest → 再执行
           (结束进程→清自启→删服务→清计划任务→移文件→修主页)
[报告] → 成功/失败/待重启项
[回滚] → 读 manifest 反向恢复

3. 流氓软件规则库格式(rogue_rules.json)

JSON

{
  "signatures": [{"signer": "某某有限公司", "severity": "rogue"}],
  "path_blacklist": ["%LocalAppData%\\XXXDriver", "%ProgramData%\\XXHelper"],
  "run_names": ["XXXService", "XXHelper"],
  "hashes_sha256": ["ab12..."],
  "family": "XX流氓"
}

规则可叠加 KV100 广谱思路:一条"广谱特征"匹配一族样本(如某签名+某路径模式),命中即报该家族。MVP 用静态快照,更新通道放 P7。

4. 隔离区与回滚

  • 位置:%ProgramData%\jk100\quarantine\<scan-id>\<timestamp>\
  • 文件:移动(非删除)到隔离区,manifest 记录原路径 + 文件哈希
  • 注册表/服务/计划任务:记录原始值快照
  • 回滚:按 manifest 逆序恢复;提供"全部回滚"和"按项回滚"

5. 错误处理策略

  • clamd 不可用:降级为仅流氓软件库扫描,UI 顶部黄字提示
  • 文件被占用:登记 PendingFileRename,提示重启后清理
  • 进程结束失败:记录失败项,不阻断其余清理
  • 未提权(UAC 拒绝):仅允许只读扫描,禁用清理按钮
  • 扫描线程异常:单文件异常不影响整体,记入扫描日志

6. 测试策略

  • 特征匹配:theZoo 样本验证 ClamAV 识别率;收集国内常见流氓软件样本验证规则命中率
  • 清理+回滚:VM 内植入模拟流氓软件(假进程/假自启/假服务),验证清理完整性与回滚一致性
  • FFI 层:每个 Win32 绑定独立单元测试
  • UI:手动验收扫描→清理→回滚全流程

这是 P1 的完整设计。请审阅:架构方案选 A 是否 OK?模块结构、数据流、规则格式、隔离回滚、错误处理、测试这几节有没有要改的?确认后我会把它写成正式规格文档 commit,然后进入实现计划。

可优化小细节

可优化的小细节 给rogue_rules.json加一条‌白名单优先级规则‌,正规软件的签名/哈希命中后直接跳过后续判定,进一步降低误报率。 扫描调度模块加个‌用户可调节的速度档位‌,低速模式后台低优先级运行完全不打扰用户,高速模式快速完成全盘扫描。 便携版clamd.exe提前做裁剪,删掉冗余的邮件扫描等非必要功能,进一步压缩打包体积,避免安装包过大。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐