[转帖]教你如何破解IC卡的校验值
教你如何破解IC卡的校验值
大一的时候,学校的洗澡卡和水卡是IC卡;有一次听室友说有人用白卡洗澡,就抱着试一试的心态买了一个acr-122,然后很轻松的破解了一个室友洗澡卡(当时就他一个买了洗澡卡,包括我在内的其他五个人嫌费用太贵没舍得买),提取了里面的数据,洗澡卡只知道金额在哪个扇区,其他的数据都不知道是什么意思就这样不明所以的用了一个学期(洗澡卡是能挂失的,我们当时知道水卡公司的后台肯定能检测到不正常消费)。结果第二个学期白卡不能用了,原卡也同样不能用了,我们意识到公司后台可能检测到这个卡号消费不正常,所以锁卡了。
怎么办呢?又不知道上面数据的联系,所以只能买新卡。
一开始是三个人买的,在买卡的时候我们三个是连着的,所以卡号也是连着的。当时我们发现他们是记下这个卡号和这个卡号是谁买的人学号和姓名电话(我们觉得胡编一个学号姓名都行),我们觉得他们就是发现消费不正常也不可能找到相关责任人的(证实了我们之前猜测的水卡公司与学校的信息是不互通的)。
总之这个洗澡卡虽然是连接后台的,但后台只检测消费是否正常,金额信息还是储存在卡里的
再入正题之前,我要先说明一下,不同厂家计算校验值的公式不同,有直接相加的、有使用与运算的,也有使用或运算的,也有取反,总之,就像你设置密码一样,厂家想用什么运算计算出校验值取决于厂家,就看你能否根据数据发现这个公式。这里附上另一篇也是关于破解校验值的博客,写的也是很不错的,希望对道友们有用,地址链接。
下面是我对我们学校的水卡的校验值的计算过程。
买卡之后我们得到了三组新卡的数据(没有使用过的卡上面的信息更简单一些),如下图:
由此可发现在金额相同(都是90.00元)的情况下,校验值是随着卡号的递增而加1的(第二行的数据的最后两个不知道是怎么算的,但第二行不重要,只要第一行正确就可以刷卡)。
注意:金额和卡号的数据都是反的。如金额是90.00,也就是将9000转化成十六进制为23 28,但在卡上表示的是28 23,卡号也是如此。
以为发现的规律,用Excel一直往后推,试了一下发现一直到卡号为14FF都是可以使用的。
但从卡号1500(十六进制)就显示错误。不知道原因是什么。
然后又有两个室友买了张新卡,数据如下:
按照我之前的思路推导的话这两个90.00元的卡的校验值应该分别是27、28,但实际却是28、29,比推导出来的大1。
为什么会这样呢?想了好长时间才想到一种可能:15比14大1。然后本着这个思路我又用Excel向后推了一部分数据,一直推到2000,如图:(第一列是卡号的第三列和第四列是转化成十六进制后的卡号和第一行的校验值)
再次说明,第二行的数据没有用(至少这一行的对错不影响使用)
写在卡上之后试了一下,发现终于通过了。(这里当时有一点小的障碍,就是当校验值增加到FF的时候要怎么办?当时我是这样想的,FF表示255。也就是说如果不进位或者从00开始的话,它只能有256张卡(从00到FF),所以只能进位或从00开始。但进位显然不可能,因为现在的卡号已经是4000多了,为什么校验值还是两位,所以不可能向进位。那么只有从00开始了。事实证明我的想法是正确的的)。
但此时让我不满足的原因是我并没有发现校验值究竟是怎么计算出来的,也就是说我只能往卡上写入金额是90.00元的数据,不能写入其他金额的数据。虽然每次写入90.00元和每次写入三百元没什么区别,顶多是前者写的频率比后者多一些,但这一点让我觉得自己根本没有了解这些数据的关系到底是什么,一直有种被蒙在鼓里的感觉,让人很不爽。可能“人心不足蛇吞象”就是说的是我这类人吧……
为了推出关系,让我们再来看最后一个也是最关键的数据:第六个室友买了一张100.00元的洗澡卡。数据如下:
如上图,用Excel我可以按照上文总结的规律推出以后的校验值,但此时我也只是知道100.00元和90.00元的各卡号的校验值,并不知道其他金额的校验值,而且要用一个卡号时我还要找到Excel查看,很麻烦。必须推出公式!
如上图,如果是90.00元的话,校验值应该是68(十六进制)。
虽然校验值的算法有很多,比如:取反运算,与运算,或运算,相加运算以及有可能的以上运算的多种结合。所以在不知道公式是什么的情况下去推导校验值公式虽说不是难于上青天,但也绝非易事。
我的想法是:由于校验值是随着卡号的增加而增加1的,所以校验值很可能由金额和卡号的数据简单地相加得到,为了得到公式,我只能用数据试了,
就拿这个数据来试:
卡号:14BE 金额:2710(100.00元) 校验值:40
接下来用Excel依据另外五张90.00元的推出这个卡号14BE如果是在2328(90.00元)的情况下的校验值,是68(十六进制)。由此可得到90.00元时的校验值
卡号:14BE 金额:2328(90.00元) 校验值:68
我按照网上最简单的是相加试了一下(注意:以下均为十六进制的数据的运算 ):
14 + BE + 27 + 10 = 109(100.00元)
与校验值的差值是:
109 - 40 = C9
14 + BE + 23 + 28 = 11D(90.00元)
与校验值的差值是:
11D - 68 = B5
用得出的90.00元的差值B5检验下方的任意的一个数据
第一第二列是相应的十进制的卡号和校验值:
检验卡号8200:20 + 08 + 23 +28 - B5 + 100 = BE(因为减去B5后为负数,所以要加上100(十进制的256,即16的平方)),经过对比上图可发现卡号为2008(十进制的8200)、金额为90.00的校验值就是BE。
100.00元的C9也可以得到对应100.00元的校验值。
但是为什么100.00元的差值是C9,而90.00元的差值是B5?
试了一番数据发现:23 + 28 - (27 + 10) = 14
而C9 - B5 = 14
即C9 = B5 + 14
剩下的就是中小学生的数学代入了,很简单的
继续代入可得:C9 = B5 + 23 + 28 - (27 + 10)
所以,对于卡号:14BE 金额:2710(100.00元) 校验值:40,还记得上文中的算式吗:
“ 14 + BE + 27 + 10 = 109 (100.00元)
与校验值的差值是:
109 - 40 = C9 ”
所以,40 = 109 - C9 = 14 + BE + 27 + 10 - [ B5 + 23 + 28 - (27 + 10) ]
进而可化简为:
40 = 14 + BE + 27 + 10 + 27 + 10 - (B5 + 23 + 28);这里括号里面已经是常数了,不会变化
而B5 + 23 + 28 = 100 所以 上式中减去(B5 + 23 + 28)相当于取模的作用;
所以
40 = (14 + BE + 27 + 10 + 27 + 10)%100
可以简单的概括为:
校验值 = (卡号 + 金额 * 2) %100;
(可代入上面的图片中验证一下)
Game Over!
我陆陆续续用了近一个学期的时间终于算出了这个校验值的公式,这期间也尝试着算出这个校验值,但总是没有思路而无奈地中途放弃,每次放弃时都有一种挫败感。
所以,这个暑假当结果出来的时候我真的是激动地热泪盈眶,真是皇天不负有心人啊!
当万万没想到的是暑假时,学校可能发现了问题,升级了全部的刷卡器,水卡、洗澡卡及饭卡均合并为一张卡,而且是sak=20的CPU卡,几乎无解。提取卡中的数据,里面的只有零扇区第0区块有一行卡号,其他的扇区没有任何信息。当时就知道这卡是联网的,每次消费时需要验证卡号。
天知道我的心里真是崩溃的:好不容易算出了校验值,结果你TMD换卡了,真的是欲哭无泪啊,好歹让我们上完你再换啊!!
说实话,我觉得现在大学里刷卡系统越来越完善了,想钻空子也越来越难了,几乎所有的消费活动要么是支付宝和微信付费,要么向我们学校一样是联网的一卡通消费,几乎没有漏洞可钻。像这类的文章在将来对大学生几乎没有用处,有可能对高中生或者是初中生最帮助。
哎……心里有一万头曹尼玛奔腾而过……
[转帖]教你如何破解IC卡的校验值的更多相关文章
- 【原创】ACR傻瓜式破解IC芯片卡
1.简介: 智能卡(英语:Smart card 或IC Card),又称智慧卡.聪明卡.集成电路卡及IC卡,是指粘贴或嵌有集成电路芯片的一种便携式卡片塑料.卡片包含了微处理器.I/O接口及存储器,提供 ...
- [原创]用逻辑嗅探破解接触式IC卡口令
最近两周对接触型IC卡很感兴趣,就动手实践了一下,最终实现的效果是通过破解IC卡口令实现对数据修改,然后就可以随意洗衣服喽~IC卡从数据传递方式上划分为接触型和非接触型两种.接触型的卡片表面有金属贴片 ...
- IC卡、M1卡、CPU卡、SAM卡、PSAM卡的联系与区别
一. 技术方面(非接触式IC卡) 1. 逻辑加密卡又叫存储卡,卡内的集成电路具有加密逻辑和EEPROM(电可擦除可编程只读存储器). 2. CPU卡又叫智能卡,卡内的集成电路包括中央处理器(CPU ...
- 破解NFC卡
目录 概念 各种卡 IC卡存储器结构 破解工具 破解NFC卡 概念 各种卡 ID卡 工作在低频(125Khz) ID卡 特点 EM4XX系列,多为EM4100/EM4102卡 常用的固化ID卡,出厂固 ...
- 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路
摘要:一文手把手教你利用RC522射频卡模块与IC卡完成充值消费查询的技术实现思路. 本文分享自华为云社区<RC522射频卡模块与IC卡完成充值消费查询的技术实现思路 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第四组(转)
十:联机处理-可选项终端根据卡片行为分析的结果,执行对应的处理.若卡片响应联机,则终端发起联机操作.联机处理使得发卡行后台可以根据基于后台的风险管理参数检查并授权批准或拒绝交易.除了传统的联机欺诈和信 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第三组
七:终端风险管理-必选但包含可选步骤异常文件:终端检查应用主账号是否在异常文件列表(卡号黑名单)中.商户强制联机:商户可以将当前交易强制为联机处理.最低限额:控制交易当前交易金额或同一张卡片连续几笔交 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第二组(转)
四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第一组(转)
两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AI ...
随机推荐
- CSP2019心路历程
--人常说无论做什么都不要忘了初心,但如果一个人从来没有"应该"去忘了初心,又从何谈起的初心. CSP开考前,风吹在脸上,一些淡淡的回忆化作影子碎在地上:是到了一个令人感伤的路口了 ...
- 014_matlab读取ecxel(直接导入)
视频教程:https://v.qq.com/x/page/c3039b5htwx.html 资料下载:https://download.csdn.net/download/xiaoguoge11/12 ...
- plotly-dash 简单使用(一)
plotly-dash 是一个很不错的dashboard 开发平台,基于python 编写,提供了很便捷的dashboard 开发模型 同时扩展上也比较灵活我们可以编写自己的组件. 以下是一个简单的项 ...
- netflix conductor 2.x 版本新功能简单说明
netflix conductor 2.x 已经发布很长时间了,同时官方也发布了关于2.x 新特性的说明,当前github 行的release 版本为2.14.4 新特性 grpc 框架支持 一个可选 ...
- orm功能封装
封装功能: 查 : select **kwargs.keys() --返回-> obj -转为-->list [{},{}] ---> [obj,obj] class Models( ...
- 再说js隐式转换
再说js隐式转换 自己整理的一个整体规则如下: Date 默认 走 toString, 如果 toString 返回的是对象, 那么查看 valueOf 其他对象的转换, 默认走 valueOf, 但 ...
- 用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 .pack.gz
用jdk1.6的pack200和unpack200,对jar文件进行压缩和解压 解压xxx.jar.pack.gz为xxx.jar:unpack200 -r xxx.jar.pack.gz xxx.j ...
- robotframework 文档
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#post-processing-outputs
- adb 常用命令一
1.install 和uninstall adb -s 设备号 install 安装包路径 adb uninstall package名 2.pull 和push: adb pull /sdcar ...
- Django项目纪要
开发流程 公司高层 项目立项 | 市场部门 需求分析-->需求分析说明书, 需求规格说明书 | 产品部门 产品原型-->产品 UI 前端 后端 测试 移动端 | |------------ ...