说是为了记录下来,便于后人进一步研究。
本篇文章为逆向南科大二期宿舍门锁的过程记录,因为整个逆向的过程类似于实验,这里用实验的方式来指导动作和记录结果。
在阅读本文之前,你需要知道以下内容:
- 二期宿舍门锁的基本功能 TODO
- 二期宿舍门锁的基本结构 TODO
- Freedorm桥接板的基本功能 TODO
- 逻辑分析仪的基本功能 TODO
- 了解信号线的基本功能
- 确定数据传输线的通讯协议
- 确定不同刷卡动作下的数据传输线的具体内容
- 不同权限卡之间的数据传输内容的区别
- 二期宿舍门锁(研究对象)
- Freedorm桥接板(用来中间人截取信号)
- 逻辑分析仪(用来获取分析信号)
- 数据线(用来连接逻辑分析仪和上位机电脑)
- 杜邦线(用来模拟短接调试线)
- 装有Pulseview的电脑(用来分析信号)
- 对应的门禁卡(用来执行刷卡成功动作)
- 空白门禁卡(用来执行刷卡失败动作)
- (optional) 宿管卡(用来给逻辑分析仪供电)
- 安装桥接版,具体步骤见Freedorm安装教程
- 测量信号线电平并记录
- 连接逻辑分析仪和电脑
- 开始录制信号
- 执行实验动作
- 按照命名规则保存数据
针对每个实验目的,设计对应的实验动作,如下:
通过测量对GND电平,得到下表:
D1 | D0 | LED | LOCK | |
---|---|---|---|---|
颜色 | 白 | 绿 | 橙 | 黄 |
电平 | 5V | 5V | 3V3 | 3V3 |
通过执行刷卡动作,逻辑分析仪得到一些数据,命名规则为data_刷卡类型_对应反馈
。
刷卡类型有:
admin
:宿管卡user
:本宿舍住户校园卡stranger
:陌生人校园卡touch_num
:点击门锁面板密码键盘数字键touch_ok
:点击门锁面板密码键盘确认键blank
:空白UFUID-IC卡miband9
:小米手环9模拟IC卡D1
: 短接D1和GNDD0
: 短接D0和GNDLED
: 短接LED和GNDLOCK
: 短接LOCK和GNDD1&user
: 短接D1和GND,刷本宿舍住户校园卡D0&user
: 短接D0和GND,刷本宿舍住户校园卡LED&user
: 短接LED和GND,刷本宿舍住户校园卡LOCK&user
: 短接LOCK和GND,刷本宿舍住户校园卡D1&admin
: 短接D1和GND,刷宿管卡D0&admin
: 短接D0和GND,刷宿管卡
对应反馈有:
success
:门打开fail
:门不打开blank
:没有反馈,门不打开lock
:门锁上了,刷卡刷不开
通过实验,得到每种刷卡类型的对应反馈表,如下表所示:
刷卡类型 | 门锁 | 面板LED | 蜂鸣器 | 反馈类型 |
---|---|---|---|---|
admin | ||||
user | 开,6s后锁上 | 持续6s绿色 | 长滴一声 | success |
stranger | 不开 | 红色闪烁3s | 长滴一声 | fail |
touch_num | 不开 | 无反应 | 短滴一声 | blank |
touch_ok | 不开 | 绿色闪烁5s | 默 | fail |
blank | 不开 | 无反应 | 默 | blank |
miband9 | 不开 | 无反应 | 默 | blank |
D1 | 不开 | 保持蓝色 | 默 | blank |
D0 | 不开 | 保持蓝色 | 默 | blank |
LED | 不开 | 蓝色变成绿色,并保持绿色 | 默 | blank |
LOCK | 常开 | 保持蓝色 | 默 | success |
D1&user | 不开 | 绿色闪烁一下,1s | 长滴一声 | lock |
D0&user | 不开 | 绿色闪烁一下,1s | 长滴一声 | lock |
LED&user | 开,6s后锁上 | 持续6s绿色 | 长滴一声 | blank |
LOCK&user | 本来就是常开的 | 持续6s绿色 | 长滴一声 | success |
D1&admin | ||||
D0&admin |
有太多种可能的刷卡动作,因此选取了感兴趣的11个刷卡动作,用逻辑分析仪获取数据。 每个数据对应一个动作;有4个通道,对应D1、D0、LED、LOCK。储存在data文件夹下。
data_admin_ data_user_success data_stranger_fail data_touch_num_blank data_touch_ok_fail data_D1_blank data_D0_blank data_LED_blank data_LOCK_success data_D1&user_lock data_D0&user_lock data_D1&admin_ data_D0&admin_
首先查询制造商智慧赛宁的资料,也没有翻到相关的资料,只能自己动手了。
这一部分通过pcb板子上的丝印已经大概了解,8pin的ph2.0排线中,有两根线被剪断,分别是BUZ和SENSE,剩下的6根线分别是:GND、D1、D0、LED、LOCK、12V。
暂时不浪费时间在没用到的线上和完全已知的线上,我们只关注D1、D0、LED、LOCK这四根线。
通过上述实验,我们得到了9种刷卡类型的反馈,下面我们分析每种刷卡类型的数据传输线的具体内容。