• 安装包安全测试


    主要说明以下内容:
    1、能否反编译代码
    2、安装包是否签名
    3、完整性校验
    4、权限设置检查
     
    反编译代码:移动应用发布出去后最终用户获得的是一个程序安装包,我们需要关注的是用户能否从这个安装包中获取项目的源代码,从安全方面考虑,程序开发人员是否会在程序源代码中硬编码一些敏感信息,如密码等。常用的反编译方法是使用dex2jar工具并结合jd-gui工具(java的反编译工具)查看源代码。(一般是正式发布的时候才看,测试环境代码混淆了日志不好查看)
     
    1、下载dex2jar和JD-GUI,在参考资料中添加了这两个工具的百度网盘下载地址供读者下载使用
    如何利用dex2jar反编译APK
     
    2、找到我们准备测试用的apk,并将 后缀.apk改为.zip
    如何利用dex2jar反编译APK
    如何利用dex2jar反编译APK
    3、将test.zip解压,并查看目录,找到classes.dex
    如何利用dex2jar反编译APK
     
    4、并将这个文件拷至dex2jar工具存放目录下
    如何利用dex2jar反编译APK
     
    5、打开控制台,使用cd指令进入到dex2jar工具存放的目录下,如图
    如何利用dex2jar反编译APK
     
    6、进入到dex2jar目录下后,输入“dex2jar.bat classes.dex”指令运行
    执行完毕,查看dex2jar目录,会发现生成了classes.dex.dex2jar.jar文件
    如何利用dex2jar反编译APK
     
    7、上一步中生成的classes.dex.dex2jar.jar文件,可以通过JD-GUI工具直接打开查看jar文件中的代码
    如何利用dex2jar反编译APK
     
    被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):
     
    安装包是否签名:IOS系统不必太考虑这些问题,因为IOS每一个App发布出来都有一个正式的发布证书来签名,发布到App Store 时,App Store会做校验,保证APP是合法的开发者发布出来的。对于Android来说,发布的渠道多样,没有此类权威检查,我们需要验证下签名使用的Key是否正确,以防被第三方应用恶意覆盖安装,我们可以使用一下命令检查:
    jarsigner -verify -verbose -certs apk包路径
    如果运行后,显示 jar已验证,说明签名校验成功
     
    完整行校验:为确保安装在测试过程到发布过程中因为各种问题导致文件损坏,需要对安装包做完整性校验,通常做法是检查文件的MD5值,一般通过自动化测试校验.
     
    还未写完,后续完善....
  • 相关阅读:
    2020牛客暑期多校训练营(第一场)I 1or 2题解
    5-23ACM训练题解(NWERC 2019)
    5-20ACM训练题解(2017-2018 ACM-ICPC Pacific Northwest Regional Contest)
    5-6ACM训练题解(2019 Russia Team Open Contest)
    5-2ACM训练题解(Asia Nakhon Pathom Regional Contest)
    4-30ACM训练题解(ICPC Asia Taipei-Hsinchu Contest)
    4-22ACM训练题解(ZOJ Monthly Jan 2019)
    「学习笔记」子序列自动机
    「学习笔记」后缀自动机
    「学习笔记」后缀数组
  • 原文地址:https://www.cnblogs.com/wysk/p/7510410.html
Copyright © 2020-2023  润新知