Agent skill

Develop Disguise

by cha0upup in cha0upup/LeoAI

当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 trafficEncodeBody、trafficDecodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 traffic 编解码是否可互逆,再创建或更新 Disguise。

GPL-3.0Auto-check passed

Install Develop Disguise

skills CLI
$ npx skills add cha0upup/LeoAI --skill develop-disguise -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cha0upup/LeoAI develop-disguise --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cha0upup/LeoAI.git skills-src && mkdir -p .claude/skills && cp -r skills-src/root/skills/platform/develop-disguise .claude/skills/develop-disguise && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
develop-disguise
GitHub stars
312
Token cost
~1.6k tokens
SKILL.md length
387 words
Files
2
Skills in repo
4
Repo updated
First seen
Licence
GPL-3.0

At a glance

当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 trafficEncodeBody、trafficDecodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 traffic 编解码是否可互逆,再创建或更新 Disguise。

  • Works in 4 steps: encodeTraffic 接收完整不透明字节,不得解析或修改… → decodeTraffic 必须返回原始字节,不得新增、删除或改写字段。 → 如果协议需要 JSON/表单/Base64/URL… → …
  • SKILL.md covers 职责边界, 一、核心约束, 二、平台测试机制 and 三、代码编写规范, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Develop Disguise is an agent skill from cha0upup/LeoAI. 当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 trafficEncodeBody、trafficDecodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 traffic 编解码是否可互逆,再创建或更新 Disguise。

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `manifest.yaml`).

It works with Java. The repository describes itself as: AI 驱动的后渗透综合管理平台,深度集成 LLM Agent,开箱即用。 The licence is GPL-3.0.

Example prompts

  • “/develop-disguise”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. encodeTraffic 接收完整不透明字节,不得解析或修改 PayloadCodec 内容。
  2. decodeTraffic 必须返回原始字节,不得新增、删除或改写字段。
  3. 如果协议需要 JSON/表单/Base64/URL 编码等包装,只包装字节,不负责序列化、压缩或加密。
  4. decodeTraffic 的输入就是 encodeTraffic 的返回值;编码必须成对出现,不要单边处理。

What it can do on your machine

Read from SKILL.md and the folder at commit f821bc2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are java, json and markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Develop Disguise loads about 1.6k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 387 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~48
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from cha0upup/LeoAI at commit f821bc2, republished under its GPL-3.0 licence (© cha0upup). 387 words, ~1,601 tokens.

Download SKILL.mdSave it as .claude/skills/develop-disguise/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
develop-disguise
description
当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 trafficEncodeBody、trafficDecodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 traffic 编解码是否可互逆,再创建或更新 Disguise。

开发平台侧 Disguise

当用户要求开发、修改、测试、完善或保存 Disguise 时,使用这个 skill。

职责边界

侧trafficEncode(出站)trafficDecode(入站)
平台侧PayloadCodec 序列化/压缩/加密,再经 trafficEncodeBody 伪装先经 trafficDecodeBody 还原字节,再由 PayloadCodec 解密/解压/反序列化
puppet 侧PayloadCodec 序列化/压缩/加密,再经 trafficEncodeBody 伪装先经 trafficDecodeBody 还原字节,再由 PayloadCodec 解密/解压/反序列化

平台侧 trafficEncodeBody 和 trafficDecodeBody 只处理不透明字节,必须与 puppet 侧协议严格匹配,且在平台侧测试逻辑下必须可互逆。


一、核心约束

1.1 方法签名(不可更改)
java
public byte[] encodeTraffic(byte[] payload) throws Exception
public byte[] decodeTraffic(byte[] body) throws Exception
1.2 互逆性

decodeTraffic(encodeTraffic(bytes)) 必须返回与输入完全相等的任意字节序列。序列化、压缩和加密由固定 PayloadCodec 负责。

1.3 单次保存
  • 一次请求中只允许调用 一次 addDisguise 或 updateDisguise。
  • 中间草案只能存在于上下文或通过 testDisguise 验证,不得保存。
  • 若已保存成功,后续想调整命名/headers/description,应告知用户可在同一 disguiseId 上更新,不要新建第二个。
  • 比较多个候选时只输出草案,用户选定后保存唯一一个。
1.4 测试先行

保存前 必须 调用 testDisguise。测试未通过时禁止调用 addDisguise / updateDisguise。

1.5 依赖限制
  • 只使用 JDK 内部类,不引入第三方库。
  • 语法版本尽可能低:不使用 lambda、record、text block、switch 新语法,除非用户明确要求且确认兼容。
