问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么改成读写ic卡的,需要哪些工具

发布网友 发布时间:2022-04-22 09:56

我来回答

2个回答

热心网友 时间:2023-07-09 08:18

1,读取

我们需要外接一个NFC Reader让Windows可以读取NFC卡片的内容。

因为特殊原因,我们选择了Sony rc-s380 NFC Reader。相关介绍

我们需要下载并安装NFC Port Software,以便我们可以顺利使用上述NFC Reader。

安装之后,我们需要去Github获取一个NFC Port Software的.Net封装包:tijins/NfcLib

解压并运行nfc_lib_sample之后我们可以看到这样一个WindowFrom程序。

因为现在要读取的卡类型试MIFARE,所以我们勾选正确的CheckBox,其他设置保持不变,依次点击上述三个橘色方框按钮。

在红色箭头所指的方向就能看到第一个block的十六进制字符串的数据。

为了读取卡片所有block/page的信息,我们将btRead_Click的代码稍稍修改为: 

private void btRead_Click(object sender, EventArgs e)
{
byte block = (byte)nudBlock.Value;  try  {    byte[] data = null;
data = new byte[NfcLib.MF_BLOCK_LENGTH];    if (card is Mifare)
{
StringBuilder readSB = new StringBuilder();      for(byte i=0;i < 45; i++)//我现在的卡包含45个blocks/pages      {
((Mifare)card).Read(i, data, 0);
readSB.AppendLine(Utility.ByteToHex(data, 0, data.Length));
}
tbRead.Text = readSB.ToString();
}
}    catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

有个小遗憾就是,如果NFC Reader没有连接的时候启动app会抛出异常,而如果app已经启动再拔出然后插入NFC Reader又会无法再读卡除非重启app或者重新初始化。这个需要有点改进。

 

2,解析

根据上述步骤,我们得到了某张卡的信息如下:

04 C9 02 47     0A C9 5A 84     1D 48 00 00     E1 10 12 00 0A C9 5A 84     1D 48 00 00     E1 10 12 00     01 03 A0 0C
1D 48 00 00     E1 10 12 00     01 03 A0 0C     34 03 0F D1
E1 10 12 00     01 03 A0 0C     34 03 0F D1     01 0B 54 02 01 03 A0 0C     34 03 0F D1     01 0B 54 02     65 6E 32 30 34 03 0F D1     01 0B 54 02     65 6E 32 30     31 38 31 30 01 0B 54 02     65 6E 32 30     31 38 31 30     32 35 FE 00 65 6E 32 30     31 38 31 30     32 35 FE 00     00 00 00 00 31 38 31 30     32 35 FE 00     00 00 00 00     00 00 00 00 32 35 FE 00     00 00 00 00     00 00 00 00     00 00 00 00 00 00 00 00     00 00 00 00     00 00 00 00     00 00 00 00
(以下省略...)

然后,我们对它做一点移位:


04 C9 02 47     0A C9 5A 84     1D 48 00 00     E1 10 12 00           0A C9 5A 84     1D 48 00 00     E1 10 12 00     01 03 A0 0C
                    1D 48 00 00     E1 10 12 00     01 03 A0 0C     34 03 0F D1
                              E1 10 12 00     01 03 A0 0C     34 03 0F D1     01 0B 54 02
01 03 A0 0C     34 03 0F D1     01 0B 54 02     65 6E 32 30
          34 03 0F D1     01 0B 54 02     65 6E 32 30     31 38 31 30
                    01 0B 54 02     65 6E 32 30     31 38 31 30     32 35 FE 00
                              65 6E 32 30     31 38 31 30     32 35 FE 00     00 00 00 00
31 38 31 30     32 35 FE 00     00 00 00 00     00 00 00 00
          32 35 FE 00     00 00 00 00     00 00 00 00     00 00 00 00
                    00 00 00 00     00 00 00 00     00 00 00 00     00 00 00 00

可以看出,每一行只有第一列是我们需要的tag信息。

04 C9 02 470A C9 5A 841D 48 00 00E1 10 12 00

01 03 A0 0C  
34 03 0F D101 0B 54 0265 6E 32 3031 38 31 3032 35 FE 00

前面的四行是卡的UID以及制造商等信息。我们只需要关心下半段的数据。

01 (Tag: Lock Control TLV)03 (Length: 3 bytes)
A0 0C 34 (Value: Information on position and function of lock bytes)03 (Tag: NDEF Message TLV)
0F (Length: 15 bytes)
D1 01 0B 54 02 65 6E 32 30 31 38 31 30 32 35 FE (Tag: Terminator TLV; has no length field)00

所以,我们得到了NDEF message:D1 01 0B 54 02 65 6E 32 30 31 38 31 30 32 35

