小小的分享,關於打車apk的安全分析報告!

最近發現打車軟件的apk很是的火,並據說他們進行了很是嚴密的防禦,防止用戶進行二次打包。今天咱們來分析一下他的安全性到底如何(以司機版爲例)。java

通過嚴密的分析發現:司機版主要的防禦在兩個地方。
第一個是:登陸過程當中,經過傳遞context對象到so庫中的方式去拿到apk的簽名信息的md5簽名信息上傳。
第二個是:在主界面中,每次onResume中,調用一個私有類進行校驗,若是校驗不經過,則彈出「請卸載該軟件後再使用~」的提示。迫使點擊肯定的方式退出app安全

首先咱們來講第一個校驗:自己使用so做爲獲取簽名信息的地方相應的比在java中獲取簽名信息的方式要安全。可是so獲取簽名信息必須給底層傳遞context對象。那麼防禦弱點也主要在這個context對象的傳遞上。
com.sdu.didi.net包的方法中app

裏面的SecurityLib.getUUID(this.b)即是調用so庫的getUUID方法,並傳遞context測試

其中UUID是在so庫中經過簽名信息換算過來的,this.bapplicationgetContext
那麼咱們在application中添加劇寫getPackageManager方法,並修改其中的返回值。返回咱們本身寫的PackageManager。以下

修改其中的getPackageInfo方法,返回咱們本身的packageInfo對象。ui

ChangesSignture方法以下:其中的Signature的值是司機正版的簽名信息的MD5值。this

 

經過以上的修改,通過測試。登陸過程的校驗已經沒有任何做用了。加密

 

下面咱們來講第二個校驗:spa

com.sdu.didi.gui.main包下的MainActivity.net

 

其中checkCheatTool();會進行校驗。若是是盜版會彈出提示:請卸載該軟件後再使用~」,這種防禦更沒有安全性可言了。咱們只須要把這行代碼註釋或者刪除掉。這個校驗就沒有任何的做用了。orm

 這種傳統的加密方法已然失效,給你們推薦一個更安全的加密方式,對APP進行加殼保護,採用這種加密方法即便APP被破解,源碼也不會暴露,能夠有效防止二次打包等惡意破解,目前這種加密服務是由第三方服務平臺提供的,網址:www.ijiami.cn 各位能夠去體驗加密。

相關文章
相關標籤/搜索