码迷,mamicode.com
首页 > 其他好文 > 详细

安全性测试之安装包测试

时间:2018-02-12 13:45:22      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:签名   路径   manifest   进入   常用   一个   验证   jin   roi   

安装包测试主要包括以下几点:

1、反编译代码;

2、安装包签名;

3、完整性校验;

4、权限设置检查。

下面对以上几点做详细介绍:

1、反编译代码:移动应用发出去后最终用户获得一个程序安装包,我们需关注用户能否从这个安装包中获取项目的源代码。从安全方面考虑,程序开发人员是否会在程序源代码中硬编码一些敏感信息,如密码等。常用的反编译方法是使用dex2jar工具并结合jd-gui工具(java的反编译工具)查看源代码。

下载dex2jar和JD-GUI

技术分享图片

找到我们准备测试用的apk,并将 后缀.apk改为.zip

 技术分享图片

技术分享图片

将test.zip解压,并查看目录,找到classes.dex
技术分享图片
技术分享图片
并将这个文件拷至dex2jar工具存放目录下
技术分享图片
技术分享图片
打开控制台,使用cd指令进入到dex2jar工具存放的目录下,如图
技术分享图片
 技术分享图片
进入到dex2jar目录下后,输入“dex2jar.bat    classes.dex”指令运行
执行完毕,查看dex2jar目录,会发现生成了classes.dex.dex2jar.jar文件
技术分享图片
 技术分享图片
上一步中生成的classes.dex.dex2jar.jar文件,可以通过JD-GUI工具直接打开查看jar文件中的代码
技术分享图片
 技术分享图片
被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):
技术分享图片
 
 
2、安装包签名技术分享图片
安装包是否签名:IOS系统不必太考虑这些问题,因为IOS每一个App发布出来都有一个正式的发布证书来签名,发布到App Store 时,App Store会做校验,保证APP是合法的开发者发布出来的。对于Android来说,发布的渠道多样,没有此类权威检查,我们需要验证下签名使用的Key是否正确,以防被第三方应用恶意覆盖安装,我们可以使用一下命令检查:
jarsigner -verify -verbose -certs apk包路径
如果运行后,显示 jar已验证,说明签名校验成功
技术分享图片
 
3、完整性校验
 为确保安装包不会在测试完成到最终交付过程中因为各种问题发生文件损坏,需要对安装包进行完整性校验。通常做法是检查文件的md5值。
 
4、权限设置检查
对app申请某些特定权限的必要性进行检查,如访问通讯录等
android:检查manifest文件来读取应用所需的全部权限;
ios:在用户使用app过程中需要使用权限时,系统会弹出提示框,用户可以选择接受或者拒绝;

安全性测试之安装包测试

标签:签名   路径   manifest   进入   常用   一个   验证   jin   roi   

原文地址:https://www.cnblogs.com/toray-xiaopm/p/8440866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!