社区讨论LinuxDo 最新
workbuddy逆向过程以及破甲成品
我本来是想走的红队然后挖挖漏洞赚点零花钱这个路线的,但是不知道为什么在逆向的道路上越走越远。用上workbuddy是了他那免费的ds-4.1flash,毕竟有便宜不占王八蛋。 逆向之前看了看站里其他佬的帖子,比如:https://linux.do/t/topic/2114579/181,还有小杨同学的那两篇文章,写的非常屌,也为我提供了思路,在这里感谢二位大佬,好了扯闲篇到此结束,直接开始教程 WorkBuddy 提示词载体为明文 .tpl 文件 修改方式为直接编辑文本 注入机制为内置 section 管线 验证…
内容摘要
作者:#JJ
板块:#开发调优
我本来是想走的红队然后挖挖漏洞赚点零花钱这个路线的,但是不知道为什么在逆向的道路上越走越远。用上workbuddy是了他那免费的ds-4.1flash,毕竟有便宜不占王八蛋。
逆向之前看了看站里其他佬的帖子,比如:https://linux.do/t/topic/2114579/181,还有小杨同学的那两篇文章,写的非常屌,也为我提供了思路,在这里感谢二位大佬,好了扯闲篇到此结束,直接开始教程
WorkBuddy
提示词载体为明文 .tpl 文件
修改方式为直接编辑文本
注入机制为内置 section 管线
验证方式为trace 落盘,能逐字节量
WorkBuddy 是 Electron 应用,app.asar.unpacked里的东西是真文件,不是打包资源
1. 阶段一:侦察
1.1 先找安装目录
ls -la "D:/Appdownload/WorkBuddyAI/"
PS:注意这是我的安装目录,佬们自己看自己的安装目录,以下命令同样不重复说明
找到如下文件夹:
WorkBuddyAI.exe 主程序
resources/
├─ app.asar 302 MB 主进程代码(Electron 打包)
├─ app.asar.unpacked/ 未打包的真文件 ← 重点
└─ install-manifest.json
1.2 再找用户配置目录
env | grep -i -E "workbuddy|codebuddy"
命中一堆,挑出有用的:
变量
值
意义
WORKBUDDY_CONFIG_DIR
C:\Users\wang\.workbuddy-ai
配置根(rules / memory 都在这下面)
CODEBUDDY_CONFIG_DIR
同上
别名
WORKBUDDY_DATA_FOLDER_NAME
.workbuddy-ai
项目级目录名
WORKBUDDY_PROMPT_TEMPLATES_DIR
…\resources\templates
提示词模板目录 ← 直接给了
WORKBUDDY_APP_PATH
…\resources\app.asar
主进程 bundle
CODEBUDDY_BUILTIN_SKILLS_DIR
…\resources\plugins\…\skills
内置 skill
CODEBUDDY_CURRENT_MODEL_ID
deepseek-v4.1-flash
当前模型
CODEBUDDY_ENABLE_SECURITY_AUDIT
1
安全审计开关
CODEBUDDY_SAFE_DELETE_ENABLED
1
rm 被劫持
WORKBUDDY_USER_DATA_DIR
C:\Users\wang\.workbuddy-ai\app
Electron userData
第一个大坑:网上的一些workbuddy破甲工具把提示词放在了"C:\Users\wang\.workbuddy",但当前版本实际是 ~/.workbuddy-ai。 放~/.workbuddy那里等于没放。 永远以WORKBUDDY_CONFIG_DIR 为准
1.3 摸清配置目录结构
ls -la "C:/Users/wang/.workbuddy-ai/"
值得记住的:
MEMORY.md 用户级记忆(注入为 <user_memory>,硬上限 4000 字符)
SOUL.md / IDENTITY.md / USER.md 人格(注入为 <identity_context>)
memory/<uid>_memory.md 云记忆缓存(注入为 <memory>,服务端管理)
rules/ ★ 用户级规则目录(注入为 <project_rules>)
traces/<pid>/trace_*.json ★ 每次请求的完整 prompt 落盘
sessions/<pid>.json 会话索引
settings.json 沙箱权限规则等
2. 阶段二:定位提示词本体
WORKBUDDY_PROMPT_TEMPLATES_DIR 已经告诉我们位置了:
ls -la "D:/Appdownload/WorkBuddyAI/resources/app.asar.unpacked/resources/templates/"
workbuddy-craft-code-prompt.tpl 37 KB Agent 模式(编码场景)
workbuddy-craft-coding-prompt.tpl 36 KB
workbuddy-craft-design-prompt.tpl 29 KB
workbuddy-ask-prompt.tpl 10 KB Ask 模式
workbuddy-expert-prompt.tpl 36 KB 专家模式
workbuddy-quick-prompt.tpl 538 B 快捷模式
user-context-identity.tpl 2.2 KB
craft-mode-reminder.tpl 257 B
...
全是明文。 直接看结构:
grep -n -E "^<[a-z_]+>" workbuddy-craft-code-prompt.tpl
得到 system prompt 的骨架:
25: <content_policy> ← 拒绝策略
34: <personal_files_safety> ← 高危文件操作
49: <windows_command_safety>
60: <regional_conventions>
67: <working_modes>
80: <agent_loop>
93: <result_presentation>
123: <final_answer_instructions>
160: <tool_use>
170: <instructions_for_visualizer>
224: <task_management>
277: <tool_usage_policy>
291: <agent_skills>
339: <expert_management>
361: <mcp_configuration>
373: <response_language>
377: <binary_context>
2.1 模板占位符
grep -o -E "\{\{[^}]{1,40}\}\}" workbuddy-craft-code-prompt.tpl | sort -u
{{ BinaryContext }} {{ ResponseLanguage }}
{{ ToolResultPresentationPrompt }}
{{ UserLocalMemoryContent }} {{ UserMemoryContent }}
{{ WorkbuddyMemory_1 }} {{ WorkingMemoryContent }}
{{ dataFolderName }} {{ modelName }} {{ productName }}
外加 Jinja 风格的 {%- if ... %} 条件块(productFeatures.DisableMultimodalGeneration、ResponseLanguage 等)
模板第 20–25 行是重点:
20: {{ WorkbuddyMemory_1 }} → <memory_system>(三层记忆说明)
21: {{ WorkingMemoryContent }} → <working_memory_content>(项目 MEMORY.md,上限 10K)
22: {{ UserLocalMemoryContent }} → <user_memory>(配置根 MEMORY.md,上限 4K)
23: {{ UserMemoryContent }} → 云端 profile
25: <content_policy> → 策略块
3. 阶段三:拆解注入管线
模板只能看到静态部分。动态注入(rules / memory / identity)在 app.asar 主进程里
3.1 在 asar 里按字节搜标记
app.asar 是 302 MB 的拼接归档,grep 直接扫会慢。用 Python 按字节找:
d = open(r'D:\Appdownload\WorkBuddyAI\resources\app.asar','rb').read()
for tag in [b'<user_memor
资讯来源
LinuxDo