logo变色龙文档

快速上手

快速实现复制一张卡片到变色龙中,实现卡片模拟功能

软件连接

从下方列表中,选择合适的客户端下载安装;IOS 和 Mac 客户端请在应用商店搜索 Chameleon Ultra GUI 下载

  1. 手机需要打开蓝牙,并授权 APP 蓝牙和定位权限; 请在 APP 内连接设备。
  2. 电脑请使用数据线连接设备, 仅支持 win10/11。
  3. 如果连接不上, 检查设备是否唤醒,连接过程中保持变色龙开启,多次刷新应用尝试。

读卡

判断卡片类型

使用变色龙读取卡片,高频能读到就是 IC 卡,低频能读到就是 ID 卡。注意读高频使用正面(滴胶面)贴近卡片,读低频使用背面(图案面)贴近卡片,两面主板线圈频率不同。

客户端高低频读取功能

frequency

其中 IC 卡根据 SAK 响应码可分为:

  • 08代表 S50 卡(常称为 M1 卡,08 卡)
  • 18代表 S70 卡
  • 20代表 CPU 卡
  • 28代表 CPU 模拟卡

变色龙客户端层面目前仅支持 S50 卡,其他类型卡片请参考项目使用命令行等方式测试,需要有一定的代码基础。

IC 卡读取

M1 卡共有 16 扇区,每个扇区有 4 个区块。其中,每个扇区最后一个区块是控制块,前六个字节用于储存 A 密钥,后 6 个字节用于储存 B 密钥,中间 4 个字节用于储存存取控制信息。

M1卡数据结构

M1

也就是说,一个卡片中最多有32个密钥。根据密钥的加密方式,可以分为以下三种:

  • 非加密: IC 卡:所有密钥均为默认密码FFFFFFFF
  • 半加密 IC 卡: 存在一个或以上的密码是默认密码。
  • 全加密 IC 卡:所有密码都不是默认密码。

我们采取依次尝试的办法可以确定卡片加密方式,并破解卡片

使用空密钥从词典中检索密钥

此时变色龙会使用 S50 默认的空白密码FFFFFFFF依次解密扇区,当然最好的情况是16个扇区的32个密钥都解密成功,这也说明这是一张非加密的IC卡。如果有密钥没有解成功,继续尝试下面的办法

M1
使用 Nested 攻击

如果部分密钥解密成功,可以使用Nested攻击,俗称知一求全,根据已知密钥获取全部密钥。点击获取密钥按钮开始攻击,尝试获取全部密钥。

M1
使用嗅探攻击

如果很不幸,以上办法都失败了,那么还有最后一种较为有效的办法,使用 MFKEY32 攻击,俗称嗅探;嗅探的原理是复制卡片的卡号跟读头通信,它通过捕获 认证握手数据,结合 改进算法,快速计算出卡片密钥

  1. 选择仅保存UID,保存并给卡片命名方便辨认;UID是卡片的卡号,通过卡号来跟读头进行通信,已便获取到密钥数据。
  2. 在卡槽管理页面,点击一个空白卡槽,在弹出的卡包页面装载刚才保存的卡。
  3. 在卡槽管理页面,点击刚才卡槽右下角的设置图标,并进入高频卡设置页面,滑到最底部,收集Mfkey32选项选择是,保存。
  4. 将变色龙切换到对应的卡槽,使用滴胶面贴近读头放4次;
  5. 此时Mfkey32选项下面会出现获取密钥按钮,点击获取密钥按钮,等待获取密钥完成;如果一分钟还没有获取到,说明嗅探无法破解此卡片,可以放弃了。
  6. 保存获取到的密钥到词典中,用这个词典重新读取卡片。将解密的卡片保存到卡包中,方便后续操作。

Slug-Setting

Mfkey32

Mfkey32-Getting

Sniffing-Read

ID 卡读取

ID 卡因为没有数据区域也没有密码,所以读取非常简单,只需要读取卡号保存即可。

写数据到变色龙

通过刚才的操作,我们就获取到了卡片数据,注意 IC 卡一定要获取到每个区块的密钥,否则大多数情况卡数据是无效的。接下来就可以通过简单几步将数据写入到变色龙中。

  1. 进入卡槽管理页面
  2. 点击一个未使用的卡槽,弹出已保存的卡片列表
  3. 点击卡片即可写入
  4. 刷卡时,使用按键切换到对应卡槽,IC卡用滴胶面贴近刷,ID卡用图案面贴近刷。

    刷卡前注意

    复制后第一次刷卡先刷原卡(物业发的卡),然后再刷变色龙。此种方法可以规避大部分滚动码导致原卡失效的问题。

目录