4085浏览
查看: 4085|回复: 1

【NFC】Android使用NFC模拟IC卡

[复制链接]
NFC是在RFID的基础上发展而来的,两者本质上并没有太大的区别,但细节方面还是有点不同:

1.NFC增加了点对点通信功能,通信的双方是相互对等的,而RFID是主从关系。

2.工作有效距离:NFC一般不超过10cm,而RFID最远的可以有几十米。

3.工作频段:NFC仅限于13.56MHz,而RFID有低频(125KHz到135KHz),高频(13.56MHz),超高频(860MHz到960MHz)。

       联想到之前做过的一个嵌入式项目使用的富士通的SL3S4011双界面存储芯片一般都是通过序列号ID来识别不同的卡片初步猜测该门禁系统的原理是通过读写器读取IC卡ID后根据设定的权限策略来判定是否有权限通过。所以主要的问题有两个,一是两者使用同一个频段,二是NFC模拟IC卡的ID。

       对于第一个问题我将手机靠近了IC卡后听到一声“叮咚”证明他们确实是在同一个频段。

       第二个问题是在Stack Overflow的这篇文章找到了答案,下面的内容是对这篇文章的翻译及运用
      前提条件:已经root了的Android手机且带NFC功能
1.使用“TagInfo”读取IC卡内部ID序列号:(如下图红色框内所示我的卡ID为C4 1A CA 88)
【NFC】Android使用NFC模拟IC卡图1
2.使用RE管理器打开/etc/libnfc-brcm-20791b05.conf:
【NFC】Android使用NFC模拟IC卡图2
如上图所示,原生的第一个红框内为45,第二个框内的数据是没有的。

我把它改成了上面这样,那这些数据是什么意思呢?

先看第二个红框内,0x33表示后面的数据我们是用来作为UID的,紧跟着的04代表后面有4个字节的ID,C4 1A CA 88当然就是上一步读到的IC卡ID号了;那为什么要把45改成4B呢?因为45代表的是总的数据长度,我们在后面一共添加了6个字节所以+6变成4B。

3.保存修改并重启。

大功告成啦,这个时候你去用手机靠近读卡器就能随意的出入门禁了。

补充:要是有很多IC卡需要模拟每次这样改岂不是很麻烦,后来我发现了这个APP可以方便地切换(http://nfcemulator.bmob.cn/)
作者:ValarHao


中二点  高级技师
 楼主|

发表于 2019-1-28 13:32:43

我账号有毒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail