手机如何使用NFC卡模拟门禁刷卡

文章介绍了如何利用NFC功能和特定的手机应用如CardEmulatorPro或PM3来模拟各种门禁卡。虽然理论上可行,但实际操作受限于手机NFC设备的兼容性和卡片芯片种类,一般只能处理4-10位数据。对于鸿蒙系统,无需root权限,但同样存在数据兼容性问题。
摘要由CSDN通过智能技术生成

部分手机具备NFC卡刷卡功能,理论上也可模拟门禁卡。

一个功能强大且免费的NFC卡模拟器,可模拟各类门禁卡、电梯卡、部分公司(工厂)工卡或饭卡、部分学校饭卡、部分图书馆借书卡等各类IC卡,用手机替代卡片去刷门禁、刷电梯、刷考勤和刷饭堂等等,支持绝大部分有NFC功能的手机。

但是实际上的卡片都一样,但里面的卡片的芯片种类繁多,有M1卡、射频IC卡、CPU卡、M1卡、ID卡、Mifare Classic、EM卡、DESFire卡、加密卡等等,你的门禁卡种类如果手机不支持也是不能模拟的。而且手机读卡器一般只能读取4-10位数据,即使卡种类一致,模拟数据不全可能也无法应用,所以这是个聊胜于无的功能吧。

下面说具体方法:

前提条件
1、你的手机有NFC
2、手机已root (因为Card Emulator Pro需要root权限才能修改系统NFC配置文件, 否则无法模拟卡片)

手机模拟门禁卡步骤
1、手机开启NFC
2、打开Card Emulator Pro
3、把卡放在手机背面,等识别成功后,输入卡片名称,保存卡片
在这里插入图片描述

4、用Card Emulator Pro生产可以Magisk刷机的模拟文件一般是zip格式。
在这里插入图片描述

5、Magisk刷入刚才生成的模拟文件模块,之后重启手机。
在这里插入图片描述

6、点击卡片的模拟按钮,等模拟成功后,就可以用手机刷门禁了。
7、刷门禁时,确保nfc已开启,另外还需点亮屏幕(无需解锁)。注意我前面说了,只有部分门禁卡可以模拟,实测读取的位数过高也不行。
在这里插入图片描述

额外方法:
如果会用PM3,可以直接生成解密的数据,用Dump Editor转换成可用的json数据库直接刷入的办法更快。会使用PM3的大概率不需要我废话,只上截图。
在这里插入图片描述
注意,上面提及的方法是通用方法,适合任何安卓12、13、14、15的手机操作系统的手机。对于遥遥领先,因为鸿蒙原生在安卓12与安卓主干树做了分离,实际上只需要修改/Var文件夹下的文件权限即可。不需要root权限刷入模块的办法。而且鸿蒙一般集成在了手机NFC功能里,用手机下拉菜单,勾选NFC打开,然后贴上卡片进行读写模拟即可。所用的原理一致,所以一样只能读取4-10位数据,模拟数据不全可能读卡器无法识别,需要您自行测试,笔者测试号了大多数是支持的。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Xcode 是苹果公司开发的用于iOS和macOS应用开发的集成开发环境(IDE)。如果你想要在Xcode中使用Near Field Communication (NFC) 功能,首先确保你的项目支持iOS 14及以上版本,因为NFC API在这些版本中引入。 下面是使用Xcode进行NFC读写的基本步骤: 1. **设置支持**: 在Xcode的项目设置里,确保"Capabilities"选项中勾选了"NFC Reader/Writer"。这会启用对NFC功能的访问权限。 2. **导入框架**: 在需要使用NFC的文件中,添加`#import <CoreNFC/CoreNFC.h>`来引用Core NFC框架。 3. **请求权限**: 使用`CNAuthorizationStatus`检查权限并请求用户授权。如果需要读取数据,调用`CNContactReader.requestAuthorization`;如果要写入,使用`CNMutableContact`或其他适当的数据类型。 4. **读取标签**: 使用`CNContactReader`创建一个读者实例,然后在`CNContactReaderSession`中监听`CNContactReadingSessionStateDidChange`通知,当扫描到一个NDEF tag时,可以通过`CNContact`或自定义解析器来处理数据。 5. **写入数据**: 创建一个`CNMutableNDEFMessage`来包含要写入的数据,然后使用`CNContactWriter`将消息写入到NDEF tag。 6. **错误处理**: 要记得捕获并处理可能出现的错误,例如权限拒绝、通信失败等。 7. **示例代码**: 以下是一个简单的读取NDEF tag的例子: ```swift let reader = CNContactReader() let session = CNContactReadingSession(reader: reader, delegate: self) session.begin() // Delegate methods will handle the NDEF data ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值