吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 37418|回复: 66

[转贴] RFID入门:Mifare1智能洗澡卡破解分析

  [复制链接]
发表于 2016-12-13 22:47 | 显示全部楼层
本帖最后由 Anonyomus 于 2016-12-13 22:50 编辑

18.jpg
科普前置知识:
Mifare Classic card提供1k-4k的容量,我们经常见到的是Mifare Classic 1k(S50),也就是所谓的M1卡。M1卡有从0到15共16个扇区,并且每个扇区都有独立的密码,每个扇区配备了从0到3共4个段,每个段可以保存16字节的内容,反正从0开始数 就对了(和数组下标为0开始一样)。
每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,剩下的是厂商数据。并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,当然也有例外,有种叫UID卡的特殊卡,UID是没有设置保护的,其实就是厂家不按规范生产的卡(我们在网上买的空白卡片一般都是这种可以修改UID号的卡)。
今天我们以破解一张洗澡卡为例:

用到的工具

读卡设备:ACCR122U一个

空白M1卡片两张

正常使用洗澡卡一张

上图:

2.jpg

平台:windows7

软件:NFCGUI-PRO.exe

M1卡服务程序

破解思路:在M1卡的16个扇区内的某一个扇区内的字段中存储着洗澡卡内的信息,例如使用时间、使用次数、水卡金额等信息,想要修改卡内的信息就要将卡片内的记录数据导出,每个扇区第一个字段的16个字节是扇区的秘钥对,我们要是想要导出数据就要通过穷举的方法测试出秘钥对,只有知道秘钥对后才可以导出卡片内文件(具体原因请百度M1卡工作原理),幸运的是国内大部分的M1卡都是使用的默认密码或者弱密码(例如 FFFFFFFF  FFFFFFFF),我们可以使用比较傻瓜式的软件M1卡服务程序穷举秘钥对并导出卡内的dump文件(通过破解软件导出的数据文件都为xx.dump格式文件),然后通过一张卡多次消费并导出dump文件来对比不同金额情况下扇区内的信息来核算出具体的金额控制位,然后通过NFCGUI-PRO.exe程序将修改好的dump文件写入到空白的M1卡内。
具体实施:
声明:在实施过程中有可能我的步骤不是最简便和最有效的办法,但是作为科普入门级的文章,只希望更多的人能理解实施的过程,以更好的去防护这种方法。

  • 先去洗澡卡终端查看卡内的余额:
    3.jpg



卡内余额为26.91元,然后将ACR122u插在机器上,使用M1卡服务程序破解得出卡内的DUMP文件

使用M1卡服务器程序破解:

4.jpg

破解成功:

5.jpg


由于这种M1卡秘钥对为弱密码所以大约几十秒的时间就会破解成功,dump文件会生成在文件目录下:
6.jpg

dumpfile 4da2e80e(2015-08-2523_4).dump文件就是生成的破解文件  可以看到生成的dump文件为1KB大小,但是具体写入M1卡的时候是需要写入4KB大小的dump文件的。

ps:这些软件本来是基友linux开发的,移植到win平台上只能生成1kb的dump文件,我们可以使用修复工具:fixdump将1KB文件修复为4KB,也可以使用NFCGUI-PRO.exe

这个软件自带的修复功能修复为4KB文件,我是使用的NFCGUI-PRO.exe


修复,如图:

7.jpg

打开这个软件点击选择文件-选择刚才生成的1KB文件-就会提示“是否保存为4K文件格式”—选择“是”-就是自带修复成功

8.jpg


然后关闭软件,刚才的1kb的DUMP文件就会自带修复为4KB文件了。


通过上面的方法得出三个不同金额的dump文件。


通过十六进制编辑器进行dump文件的对比,找出金额控制位,我使用winhex进行编辑dump文件:

9.jpg


因为这两个文件都是同一张卡片不同金额的dump文件,所以假定有金额的数据不同,有刷卡次数记录的数据不同,刷卡时间的记录不同,(假定会有这些不同之处,也许只有记录金额的变化),通过对比两张卡片,发现在00000176 和00000192处有不同的数据块。


如图;


余额为26.91:

10.jpg



余额为26.88:

11.jpg



发现这两张卡内的不同之处在于:

12.jpg
13.jpg