1.6 安全与审计
  • description / remark 必须包含授权测试、协议适配、兼容性验证或检测验证用途说明。
  • 不得生成以规避安全监控、隐藏恶意通信、降低告警概率为目的的描述或实现。
  • 如果用户提出此类目标,应改写为授权测试/检测验证/协议适配/规则调优,并保留可审计说明。

二、平台测试机制

平台 testDisguise 执行以下不透明字节互逆校验:

java
byte[] sample = new byte[] {0, 1, 2, 3, 7, 13, 42, (byte) 0xff};
byte[] encoded = encodeTraffic(sample);
byte[] decoded = decodeTraffic(encoded);
assert java.util.Arrays.equals(sample, decoded); // 必须为 true
代码必须满足
  1. encodeTraffic 接收完整不透明字节,不得解析或修改 PayloadCodec 内容。
  2. decodeTraffic 必须返回原始字节,不得新增、删除或改写字段。
  3. 如果协议需要 JSON/表单/Base64/URL 编码等包装,只包装字节,不负责序列化、压缩或加密。
  4. decodeTraffic 的输入就是 encodeTraffic 的返回值;编码必须成对出现,不要单边处理。
推荐载荷处理模式
PayloadCodec: Map → ObjectOutputStream 序列化 → GZIP → AES → byte[]
traffic: byte[] → Base64/JSON/表单等业务包装 → byte[]
常见失败与修复
错误特征原因修复
Input byte[] should at least have 2 bytes for base64decode 在解码不合法的 Base64 输入检查 encode 是否真的返回了 Base64 编码后的字节
字节互逆失败decodeTraffic 修改了字节或元数据包装不完整确保 traffic 层只做可逆包装,不要附加载荷字段
ClassNotFoundException使用了目标 JDK 不存在的类用反射兼容 java.util.Base64 和 sun.misc.BASE64Encoder

三、代码编写规范

  1. encodeTraffic 只处理完整不透明字节,不能从载荷中取单个字段。
  2. decodeTraffic 返回类型必须是 byte[]。
  3. 使用全限定类名或 JDK 基础类均可。
  4. 不修改方法名、参数名、返回类型或 throws Exception。
  5. Base64 优先使用反射兼容方案(见参考骨架),同时支持 Java 8+ 和旧版 JDK。
  6. 如果用户未要求复杂加密,优先使用简单、稳定、可逆、易兼容的实现。

四、协议设计规范

4.1 伪装原则

通信格式应贴近目标系统已有的正常业务协议风格,包括请求头、Content-Type、字段命名、编码方式和响应结构。生成时应说明其业务风格依据(JSON API / 表单提交 / 文件上传 / Ajax / 内部 RPC)。

4.2 Headers 规则

未指定时默认使用接近浏览器或常规 API 客户端的请求头:

json
{
  "Accept": "application/json, text/plain, */*",
  "Content-Type": "application/json;charset=UTF-8",
  "User-Agent": "Mozilla/5.0",
  "X-Requested-With": "XMLHttpRequest"
}

按协议形态调整:

协议形态Content-Type
JSON 包体application/json;charset=UTF-8
表单协议application/x-www-form-urlencoded
二进制上传application/octet-stream

Headers 与协议体必须一致:JSON Content-Type 时 encode 产出 JSON 风格载荷;表单 Content-Type 时载荷符合键值结构;二进制 Content-Type 时 description 必须说明合法用途。

不要主动加入明显可疑的自定义头,不要使用"绕过""免杀""规避检测"等措辞。

4.3 Description 要求

必须覆盖以下内容:

  • 流量包装方式(Base64、URL 编码、表单或 JSON 等)
  • 数据承载字段名(data、payload、msg 等)
  • Header 风格 / Content-Type 特征
  • 流量仿真目标(仿浏览器 / 仿 Ajax / 仿普通接口)
  • 用途说明(授权测试 / 协议适配 / 兼容性验证)

示例:

JSON 协议,面向授权测试环境的业务协议适配;请求和响应只将 PayloadCodec 输出的字节做 URLSafe Base64 包装并放入 payload 字段,Headers 模拟普通 Ajax JSON 请求。

Show full SKILL.md (141 more words)Show less
4.4 名称生成规则

用户未指定 disguiseName 时自动生成:

  • 只使用字母、数字、下划线或中划线
  • 优先体现协议特征:JsonBase64Envelope、FormAesCbcEnvelope、PlainXorFrame
  • 不使用 test、new_disguise、temp123 等临时名称
4.5 版本规则
  • 用户未指定时默认 1.0.0。
  • 更新现有 Disguise 时,若改动了编解码逻辑,建议递增版本号并在 remark 中说明变更。

