分析一張加密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同路人論壇)


推薦閱讀:

TAG:加密 | NFC | 網路安全 |