Android静态安全检测 -> 重打包防护检测

重打包防护检测


一、API


【1】APK签名校验:PackageManager.getPackageInfo( )




【2】dex文件校验:对比classes.dex文件的哈希值




【3】参考链接


http://www.droidsec.cn/android应用安全开发之源码安全/


二、触发条件


1. 获取所有反编译smali文件名的对应列表smali_list


2. 获取Manifest文件中所有组件名的对应列表component_list


【1】对应到smali语句中的特征

r'<(?:activity |service |provider |receiver )'


3. 判断组件对应的文件是否存在


Note 


【1】考虑不管是APK签名校验,还是dex文件校验,如果APP源码暴露,校验逻辑也会被破解,二次打包总是不可避免的,所以主要去判断APP是否进行加壳保护,只保留保护程序,隐藏源程序真正的代码文件


【2】如果有更好的检测方法和规则,求赐教!


三、漏洞原理


【1】应用没有进行安全加壳保护,攻击者可以利用重打包等手段修改程序的代码逻辑及原始内容,同时上传仿冒的APP到第三方应用市场,欺骗用户


【2】更多内容


http://www.jianshu.com/p/6bcc42542997


四、修复建议


【1】建议使用相应的应用安全加固方案,提供对dex、so等文件的保护


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章