Android应用安全与防范之签名校验
2019獨角獸企業重金招聘Python工程師標準>>>
Android黑產品里面有一個叫做二次打包,也稱為重打包。通過反編譯應用后,可以得到smali源碼,往其中注入代碼或者修改相應義務邏輯后,重新利用新的簽名進行打包,并發布到市場應用去,很多人就是通過這種方式去破解一些付費應用或者往其中注入廣告代碼來獲利。簡單梳理一下打包的基本流程:
1.對應用使用apktool類逆向工具進行解包
2.在某處地方注入smali代碼
3.利用IDE生成簽名文件,再通過jarsigner進行簽名
4.上傳應用市場
為了與二次打包做對抗,可以在應用內的關鍵功能入口增加校驗簽名的檢測,如果發現應用簽名非正版,則強制關閉應用或者限制用戶使用。加簽名校驗代碼時,可以考慮:
1.在JNI層加校驗代碼,相比在Java層的代碼,JNI層的逆向難度更大。
2.如果要在Java層加校驗代碼,不要在一個地方暴露一段長字符串,對于逆向工程師來說,這是非常明顯的提示??梢钥紤]將字符串打散存放在各處,這樣會增加破解分析的難度
當然不要認為放在JNI層就可以高枕無憂了,對于JNI層,同樣可以進行代碼注入,來暴力破解你簽名校驗的邏輯,只不過相比Java層的,JNI層所需成本更高,這樣也能攔截掉一部分逆向人員的不好的想法。
轉載于:https://my.oschina.net/u/2971691/blog/857799
總結
以上是生活随笔為你收集整理的Android应用安全与防范之签名校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTMLCSS学习笔记(四)----浮动
- 下一篇: 运用vue.js写的表格小demo