NDEF message:
D1 (Header byte of record 1)01 (Type length: 1 byte)
0B (Payload length: 11 bytes)54 (Type: "T")02 65 6E 32 30 31 38 31 30 32 35 (Payload field)

我们再分析最为关键的payload field,如下:

The payload field:02 (Status byte: Text is UTF-8 encoded, Language code has a length of 2 bytes)65 6E (Language code: "en")32 30 31 38 31 30 32 35 (Text: "20181025")

可以用在线工具来验证一下 “32 30 31 38 31 30 32 35 ”

最后,上述步骤,用写C#的实现如下(不保证所有Mifare卡适用):

private string GetNfcTag(List<byte[]> cardContentList)
{
List<byte> cardBytes = new List<byte>();            foreach(byte[] rowCardContent in cardContentList)
{
cardBytes.AddRange(rowCardContent.Take(4));
}            byte[] cardUid = cardBytes.Take(8).ToArray();            string cardUidStr = Utility.ByteToHex(cardUid, 0, cardUid.Length);            byte[] cardMaker = cardBytes.Skip(8).Take(8).ToArray();            string cardMakerStr = Utility.ByteToHex(cardMaker, 0, cardMaker.Length);            byte[] memoryBytes = cardBytes.Skip(16).ToArray();            byte lockControlByte = memoryBytes[0];            byte lockByteCount = memoryBytes[1];//how many bytes are the lock bytes
byte[] lockBytes = memoryBytes.Skip(2).Take(lockByteCount).ToArray();            int nedfLengthByteIndex = 1 + lockByteCount + 1 + 1;            byte ndefLength = memoryBytes[nedfLengthByteIndex];            if (ndefLength == 0)//Tag empty
return string.Empty;            byte[] ndefBytes = memoryBytes.Skip(nedfLengthByteIndex + 1).Take(ndefLength).ToArray();            byte payloadHeader = ndefBytes[0];            byte payloadTypeLength = ndefBytes[1];            byte payloadLength = ndefBytes[2];            byte[] payloadType = ndefBytes.Skip(3).Take(payloadTypeLength).ToArray();            byte[] payloadBytes = ndefBytes.Skip(3 + payloadType.Length).Take(payloadLength).ToArray();            byte languageCodeLength = payloadBytes[0];            byte[] languageCode = payloadBytes.Skip(1).Take(languageCodeLength).ToArray();            byte[] tag = payloadBytes.Skip(1 + languageCode.Length).Take(payloadLength - languageCode.Length - 1).ToArray();            string tagHex= Utility.ByteToHex(tag , 0, tag .Length);            string tagStr = Encoding.UTF8.GetString(tag);            return tagStr;
}

热心网友 时间:2023-07-09 08:19

买一个电脑上用的读卡器,装上相应的驱动和应用程序就可以了。
怎么改成读写ic卡的,需要哪些工具

安装驱动程序,插上ic卡读写器即可使用读写器自带的测试程序。要是软件有集成相应型号的读写器,只读把读写器插上电脑即可使用。要是软件没有集成的话,也可以采用即插即用的ic卡读写器。

怎么改成读写ic卡的,需要哪些工具

要读写器支持可读写的功能,另外读写器与上位机的通讯接口要是双向的,如RS232,RS485,USB,TCP/IP等,可以参考沃极电子科技

怎么把id门禁卡转化为ic卡

步骤一:购买IC卡读卡器要将ID门禁卡转化为IC卡,首先需要购买一个IC卡读卡器。IC卡读卡器是一种能够读取IC卡信息的设备,可以将IC卡内的信息读取出来,方便进行后续的操作。购买IC卡读卡器时,需要注意其与你的电脑或手机的兼容性,以免无法正常使用。步骤二:备份ID卡信息在进行转化前,需要先备份ID卡内的信...

我有一张ic卡,读卡密码是b类型, 怎么改为a类型读卡啊?

你说的是M1卡吗?如果是你可以通过改写扇区的第4块的控制字节来实现。计算控制字节的时候别写错了,建议你控制字节设为 FF078069

0扇区写死了的ic卡如何更改

ic卡更改方法:需要获取到一个dump文件表,我们随意读取一张空卡,保存数据。我们使用小工具【Dump数据编辑软件】打开这个读取保存的数据。我们来修改数据,比方说我写入:1123456789这个卡号,转成16进制就行就是42F69715,异或结果就是36,那我们按此数据修改之后保存即可。调用保存的数据,写入uid即可更改...

请问怎样修改IC卡(电卡)中的数据?

首先要有个读卡器,然后自己利用读卡器的编程接口写分析工具,然后把卡内数据DUMP出来分析后修改再写回去.不过很遗憾的告诉你,电卡内只有个帐号,没有其他信息,其他信息都是存在机器上的~问题补充:如果IC卡里只有帐号,那么它怎么知道我充值多少呢?一次充值的步骤:1.卡放读卡器,按卡内帐号为条件取出数据库的...

