前言:
我也来篇关于当时学习ID卡的笔记.前段时间小区装门禁.一个钮扣型的ID卡就要30块.非常黑心.因为其ID卡的成本也就是1块钱以下.因此我也加入到这方面的研究.用来模拟ID卡的T5557卡成本2块钱左右.可反复写.文章想到什么就写什么.大牛可以忽视.
两天前入手了一套ID读卡器.不知型号.没有参数.没有出厂.就一小光盘.里面是CP210x驱动与读写软件.
CP210x驱动可以把USB模拟成COM串口.以下是我的设备图:
虽然提供了win7驱动.但软件不能在win7下运行.所以只能在vbox里装个xp用.这多多少少很不爽.于是想自己开发一工具.所以有了以下过程.
因为参数等都没有.因此只能跟踪调试.百度下.下了个串口监听软件.名字叫:SerPortMon该工具还不错但要注册才能用.只能破之.破解方法太容易了.明文比较。没有什么难道:
软件界面如下:
根据该工具得到的数据分析大概如下:
串口:COM3
波特率:38400 (有些读卡器是:9600等等)
校验位:None
数据位:8
停止位:1
发送: 02 00 06 11 16 03 读取ID读卡器版本
返回: 02 00 10 00 53 37 36 35 30 20 56 2E 30 32 03 03 ....S7650 V.02.. 这个不需要解释了吧
发送: 02 00 06 05 02 03 读取ID卡信息
返回: 02 00 0B 00 72 34 50 00 06 1B 03
解释: 卡号: 0x72 0x34 0x50 0x00 = 0005256306 用户ID:0x06
发送: 02 00 0B 08 06 00 50 34 72 12 03 写入卡
解释: 用户ID:06 卡号: 0x00 0x50 0x34 0x72 = 0005256306
0x12为验证码 算法:用户ID xor 2 xor 卡号 例如:0x06 xor 2 xor 00 xor 0x50 xor 0x34 xor 0x72
DelPhi7代码: 利用SPComm控件
Comm1.CommName :='COM3'//串口名
Comm1.BaudRate := 38400;//波特率
Comm1.Parity := None;//校验位
Comm1.ByteSize := _8;//数据位
Comm1.StopBits := _1; //停止位
Comm1.StartComm; //打开串口
利用 WriteCommData发送即可