变色龙 Ultra CLI 控制器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md ,安装 @user_0611a1f0/chameleon-ultra-cli-skill 技能到你的 AI 助手环境中。
技能介绍
背景:交互式 Repl 的脚本化困境
Chameleon Ultra 官方提供的 chameleon_cli_main 是一个基于 prompt_toolkit 的交互式命令行程序。在日常测试或自动化任务中,我们常常需要将多条指令通过脚本连续下发给设备,并在结束后捕获完整的终端输出。然而在 Windows 环境下,由于程序以完整终端模式运行,简单的管道输入(Pipe)无法驱动其读取命令,导致自动化脚本直接失效。
工作原理与核心能力
本技能的核心思路是将 chameleon_cli_main 包裹在伪终端(PTY)中运行,从而骗过程序使其认为自己连接在一个真实的交互式终端上。这种方式让我们能够可靠地通过脚本追加或读出终端数据,完美绕过 Windows 管道限制。
- 首步配置:可执行文件的路径无法事先硬编码。首次运行时需通过辅助脚本持久化保存路径到
config.json,之后所有调用均直接复用该路径。 - 自动化执行机制:为降低传入参数的复杂度,辅助脚本会自动在命令树前补充
hw connect,并在末尾追加exit,确保每次调用都能以独立可自行结束的会话完成。 - 多命令与批处理:同一个会话中的命令会顺序执行,适合将配置、加载与运行命令串联;亦可通过
--file一次性运行文本文件中的多行指令。 - 环境适配细节:Windows 下依赖本地创建的
.venv提供 PTY 支持(需联网安装一次pywinpty);POSIX 环境则直接调用系统自带的pty模块,无需额外配置。
技术难点与边界
在日常使用与排错时需注意以下约束,这些往往决定了脚本执行的成败:
- 物理连接依赖:
hw connect依赖实际的 USB 连接或已配对的 BLE,离线盲目执行只会直接报错退出。 - 无状态会话:脚本不支持跨调用的会话持久化,连续的多步工作流务必放在同一次调用中执行。
- 换行符与终端应答:底层 Repl 仅认
\n作为执行信号;当前脚本已自动处理相关回车符逻辑及prompt_toolkit的终端能力查询应答。但在直接调试或更换不同固件版本时,可通过--raw抓取原始 ANSI 终端序列以核对应答逻辑是否需要更新。 - 硬件辅助攻击:针对 MIFARE Classic 的 Darkside 等耗时算力攻击,可以通过
--timeout调高执行上限,避免因计算耗时超时截断输出。
使用场景
- USB 连接 Chameleon Ultra 后,用脚本扫描 ISO14443-A 卡并汇总读取到的 UID
- 已知一个扇区密钥,对 MIFARE Classic 卡执行 nested 攻击恢复其他扇区密钥
- 把一张 MIFARE dump 载入指定卡槽并启用,模拟卡片刷读卡器测试
- 通过 commands.txt 批量执行命令,修改 LED 动画和 BLE 配对密钥等设备设置
适合人员
- 物联网安全研究员,需要把 Chameleon Ultra 纳入自动化测试流程,避免手动敲交互式命令
- 渗透测试工程师,需要脚本化执行 darkside、nested 等 MIFARE Classic 密钥攻击并汇总结果
- 硬件安全工程师,需要批量管理模拟卡槽、加载或保存 dump 文件做读卡器兼容性验证
- 固件或 CLI 工具维护者,需要在 Windows 上自动化验证 chameleon_cli_main 各命令组的输出