分析一张加密IC水卡的破解
分析一张IC加密卡
用的是工具:
名称:pm3
全名:proxmark3 easy
独妙匠人小铺首先得声明,这次并非完全破解了扇区里面真正的算法规律。而是对一些特殊金额数据的总结。
首先我们先观察数据,准备的分别是:10元、20元、30元的扇区数据。如下图:
接着我们对数据进行初步的划分,分析。
差异数据我们把它分为了四个区块。
对于数据分析的思路,我们一般都是从金额位下手。所以,我们对金额进行数据转换,(因为扇区存储的都是16进制的数据,所以我们的转换也同样如此。)
10.00 → 03E8
20.00 → 07D0
40.00 → 0FA0
转换结束,我们立马就能发现金额位在我们的第2块区域,唯一的差异就是扇区里的数据用高低位存储了,所以我们将区域2标的为金额位。
接着,我们看数据之间的关系发现,③区域和④区域,只是做了一个简单的加法,0014 + 2 = 0016,0028 + 2 = 002A,0050 + 2 = 0052。
然后,我们将0014转10进制是发现,等于20,0028 = 40 ,0050 = 80,刚好是我们金额的2倍,于是,我们就确定了③区域的由来。
最后,可以发现,一个运算就是,EB + 14 = FF ,D7 + 28 = FF , AF + 50 = FF;所以,就推出了,①区域和③区域有关,并且他们是互补的。
心得:对于这些特例的分析还是比较简单的,因为开发者并没有运用较难的运算算法,几乎都是在能够想到的范围内。但是上述的计算过程也是只这个卡算法的一个部分而已。我之后的验算过程中,发现这个算法对一些非整数的金额数据并不适用,所以对于这个的算法研究还并没有结束,这也只是将最初的研究结果跟大家分享一下,给大家提供一种思路破解算法。
作者:IT同路人
(文章转载请注明来自:IT同路人论坛)
本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据