【Android安全】Android软件保护措施总结
2014-12-11 14:54
429 查看
防止静态分析:
1、对抗反编译工具:通过大量的apk包测试找到无法反编译的指令或字段,将这些字段或指令用在程序开发的代码中防止他人反编译,方法:利用apktool和dex2jar工具及大量的APK做验证测试找到这些程序无法解析的字段或代码。
2、代码混淆技术:代码开发时采用混淆技术,使得反编译出来的代码类和方法都用a,b,c字母代替,增加逆向分析人员破解难度,方法android自带的proguard即可实现。
3、NDK保护:Java开发的代码极易反编译并逆向,而利用c/c++开发的.so库等需要查看汇编代码才能逆向还原,难度更大,方法:利用NDK开发核心代码。
4、外壳保护:自己开发的.so文件可以使用压缩加密壳进行保护,方法:利用arm-linux 内核程序加壳工具即可实现。
防止动态调试:
检查调速器,检查模拟器,直接利用SDK API函数进行校验检查即可。
防止重打包:
签名验证:调用sdk api获取签名信息将签名验证写在程序启动的开头来验证签名是否被重新修改过。
校验保护:记录xx.dex的crc校验值,存储在字符串文件中或存储在网络上,代码中进行校验比较确保dex文件没被修改过。
1、对抗反编译工具:通过大量的apk包测试找到无法反编译的指令或字段,将这些字段或指令用在程序开发的代码中防止他人反编译,方法:利用apktool和dex2jar工具及大量的APK做验证测试找到这些程序无法解析的字段或代码。
2、代码混淆技术:代码开发时采用混淆技术,使得反编译出来的代码类和方法都用a,b,c字母代替,增加逆向分析人员破解难度,方法android自带的proguard即可实现。
3、NDK保护:Java开发的代码极易反编译并逆向,而利用c/c++开发的.so库等需要查看汇编代码才能逆向还原,难度更大,方法:利用NDK开发核心代码。
4、外壳保护:自己开发的.so文件可以使用压缩加密壳进行保护,方法:利用arm-linux 内核程序加壳工具即可实现。
防止动态调试:
检查调速器,检查模拟器,直接利用SDK API函数进行校验检查即可。
防止重打包:
签名验证:调用sdk api获取签名信息将签名验证写在程序启动的开头来验证签名是否被重新修改过。
校验保护:记录xx.dex的crc校验值,存储在字符串文件中或存储在网络上,代码中进行校验比较确保dex文件没被修改过。
相关文章推荐
- Android中的软件安全和逆向分析[二]—apk反破解技术与安全保护机制
- 大三小学期《Imail - 我邮》Android安全传输应用软件工程实践总结
- Android安全(MDM、Root、Hook、Inject等)、软件加固、移动保护
- 六项措施保护无线安全
- 十大措施保护网络安全
- 用户层关闭瑞星2009杀毒软件安全保护
- 保护企业无线网络安全的九大措施
- 再谈软件保护中软加密和硬加密的安全强度
- 六项措施保护无线安全
- Android安全软件
- 基于Linux的网络安全策略和保护措施
- 一个专门做android安全软件的公司
- 十个常用网络密码的安全保护措施
- 帮你保护通用操作系统安全的十大措施
- 如何安全的修改原有代码---android mms player调试总结
- 保护软件源代码的“最安全”措施--源码与文档加密后随软件一起发行
- web软件常见安全问题(个人总结)
- 常用网络密码安全保护措施 ZT
- 趋势科技批评独立杀毒软件 无法有效保护安全
- 软件保护需要安全内核也需要安全思路