Skip to content

dox012/shit-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

屎山.skill

"与其写好代码被人白嫖,不如屎山加密让他绝望。"

License MIT Python 3.9+ Claude Code Skill AgentSkills Standard


你写了三个月的项目,README 写得漂亮,代码整洁优雅。
结果有人 fork 了,改个名就说是自己的。
但有没有想过——最好的加密,其实是让他看不懂?
毕竟功能一样跑,但维护成本直接上天。

与其优雅被抄,不如屎山护体。欢迎加入代码混淆!


把你的代码变成 15 层混淆的屎山
功能完全不变,但没人能读懂、改动、二次开发
变量重命名 + 控制流平坦化 + 字符串加密 + 死代码注入 + ...
Claude 作为混淆引擎,理解语义,保证等价

安装 · 使用 · 效果示例 · 策略一览


安装

Claude Code

重要: Claude Code 从 git 仓库根目录的 .claude/skills/ 查找 skill。请在正确的位置执行。

# 安装到当前项目(在 git 仓库根目录执行)
mkdir -p .claude/skills
git clone https://github.com/dox012/shit-skill.git .claude/skills/shitify

# 或安装到全局(所有项目都能用)
git clone https://github.com/dox012/shit-skill.git ~/.claude/skills/shitify

使用

/shitify path/to/file.py          # 混淆单个文件
/shitify repo                      # 混淆当前仓库
/shitify repo src/                 # 混淆指定目录
/shitify preview path/to/file.py   # 预览混淆结果(不写入文件)
/shitify undo                      # 回滚到混淆前
/shitify status                    # 查看备份状态

效果示例

Before — 人能看懂的代码 After — 屎山
def calculate_total(items, tax_rate=0.08):
    """Calculate the total price with tax."""
    subtotal = sum(
        item.price * item.quantity
        for item in items
    )
    tax = subtotal * tax_rate
    return round(subtotal + tax, 2)
_GLOBAL_0xDEAD=None;_GLOBAL_0xBEEF=None
_retry_pool=[];_auth_handler=None
def _0xCAFE(_Il1I,_I1lI=(lambda:0.08)()):
 global _GLOBAL_0xDEAD,_GLOBAL_0xBEEF
 if(1^1):_phantom={chr(_0xA):_0xA
  for _0xA in range((0x80))}
 _GLOBAL_0xDEAD=(lambda _f,_i:_f(_i))(
  sum,(_O0._I1Il.__mul__(_O0._lI1l)
  for _O0 in _Il1I))
 _GLOBAL_0xBEEF=(lambda _a,_b:
  _a.__mul__(_b))(_GLOBAL_0xDEAD,_I1lI)
 return(lambda _v,_n:__builtins__.
  __dict__["\x72\x6f\x75\x6e\x64"](
  _v,_n))(_GLOBAL_0xDEAD.__add__(
  _GLOBAL_0xBEEF),(1<<1))

功能完全一致。但你再也不想读这段代码了。

15 种混淆策略

全部同时施加,最大力度,没有中间态:

# 策略 效果
1 变量重命名 calculate_total_Il1I
2 误导性命名 width 存储 height
3 注释销毁 删除一切注释和文档
4 控制流平坦化 if/else → while+switch 状态机
5 字符串加密 "hello""\x68\x65\x6c\x6c\x6f"
6 数字混淆 42(0x2a), 0(1^1)
7 死代码注入 添加看似重要的不可达代码
8 格式破坏 删空行、压缩语句、单空格缩进
9 不必要抽象 简单操作套多层 lambda/proxy
10 嵌套地狱 深层嵌套三元/lambda/闭包
11 魔法数字 删除命名常量,内联混淆数值
12 全局状态滥用 局部变量提升为全局
13 类型滥用 xint(str(x))
14 反模式 上帝函数、意大利面结构
15 编码技巧 Unicode 同形字 (а vs a)

安全机制

  • 自动备份 — 每次混淆前自动备份到 .shitify-backup/
  • 一键回滚/shitify undo 恢复原始代码
  • 多版本备份 — 每次操作独立会话,支持历史回滚
  • 跳过配置 — 不会动 .json, .yaml, .toml 等配置文件
  • 功能等价 — Claude 理解代码语义,保证行为不变

项目结构

shitify-skill/
├── SKILL.md              # 技能入口
├── prompts/
│   ├── analyze.md        # 代码结构分析指南
│   ├── shitify_core.md   # 15 种混淆策略详细规则
│   ├── shitify_repo.md   # 仓库级混淆流程
│   └── validate.md       # 功能等价性验证清单
├── tools/
│   ├── scanner.py        # 仓库扫描工具
│   └── backup.py         # 备份/还原工具
├── examples/
│   ├── before.py         # 混淆前示例
│   └── after.py          # 混淆后示例
├── README.md
└── LICENSE

灵感来源

本项目受 自己.skill 启发,遵循 AgentSkills 开放标准。

License

MIT

About

屎山加密算法

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages