Proxmark3 破解饭卡

再不玩都换成cpu卡就没得玩了~

先放个成功图。

rfid

其实pm3支持的卡还是很多的

屏幕快照 2015-12-24 下午8.02.23

整个过程分为两个步骤:

1、复制卡片。

破解加密扇区内容,读出数据,写入白卡,这样就有了饭卡的数据类似快照,卡里钱用完重做一张旧恢复成原始状态了

2、修改金额。

难度相对较大,需要发现数据存储扇区,并猜解数据意义。

经过多次充卡、刷卡对比数据

fanka1

00025395141026000008200082000021 000262151410250000080000810000b4 --253.95 1
0002539314102700000822008400001e 0002539414102700000821008300001f --253.93 1
0002539114102700000827008400001b 0002539014102700000828008500001a --253.91 2
00025340141027000008780086000019 000242001410270000000000870000e9 --253.40 2
000252131410270000100200860000b5 0002529314102700000922008500001d --252.13 1

00025395141026000008200082000021
000262151410250000080000810000b4 --253.95 1
0002539314102700000822008400001e
0002539414102700000821008300001f --253.93 1 下方少1,校验位为1f
0002539114102700000827008400001b
0002539014102700000828008500001a --253.91 2 下方多1,校验位为1a
00025340141027000008780086000019
000242001410270000000000870000e9 --253.40 2
000252131410270000100200860000b5 101001010 取8位 01010 10101 01001010 10110101
0002529314102700000922008500001d --252.13 1 111100010 11100010 00011101
0002419914102700000001008800004f
0002419814102700000002008900004e --充值前
0004419814102700000002008a00004b
0004419814102700000002008a00004b --充值后,两栏变成一样的内容

猜解出大部分数据意义:
1-8位 :金额, 例如25293
9-14 :日期, 例如141027
15-18 :全0
19-22 :每次刷卡金额按分计算加上原有的值,统计上次消费了多少钱,超过一定数额就清0(溢出?),充值不变
23-26 :计数器,刷过多少次,每刷1次+1,对应前面的金额,越大的就是当前的金额。(充值也算1次)
27-30 :全0
31-31 :校验位,前面30位,每2位按16进制相加,取后8位,然后取反,转换成16进制就是校验位
第13、14行是关键段,每次刷卡都是修改这2行
0002539314102700000822008400001e 1e=11110 取反00001 十进制30 00001
0002539414102700000821008300001f 1f=11111 取反00000 十进制31
第一行所有数十进制相加为61,二进制111101
第二行所有数十进制相加为60,二进制111100

0002539114102700000827008400001b 1b 十进制27 11011 取反00100
0002539014102700000828008500001a 1a 十进制26 11010 取反00101 两位两位16进制相加取后五位,取反

 

其实校验位的猜测是最难的,饭卡里只是简单的相加取部分再取反,如果再来个异或运算估计就没辙了。