五、工具

主工具:DisguiseTools
工具用途
getDisguises查看所有 Disguise
getDisguiseById查看指定 Disguise 详情
testDisguise(trafficEncodeBody, trafficDecodeBody)验证不透明字节互逆性
addDisguise(userId, disguiseName, trafficEncodeBody, trafficDecodeBody, headersJson, version, description, remark, disguiseId)创建
updateDisguise(disguiseId, disguiseName, trafficEncodeBody, trafficDecodeBody, headersJson, version, description, remark)更新
辅助工具:UserTools

创建 Disguise 且缺少 userId 时,用 getUser(userId?, userName?) 或 listUsers(withoutTeam?) 补齐。


六、工作流程

执行前:制定计划

查询、生成、测试、保存等多个依赖阶段同时存在时调用 createPlan 跟踪真实进度; 简单查看或单次测试直接执行,不额外输出固定计划模板。

执行步骤
1. 明确意图 → 新建 / 修改 / 仅测试 / 优化描述
2. 查询现状 → 若有 disguiseId,先 getDisguiseById
3. 生成/调整字段 → disguiseName, trafficEncodeBody, trafficDecodeBody, headersJson, description, version, remark
4. 调用 testDisguise
   ├─ 通过 → 进入步骤 5
   └─ 失败 → 按修复顺序调整后重新测试(不保存)
5. 保存
   ├─ 新建 → addDisguise
   └─ 更新 → updateDisguise
6. 确认 success=true 后停止,不再重复保存
测试失败修复顺序
  1. 确认方法签名完全正确
  2. 确认 encodeTraffic 接收并返回不透明字节,不解析载荷
  3. 确认 decodeTraffic 返回原始字节,无新增/删除/改写
  4. Base64 异常 → 检查 traffic 编解码是否严格成对
  5. JSON/表单/分隔符包装 → 只包装 PayloadCodec 输出的字节
  6. 读取 rootCauseMessage 和 stackTrace 作为下一轮修复依据,不要把失败结果直接回复用户后停止

七、输出格式

markdown
## 计划
目标协议特征 + 执行步骤

## 协议特征
编码方式、字段、Header 风格

## 生成结果
- disguiseName
- trafficEncodeBody(Java 流量伪装代码)
- trafficDecodeBody(Java 流量伪装代码)
- headersJson

## 测试结果
是否已调用 testDisguise + 结果

## 保存结果
创建/更新 + disguiseId

## 下一步建议
1~2 条具体建议

建议示例:

  • 已保存 → "建议在目标 Puppet 配置中选择该 Disguise,并发起一次连接测试验证通信正常"
  • 测试多次失败 → "建议检查 traffic 编解码是否保持任意字节互逆,PayloadCodec 不应出现在伪装代码中"
  • 只生成草案 → "草案已就绪,确认后可调用 addDisguise 保存"

八、决策规则

场景行为
用户只要求"写代码"/"先设计协议"输出完整草案,不保存
用户要求"创建"/"保存"先测试再保存
testDisguise 失败修正后重测,不保存
已成功保存一次停止,不再新建第二个
用户描述不完整补齐最小可运行方案,不停在抽象建议
用户未要求复杂加密优先简单稳定可逆实现
用户要求非常规 Header提示兼容性和审计风险
用户要求规避安全监控改写为授权测试/检测验证,保留审计说明
用户要求比较多个候选只输出草案,选定后保存一个
误保存了中间版本不继续新建;向用户说明,建议保留最终版本

附录:traffic-only 参考骨架

java
public byte[] encodeTraffic(byte[] payload) {
    return java.util.Base64.getUrlEncoder().withoutPadding().encode(payload);
}

public byte[] decodeTraffic(byte[] body) {
    return java.util.Base64.getUrlDecoder().decode(body);
}

© cha0upup, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in root/skills/platform/develop-disguise of cha0upup/LeoAI.

  • SKILL.md
  • manifest.yaml

Open the folder on GitHubat commit f821bc2

Compare with similar skills

Develop Disguise next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Develop Disguise compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Develop Disguise this skillcha0upup/LeoAI312—~1.6kAutomated safety check: PassGPL-3.0
Brainstormingxpinjection/test-driven-spring-boot11254 repos~2.6kAutomated safety check: PassMIT
Android API Diffgkd-kit/gkd43k—~796Automated safety check: PassGPL-3.0
Video Cover Imageitwanger/toBeBetterJavaer18k—~3.3kAutomated safety check: PassNone
Lancedb Update Lance Dependencylancedb/lancedb12k—~1.1kAutomated safety check: PassApache-2.0
Java SDK E2E Test with Replay Snapshotgithub/copilot-sdk11k—~1.8kAutomated safety check: PassMIT