通过十六进制转换测试:
Hex(80 0A)=32778
HEX(7F F5)=32757
测试发现并不是这么简单的直接转换,于是将 800A 进行翻转为 0A80
HEX(0A80)=2688    2688符合卡内余额为26.88的实际情况。
HEX(0A83)=  2691   2691符合卡内月为26.91的实际情况。
可以总结得出金额位的加密方法为 金额转换十六进制后进行翻转存储。
接下来分析 7F F5代表的含义
根据M1卡了解 金额位置后面会有校验位数据,通俗讲就是当前面金额数据变了之后,校验位会根据另外的算法去改变值。
一般最简单的算法都是二进制取余后转换为16进制再加上金额位的加密方法
计算方法如下:
校验位7F F5-翻转为F5 7F转换二进制为1111010101111111  二进制取余为0000101010000000 转换为十进制为:
Hex(0000101010000000)=2688
可以得出金额校验位的加密方式为将金额转换为二进制后取余,取余后的二进制转换为16进制,将16进制翻转后得到的结果就是金额校验位的信息
例如金额为26.88—2688–0000101010000000—1111010101111111–F5 7F–7F F5
计算出金额校验位应填7F F5

14.jpg

计算出金额位和金额校验位的加密方式后可以进行金额的修改
修改金额为600元则计算
金额位:600—60000—EA60—60EA
金额校验位:600—60000—1110101001100000—0001010110011111—159F—9F15
则金额位填:60EA
金额校验位填:9F15
直接在winhex内修改dump文件:
15.jpg
直接保存文件为600.dump,dump金额就修改成功了
3)将文件写入到空白卡片中
通过NFCGUI-PRO.exe软件进行dump文件写入:
如图:
16.jpg


打开NFCGUI-PRO.exe软件后DUMP和Key文件选择加载文件600.dump
将ACR122U插入到电脑后将空白卡片放到读卡器上后选择写入文件
写入成功:
17.jpg


测试:



19.jpg

20.jpg

到这里就是M1卡破解的基本步骤,仅作科普文章,请勿做违法事件!
10.jpg
9.jpg
8.jpg
7.jpg
6.jpg
5.jpg
4.jpg
3.jpg
2.jpg
1.jpg
11.jpg
12.jpg
13.jpg

免费评分

参与人数 10吾爱币 +8 热心值 +10 收起 理由
gada888 + 1 已答复!
腾云驾雾 + 1 + 1 我很赞同!
ak7777 + 1 + 1 我很赞同!
360573078 + 1 + 1 谢谢@Thanks!
smith_k + 1 + 1 我很赞同!
majl8131 + 1 + 1 666
xing01324 + 1 + 1 厉害了,技术宅真是无敌了!
Gleam + 1 老哥稳,我收拾细软跑了
kevenyan + 1 + 1 我很赞同!
Au_L + 1 + 1 可惜毕业的早,白花花的充了500的水卡

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:28 | 显示全部楼层
破解卡的信息简单,读取写入都简单。
难的是数据加密算法的获取,你这个明显就是没加密的,加密的那种,消费一次里面几百B数据全变了,你改嘛,。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-14 23:11 | 显示全部楼层
浮萍不是花 发表于 2016-12-13 23:28
破解卡的信息简单,读取写入都简单。
难的是数据加密算法的获取,你这个明显就是没加密的,加密的那种,消 ...

我们学校的卡加密就很复杂,我当时弄了半天没解出来,不过能解决问题就行,换个思路很简单,直接把消费前的数据保存下来,当卡里面的钱消费完了再把消费前的数据写进去。不过后来学校的一卡通升级,变成数据联网的,还跟银行卡绑定,就没敢继续搞了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 22:56 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 22:57 | 显示全部楼层
666,我分析数据的时候卡壳了,看到你这个我又想分析了...不过我的数据加密好像有点恶心

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 22:59 | 显示全部楼层
你好,开门查下水表

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:10 | 显示全部楼层
那个进制余转换进制的还是没看懂

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:18 来自手机 | 显示全部楼层
我们这的没这么麻烦,破解后直接16位转10位找到金额,用手机修改就行了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:24 | 显示全部楼层
厉害了我的哥

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:29 | 显示全部楼层
虽然我看不懂 但是我还是想点赞

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2016-12-13 23:31 来自手机 | 显示全部楼层
谢谢楼主了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2018-10-18 23:59

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表