Android逆向笔记-破解某APP签名摘要算法
這里科普幾個摘要算法,散列算法(簽名算法)有:MD5、SHA1、HMAC
用途:主要用于驗證,防止信息被修。具體用途如:文件校驗、數字簽名、鑒權協議
MD5:MD5是一種不可逆的加密算法,目前是最牢靠的加密算法之一,尚沒有能夠逆運算的程序被開發出來,它對應任何字符串都可以加密成一段唯一的固定長度的代碼。
SHA1:是由NISTNSA設計為同DSA一起使用的,它對長度小于264的輸入,產生長度為160bit的散列值,因此抗窮舉(brute-force)性更好。SHA-1設計時基于和MD4相同原理,并且模仿了該算法。SHA-1是由美國標準技術局(NIST)頒布的國家標準,是一種應用最為廣泛的Hash函數算法,也是目前最先進的加密技術,被政府部門和私營業主用來處理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。
HMAC:是密鑰相關的哈希運算消息認證碼(Hash-based Message Authentication Code),HMAC運算利用哈希算法,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出。也就是說HMAC是需要一個密鑰的。所以,HMAC_SHA1也是需要一個密鑰的,而SHA1不需要。
這里使用JEB打開apk后,使用Ctrl + f進行搜索關鍵字符串:如X-Sign,看下對應的代碼:
?
需要破解的就是這個X-Sign,從中可以看到,
這里X-Sign最后會放v0的字符串,而v0是:
最開始的v0來自:
?也就是不會變的,X-Device-ID。
而v2_2是
?從十進制10000到十進制99999的數,這個數在HTTP包頭中的X-RandomNum
?這個v3是空字符串!
?這個v4_2是當前時間戳,在HTTP包頭的X-TimeStamp有提現:
?最后加上一串死的字符串:
?隨后進行SHA1簽名算法:
?就是最后的X-Sign了。
這里可以猜到服務端是這么驗證的:
從HTTP包頭中拿到X-Device-ID,然后拿到X-RandomNum再拿到X-TimeStamp,隨后與F403F982CA92F73AC142D50FFA69853D這個字符串進行SHA1進數據簽名。這個值與X-Sign對比,如果一樣,就認可這個操作了。
其中X-Device-ID和那一串字符(F403F982CA92F73AC142D50FFA69853D)是死的。這樣就好模擬了,其中這個F403F982CA92F73AC142D50FFA69853D為32位,估計他是一個MD5摘要。
總結
以上是生活随笔為你收集整理的Android逆向笔记-破解某APP签名摘要算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt文档阅读笔记-数据驱动测试
- 下一篇: MySQL笔记-InnoDB物理及逻辑存