如何初始化IC卡?如果要做一个打卡机的话...

IC卡在出厂时默认的密码,KEYA和KEYB都为FFFFFFFFFFFF,12个F。如果你的打卡机的读写密码就是这个,那么你不用初始化直接可以使用。如果你的打卡机的读写密码为别的。如A0A1A2A3A4A5,那么你就要把IC卡的密码也修改成这个。至于是用KEYA还是KEYB,或是二者都要就看你自己选择了。如何去初始化?一般...

怎么用手机复制ic卡

1、手机的nfc功能要全功能的,这就可以读写卡也可以模拟卡,但是修改模拟卡信息需要root,还是算了。首先准备一个空的ic卡,一台具有全功能nfc功能的手机,手机上安装mifare classsic tool的工具。2、将门禁卡靠近手机,手机会自动识别nfc卡牌,大部分可以读取全部或者部分信息。3、在弹出的选项里选择我们...

ic卡如何改才能刷卡亮灯

要让IC卡能够刷卡亮灯,可以尝试以下方法:1. 清洁IC卡:有时候,IC卡上会积聚灰尘或污垢,导致接触不良,无法正常刷卡。可以用干净的软布轻轻擦拭IC卡表面,保持其清洁。2. 检查卡槽:确保IC卡的卡槽没有异物或杂质,这可能会影响卡片与读卡器之间的接触。可以用气罐或棉签轻轻清理卡槽。3. 检查电池电量...

抄税怎么把发票上的内容抄到IC卡上呢?

l、点击工具栏中“+”,增加一条记录。“×”放弃操作,“√”确认操作。2、选中一条记录,点击工具栏中“—”,删除记录。3、用户可以在要修改的框中通过双击进行修改记录,也可以按右健选择“属性”进行修改。B、商品编码:进入系统-→系统设置-→编码设置-→商品编码-→数据录入C、增值税税目编码:进入系统-→...

破解ic卡需要哪些工具 读卡器读写ic卡 直流ic卡读写机怎么用 ic卡不能读写的原因 ic卡怎么读 如何用写卡器写ic卡 手机读写ic卡的app ic卡读写设备 手机读写ic卡
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
您好!朋友买了个手链,是否是真的,价值多少,谢谢! 五百多 guess手链 算贵吗 懂行的大师们给看看这串手链什么材质的,价值几何,花五百元买的值... 五百多的水晶手链质量如何 近红外光谱检测仪在玉米胚芽粕检测中有何应用呢? 二年级的课文《地球的清洁工》原文急要 求C++输入一个三位整数,将它反向输出。(要求使用数组)帮忙考试 收集有关动物的词语不少于100个并分类 厨房油烟对人体真的有危害吗?除了油烟,厨房还有哪些隐藏的危害?_百度... ...微信的时候你们的qq被盗了想拿回来都拿不回来你们当时会有什么样的... USB接口的IC卡读写器 IC卡读写器,能不能复制自己的公交一卡通呢? IC卡读写器的技术指标 什么是非接触式IC卡读写器?它有什么优点 ic卡读写机干什么用的 ic卡读写器和IC卡感应模块有什么区别? IC卡读写器有哪些牌子? ic卡读写器如何读出ic卡里内容? IC卡读写器的分类 IC卡读写器的原理 IC卡读写器是什么?有什么用途啊? Python使用open函数打开文件的常用模式 Python 怎么用open 函数打开最新文件 Python 3中文件操作open()函数 r、r+、w、w+、a、a+操作 关于python3中的open函数问题 python3 codecs.open和open的区别 python语句File=open(&#39;logfile.txt&#39;,&#39;a&#39;)是什么意思呢 python中 IO.open 和直接open 有什么区别? python open()的问题? IC卡读写器的通讯方式 现在市场上有很多IC卡读写器,能不能给自己的公交一卡通充值呢,中间有多少技术要点呢 IC卡读取是什么原理啊 比如 公交卡 关于女人自己给自己买礼物的说说有哪些? 老是让男朋友。给自己买东西好不好? 男友经常给自己买东西,但是不给我买,这是自私吗? 新的一年发工资第一月给自己买东西怎么发朋友圈? 给我自己买东西两种形式用英语怎么写 女友想买东西给我,我应该买吗? 一个男生平白无故给自己买东西是什么意思? 应收账款无法收回,怎么做账,跪求分录 男朋友花自己钱给自己买东西我看他没给我买我就生气正常么 404 Not Found 企业应收账款无法收回如何处理?需交所得税吗? 老公很自私,光给自己买东西? 让男朋友给自己买东西过分吗? 女朋友太爱花钱给自己买东西,怎么办? 男朋友给自己买东西,好还是不好? 怎么给自己买东西 为什么同样的东西,给自己买比给女朋友买更纠结?