UID 卡充值大揭秘(原创)

所需工具:

                acr122u一台

                IC卡解密软件

                64系统(建议用xp)

                acr122u驱动(无法对全加密卡进行破解,但可使用proxmark3......)

个人经验:普通IC卡(校园卡、水卡、澡卡)

                特殊IC卡(白卡)

                以上两种IC卡可使用同一破解软件进行破解,但是进行对卡片写入数据时却使用不同的软件。要点:对特殊IC卡(白卡)可直接写入数据;而普通IC卡(校园卡、水卡、澡卡)需先进行对该卡密码恢复默认值(即FFFFFFFFFFFF)在进行写入数据。

经验一(安工澡卡 十里铺)

        1块区:46 01 D0 07 00 00

扫描二维码关注公众号,回复: 1813867 查看本文章

        2块区:46 01 D0 07 00 00

       分析:十六进制  46 01 表示刷卡次数

                十六进制  D0 07 表示余额      换算 07D0 =十进制 2000  也即是20.00¥

经验二(安工水卡 十里铺)


        1块区:68 05 00 00     97 FA FF  FF    68 05 00 00     11EE11EE  

        2块区:68 05 00 00     97 FA FF  FF    68 05 00 00     12ED12ED

        校验位:97 FA FF FF

        余额位:68 05 00 00 

        二者关系:十六进制 00 00 05 68 

                         转二进制 0000  0000  0000  0000   0101  0110  1000

                         取反       1111  1111  1111  1111   1010  1001  0111

                         转十六进制FF FF 0A 97

经验三(安师水卡 兰园 +图书馆+教学楼)


分析1(偏离):对应数值分别为(卡片以十进制进行记录数据,以十六进制进行校验)

            00.06                                        00.42                                      00.37                                      00.35

易知卡片会对最近两次刷卡进行记录

数值填充分析得:

             十进制:0        1        2         3        4        5        6        7        8        9

对应十六进制为:F        E        D        C        B        A        9        8        7        6

则可知:06---------------F9

             42---------------BD

             37---------------C8

             35---------------CA

分析2(正确)

    校验位 = 单个字节数值位相加后 取反 得之

    即:BC = (43 + 00)取反

    注:以上皆为十六进制运算,但是数值位为在使用中被当做10进制使用

充值如下(50.00¥)

    0区块:81151234567800014798000000000000
    1区块:AF 0050  00FFFFFFFFFFFFFFFFFFFFFFFF
    2区块:AE 0150  00FFFFFFFFFFFFFFFFFFFFFFFF
    3区块:138731383233FF078069FFFFFFFFFFFF

