iButton
iButton
这个还挺少见的,我们先来看看这是个什么东西,其实就是一个做的和纽扣电池一样的卡片
但是单独这么一个卡片不太好携带,所以会有一个手柄,把 iButton 固定到上面
他的读卡器长这个样子
配套的软件叫做 1990卡读写复制,开发软件的人图方便,只能使用 COM1 口不能修改,因此在设备管理器中修改读卡器的 COM 口
就通信来说,iButton 外面那一圈是 GND,里面那一面是传输数据的,把 iButton 直接怼到圆孔里就可以实现信息的读取
点击读取,读到的卡号就会出现在写入 ID 码这个框里
在 Flipper Zero 中,关于 iButton 的 APP 只有两个,一个是 iButton 一个是 iButton Fuzzer
先来看 iButton 这个 APP,有读取(Read)、保存(Saved)、手动添加(Add Manually)
读取的时候卡已将 iButton 贴到 flipper 的读取接口,这里特意留出来一个圆形的缺口,正好可以放上去,注意 iButton 侧边要和 flipper 侧边的触点接触好
官方读写示意图
读取到的卡号可以保存,也可以拿来模拟或者修改卡号,但是我在模拟的时候遇到了一个问题,我买的读卡器下凹的太深了,flipper 的倾斜角度不够大,触点没法和读卡器接触,因此只能根据接口定义使用杜邦线连接了,根据官方图示可知,两个触点分别为 GPIO17 和 GND
因此直接将杜邦线插到 flipper 顶部的 GPIO 接口,另一端接触读卡器,就可以在软件中读取到这个 ID 了
在尝试手动添加(Add Manually)时发现卡号也是有格式的,第一个字节永远是 01 无法修改,最后一个字节是用来校验的位,flipper 会自动计算帮你改好
用读卡器的软件随意修改卡号也会提示校验错误
根据 Github 的源码(https://github.com/flipperdevices/flipperzero-firmware/blob/dev/lib/one_wire/maxim_crc.c)校验应该是:CRC-8/MAXIM 算法
在线计算网站:https://crccalc.com/
iButton Fuzzer 这个 APP 和 RFID/NFC 的 Fuzzer 类似,就是个暴力跑卡号的 APP,可以选择用默认的字典,也可以自己添加
项目地址:https://github.com/xMasterX/ibutton-fuzzer
使用软件勾选验证那个选项就会不停地读取,如图记录了 Fuzz 过的卡号