安全性测试之安装包测试

小试牛刀 小试牛刀     2022-10-15     498

关键词:

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

1、反编译代码;

2、安装包签名;

3、完整性校验;

4、权限设置检查。

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

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

下载dex2jar和JD-GUI

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

 

将test.zip解压,并查看目录,找到classes.dex
如何利用dex2jar反编译APK
并将这个文件拷至dex2jar工具存放目录下
如何利用dex2jar反编译APK
打开控制台,使用cd指令进入到dex2jar工具存放的目录下,如图
如何利用dex2jar反编译APK
 
进入到dex2jar目录下后,输入“dex2jar.bat    classes.dex”指令运行
执行完毕,查看dex2jar目录,会发现生成了classes.dex.dex2jar.jar文件
如何利用dex2jar反编译APK
 
上一步中生成的classes.dex.dex2jar.jar文件,可以通过JD-GUI工具直接打开查看jar文件中的代码
如何利用dex2jar反编译APK
 
被混淆过的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过程中需要使用权限时,系统会弹出提示框,用户可以选择接受或者拒绝;

paddleocr之安装测试(代码片段)

0背景paddleocr号称最强,怀着好奇心,对该软件进行一个安装测试1安装创建一个虚拟环境condacreate-npaddle_envpython=3.8进入环境,安装gpu版本的paddlepaddlecondaactivatepaddle_envpython3-mpipinstallpaddlepaddle-gpu-ihttps://mir 查看详情

paddleocr之安装测试(代码片段)

...cr号称最强,怀着好奇心,对该软件进行一个安装测试1安装创建一个虚拟环境condacreate-npaddle_envpython=3.8进入环境,安装gpu版本的paddlepaddlecondaactivatepaddle_envpython3-mpipinstallpaddlepaddle-gpu-ihttps://mirror.baidu.com/pypi/simple再... 查看详情

jmeter学习之安装篇

...pache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试。Jmeter能够很好的支持各种常见接口,如HTTP(S)、WebService、JDBC、JAVA... 查看详情

安全测试指南

...应用安全测试概述Web应用安全测试只侧重于评估Web应用的安全性。这个过程包括主动分析应用程序的所有弱点、技术缺陷和漏洞。任何被发现的安全问题连同影响评估、缓解建议或者技术方案一起提交给系统所有者。1.2、什么是... 查看详情

干货分享|安全测试起航之旅

云智慧汪晓宇安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。一句话总结,安全测试就是检查产品是否满足安全需求的过程。... 查看详情

软件测试之安全测试

文章目录一、引言1.1、为什么要学习安全测试以及什么是安全测试1.2、什么是安全测试1.3、安全测试与常规测试的区别二、软件安全测试的基本原则三、常见的安全漏洞3.1、失效的身份验证机制3.2、会话管理劫持3.3、SQL注入3.4、... 查看详情

软件测试之安全测试

文章目录一、引言1.1、为什么要学习安全测试以及什么是安全测试1.2、什么是安全测试1.3、安全测试与常规测试的区别二、软件安全测试的基本原则三、常见的安全漏洞3.1、失效的身份验证机制3.2、会话管理劫持3.3、SQL注入3.4、... 查看详情

linux系统之安装java开发环境(代码片段)

...3.复制jdk的二进制文件4.配置环境变量5.查看java版本六、测试java安装环境1.编辑test.java文件2.运行测试文件一、java介绍1.java简介1.Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由JamesGosling和... 查看详情

linux系统之安装mariadb方法(代码片段)

...六、mariadb的远程连接1.本地连接2.创建用户3.对用户授权4.测试远程连接mariadb数据库 查看详情

安全测试手法之***测试网站信息讲解

安全测试手法之***测试网站信息讲解分类专栏:***测试网站安全漏洞检测网站***测试文章标签:***测试网站安全测试网站安全公司网站漏洞修复网站***清理版权上一节讲到***测试中的代码审计讲解,对整个代码的函数分析以及危... 查看详情

使用webbench和apachbench进行压力测试(代码片段)

...很多小伙伴在做完一个网站之后,不知道如何做压力测试,不知道自己网站的并发承受极限在哪里,这里教大家两种最常用的两种压力测试。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,... 查看详情

健全性测试与回归测试?

】健全性测试与回归测试?【英文标题】:SanityTestingvsRegressionTesting?【发布时间】:2021-08-0602:31:53【问题描述】:我做了一些研究,我发现:健全性测试是一种软件测试,它是在收到软件构建并更改功能和代码后执行的。执行健... 查看详情

安全测试与功能测试渗透测试你知道有什么区别吗?

一、基本理解安全测试什么时候开始进行?安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全测试与功能测试的... 查看详情

网站安全公司安全防护***测试讲述(代码片段)

...的知识必知点详情的给大家讲解一下,对今后网站或APP的安全性提高有着特别大的作用,只有这样 查看详情

线程安全测试

...ogle的gtest来编写我的单元测试,但它看起来不能测试线程安全性(即从多个线程访问某些内容并确保其行为符合规范)。你用什么来测试线程安全?我想要一些跨平台的东西,但是,它肯定至少可以在Windows上运行。谢谢!【问... 查看详情

测试过程之过分关注功能性测试

...证质量特性的适当水平(如:可用性、可靠性、健壮性、安全性、保密安全性、易用性)3.测试工程师、可靠性工程师、安全性工程师、人为因素工程师未执行相关专业测试类型(如未执行渗透测试)4.只在系统交付并投入 查看详情

web系统的安全性测试之文件和目录测试

...购物、支付等其他业务操作。而一个潜在的问题是网络的安全性如何保证,一些黑客利用站点安全性的漏洞来窃取用户的信息,使用户的个人信息泄漏,所以站点的安全性变得很重要。Web系统的安全性测试包括以下内... 查看详情

系统测试的策略都有哪些

...略是什么?功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。问题二:什么是测试策略... 查看详情