(-------------------------未完待续---------------------未完待续----------------------未完待续-----------------------------


其一(安工水卡/澡卡 十里铺)


        充值数据如下:(45.00)

                1.区块:94 11 00 00 00      6B EE FF FF FF    94 11 00 00 00......

                2.区块:95 11 00 00 00      6A EE FF FF FF    95 11 00 00 00......

其二


其三


其四(转载)

饮水机卡数据分析

饮水机卡中的数据比较特别,没有采用标准的电子钱包数据格式而且加了校验位。

下面是存储余额的sector的数据:

00ca 0901 0000 0000 0000 0000 0140 2338
cf01 0000 0000 1311 0600 0000 0200 5a56
cf01 0000 0000 1311 0600 0000 0200 5a56
3847 fd12 bd08 7f07 88da 32c0 fe32 b864

block1和block2的数据完全相同。我们假设block1(也是block2)中的16个字节分别为B0~B15。经过几次刷卡之后发现,只有B0、B1、B15的数据会发生变化(对饮水机卡的研究已经过去很久了,数据都不在了,而我也懒得再出门去刷卡,请大家见谅哈)。经过多次对比卡机上显示的余额,初步确定B0、B1是余额数据(后来觉得B2B3应该也是余额数据的一部分)。然后猜测B14、B15是校验位,当然这是错的→_→。我的Sublime 3自动将2个字节放在一起显示,就像上面给的数据一样。

受此影响,我想当然的认为校验的时候是2个字节一组,于是发现校验位的值始终在0x5a00~0x5aff变化,而余额是一直减少的,试了相加、异或甚至MD5,都百思不得其解┬_┬。于是到这里就算中断了,过一段时间后再看了看数据,发现0x5a是01011010,突然就想试试按字节校验(我也不知道为什么会这么想),结果还真是这样⊙0⊙。正确的数据结构是这样的:

B0~B3是余额,B14固定为0x5a,B15为B0~B14求和后舍去进位的值,猜测B6开始的131106应该是卡首次投入使用的时间(饮水机卡是循环使用的)。以上面的数据为例,余额是4.63元。对B0~B14求和是0×156,因此B15是0×56。

这种加了校验的数据相对来说还是比较难分析的,但也并不安全。


其五(转载)

太阳能水卡数据分析

太阳能卡是在有余额和校验位的基础上又增加了其他数据。下面是存储余额数据的block连续3次刷卡的记录:

020d 0000 2c06 5c09 1500 2c06 4900 5a90
f60c 0000 2f06 5d09 1500 2f06 4a00 5a8b
ea0c 0000 3206 5e09 1500 3206 4b00 5a87

从以上刷卡数据中,结合饮水机卡中的分析,经过计算可以确定:

1、B0~B3为卡的余额,B14为固定的0x5a,B15为求和校验位;

2、B13B12和B7B6的数据每次刷卡会加一,所以我们猜测其中一个数据可能是刷卡次数,取第一行刷卡的数据,0x095c(B7B6)是十进制2396,不可能是这么多,所以B13B12是刷卡次数,而B7B6的初始值为 0x095c-0×0049=0×0913

3、B8B9的值固定不变为0×1500,试试看B6B7的初始值和B8组合的结果——是130915觉得熟悉吗?是的,是日期(好机智的设计有木有!)。

4、B4B5和B10B11的值是相同的,而它们也在增加。你发现了吗?它们每次增加3,也就是刷卡次数的3倍。据此我们能够计算出B5B4的初始值=0x062c-3*0×0049=0×0551。

现在,所有的数据都搞清楚了,我们要改写它的数据,让它的余额变成100元,也就是刚刚买到时候的余额。可以构造出这个block的数据为:

1027 0000 5105 1309 1500 5105 0000 5a6e

其六


其七(安师水卡 竹园)

卡一:

          0100  0000  FFFF  FFFF  0F27  0000  FFFF  29D6    0.01¥
          8813  0000  FFFF  FFFF  8813  0000  FFFF  00FF    50.00¥
          8713  0000  FFFF  FFFF  8913  0000  FFFF  0EF1    49.00$
 分析得:1388 + 1388 = 2710 = (10000)10进制

卡二:          

         0100   0000   FFFFFFFF   1F4E    0000   FFFF  50AF

 分析得: 0001 + 4E1F = 4E20  = (20000)10进制


校验位分析:经过卡一和卡二的对比,数据的后四位都可解析如下:

                   设数据位以字节进行分组,名称分别由b0~b15.

                   我们容易发现b0b1 与 b8b9 有此消彼长的规律,b14和b15也存在这样的规律,且

                   b0b1 + b8b9 恒等于 2*充值数据(即1388 + 1388 = 2710 = (10000)10进制);

                   b14 + b15 恒等于 FF(即29+D6 = FF)

                   由此我们可以完全破解数据,充值如下:

                   eg:100.00$
                   1027 0000 FFFF FFFF 1027 0000 FFFF 00FF
                   eg:200.00$
                   204E 0000 FFFF FFFF 204E 0000 FFFF 00FF


其八(安师澡卡 竹园)5扇区

            9601   00C8   0100   1203  1E0C   080B  3602   00EA       406¥
            8801   000E   0000   1204   060D   2904  3702   0026       392¥

            7A01   000E   0000   1204   0C0B  180D  3802   0015       378¥

            以上为连续三次数据变化            

            设数据位以字节进行分组,名称分别由b0~b15.

            数据位:b0b1

            固定位:b2,b5

            校验位:b15(b0~b14的和)

            时间:   b6 ~b11(年月日时分秒)

            刷卡次数:b12b13

            本次刷卡消费金额:b3b4

            由此充值如下:

            eg:
                1027  000E  0000    1204  0F0C  0000   3002  00A8   100.00¥

                204E  000E  0000    1204  0F0C  0000   3002  00DF   200.00¥

注意:该卡的区块三中有

                                    :秘钥a      ff078069              秘钥b                              使用秘钥a解密

                                    :秘钥a      7F0788DA            秘钥b                              使用秘钥b解密

其九

其十


猜你喜欢

转载自blog.csdn.net/ugly_girl/article/details/79532773