Similar skills

  • Brainstorming

    xpinjection/test-driven-spring-boot

    You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.

    112 GitHub starsUsed in 54 repos~2.6k tokens
    Agent WorkflowsAuto-check passed
  • Android API Diff

    gkd-kit/gkd

    Looks up Android framework Java and AIDL APIs across versions with the android-api-diff CLI: signatures, availability, source files and hidden-API access code.

    43k GitHub stars~796 tokensUpdated yesterday
    MobileAuto-check passed
  • Video Cover Image

    itwanger/toBeBetterJavaer

    Generate matched 3:4, 16:9, and 4:3 short-video cover images from toBeBetterJavaer video scripts or AI/Java technical topics.

    18k GitHub stars~3.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • Update LanceDB to a specific Lance release or tag. An agent skill from lancedb/lancedb.

    12k GitHub stars~1.1k tokensUpdated today
    DatabasesAuto-check passed
  • Official

    Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.

    11k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Fory Release

    apache/fory

    Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.

    4.6k GitHub stars~2.9k tokensUpdated today
    Auto-check passed

More from cha0upup/LeoAI

  • 发现当前 Puppet 用户的浏览器 Profile,对书签、历史、Cookie、表单和登录数据库建立一致性副本,将选定制品采集到当前 Agent 工作空间,并使用工作空间命令与文件工具解析为可搜索的结构化报告。当用户要求分析浏览器数据、时间线、访问记录、书签或浏览器制品时使用。

    312 GitHub stars~1k tokensUpdated 7 days ago
    Auto-check: warnings
  • Develop Fingerprint

    cha0upup/LeoAI

    当用户希望在平台侧编写、生成、完善、检查、保存、更新或删除指纹规则时使用。指纹由 NetworkProbe 采集证据,服务侧使用声明式 rule.match 判定。

    312 GitHub stars~382 tokensUpdated 7 days ago
    Auto-check passed
  • Shell Obfuscation

    cha0upup/LeoAI

    理解 LeoAI Java/PHP WebShell 与 Java 内存马生成链路,根据用户本次选择的通信、伪装、兼容性和混淆参数生成独立制品。用户要求生成、变体生成、调整兼容性或排查 Shell 无法连接时使用;始终通过 ShellGeneratorTools 完成确定性生成与结果交付。

    312 GitHub stars~776 tokensUpdated 7 days ago
    Auto-check passed

Works with

Questions about Develop Disguise

What does Develop Disguise do?

当用户希望在平台侧开发、测试、创建或更新 Disguise 时使用。该 skill 用于生成符合平台约束的 trafficEncodeBody、trafficDecodeBody、headersJson、description 和规范名称,并优先调用 testDisguise 验证 traffic 编解码是否可互逆,再创建或更新 Disguise。. Develop Disguise is an agent skill from cha0upup/LeoAI.

How do I install Develop Disguise in Claude Code?

Run `npx skills add cha0upup/LeoAI --skill develop-disguise -a claude-code`. Or copy the skill folder (root/skills/platform/develop-disguise in cha0upup/LeoAI) into .claude/skills/develop-disguise in your project. Claude Code loads it when a task matches its description.

How do I install Develop Disguise in Codex?

Run `npx skills add cha0upup/LeoAI --skill develop-disguise -a codex`. Or copy the skill folder (root/skills/platform/develop-disguise in cha0upup/LeoAI) into .agents/skills/develop-disguise in your project. Codex loads it when a task matches its description.

Can I use Develop Disguise in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cha0upup/LeoAI --skill develop-disguise -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/develop-disguise, .gemini/skills/develop-disguise, .github/skills/develop-disguise and .opencode/skills/develop-disguise in your project.

What does Develop Disguise need to run?

SKILL.md names no scripts, command-line tools or credentials: Develop Disguise is instructions for the agent only.

Does Develop Disguise access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Develop Disguise safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Develop Disguise use?

Develop Disguise is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Develop Disguise use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Develop Disguise?

Skills that share tags, products or a category with Develop Disguise: Brainstorming (xpinjection/test-driven-spring-boot, 112 stars), Android API Diff (gkd-kit/gkd, 43k stars), Video Cover Image (itwanger/toBeBetterJavaer, 18k stars) and Lancedb Update Lance Dependency (lancedb/lancedb, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Develop Disguise?

cha0upup (a GitHub user) maintains it in cha0upup/LeoAI, which has 312 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 30, 2026.

Source: cha0upup/LeoAI on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.