新聞中心
最近發(fā)現(xiàn)某款打車軟件的APK非常的火,并聽說他們進(jìn)行了非常嚴(yán)密的防護(hù),防止用戶進(jìn)行二次打包。今天我們來分析一下他的安全性到底如何。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供云浮網(wǎng)站建設(shè)、云浮做網(wǎng)站、云浮網(wǎng)站設(shè)計、云浮網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、云浮企業(yè)網(wǎng)站模板建站服務(wù),10余年云浮做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
經(jīng)過嚴(yán)密的分析發(fā)現(xiàn):該打車APP(司機版)主要的防護(hù)在兩個地方
***個是:登錄過程中,通過傳遞context對象到so庫中的方式去拿到apk的簽名信息的md5簽名信息上傳。
第二個是:在主界面中,每次onResume中,調(diào)用一個私有類進(jìn)行校驗,如果校驗不通過,則彈出“請卸載該軟件后再使用~”的提示。迫使點擊確定的方式退出app。
首先我們來說***個校驗:本身使用so作為獲取簽名信息的地方相應(yīng)的比在java中獲取簽名信息的方式要安全。但是so獲取簽名信息必須給底層傳遞context對象。那么防護(hù)弱點也主要在這個context對象的傳遞上。
在com.sdu.didi.net包的c方法中
里面的SecurityLib.getUUID(this.b)便是調(diào)用so庫的getUUID方法,并傳遞context。
其中UUID是在so庫中通過簽名信息換算過來的,this.b是application的getContext。
那么我們在application中添加重寫getPackageManager方法,并修改其中的返回值。返回我們自己寫的PackageManager。如下
修改其中的getPackageInfo方法,返回我們自己的packageInfo對象。
ChangesSignture方法如下:其中的Signature的值是司機正版的簽名信息的MD5值。
通過以上的修改,經(jīng)過測試。登錄過程的校驗已經(jīng)沒有任何作用了。
下面我們來說第二個校驗:
在com.sdu.didi.gui.main包下的MainActivity中
其中checkCheatTool();會進(jìn)行校驗。如果是盜版會彈出提示:“請卸載該軟件后再使用”,這種防護(hù)更沒有安全性可言了。我們只需要把這行代碼注釋或者刪除掉。這個校驗就沒有任何的作用了。
筆者***想說:
加密技術(shù),也是一個很是需要深度研究的項目,有興趣的話可以多看看別人用的加密方式,也可以去研究一些專門提供加密服務(wù)的第三方平臺,當(dāng)然,你要是懶省事兒的話也是可以直接用的。
新聞名稱:APP安全分析之打車軟件
網(wǎng)頁地址:http://fisionsoft.com.cn/article/cdcphpo.html


咨詢
建站咨詢
