一、app代码未混淆
1、使用7zip解压apk文件
2、执行命令:dex2jar.bat apk解压后文件夹中的classes.dex文件
3、上述命令执行后会在apk文件夹中生成java源码文件classes_dex2jar.jar
4、直接使用jd-gui打开上述文件查看代码是否混淆
(可以尝试直接使用Androidkiller打开apk文件)

二、app应用完整性
1、将apk文件复制到apktool目录下
2、apktool对apk文件进行解包,命令:java -jar apktool_2.3.0.jar d apk文件
3、解包成功后会在当前文件夹下生成一个新的apk文件夹
4、进入新的apk文件夹下,找到相应logo,一般存在于res文件夹下的以mipmap开头的几个文件夹中,或者直接在apk文件夹下搜索launcher
5、随便下载个png图片,替换掉logo
6、替换成功后重新打包,执行命令:java -jar apktool_2.3.0.jar b apk文件夹
7、打包生成的apk文件默认存放在apk文件夹中dist文件夹下
8、对新生成的apk问价进行签名,执行命令:java -jar signapk.jar testkey.x509.pem testkey.pk8 原apk文件名 新apk文件名

三、文件存储安全性(参考https://www.52pojie.cn/thread-621516-1-1.html)
1、数据库文件(adb或ddms导出数据库文件,使用sqliteSpy打开数据库文件查看是否泄露敏感信息)
2、客户端存储文件(adb或ddms查看客户端存储文件,如sharedpreferences文件等)

四、文件权限安全性
adb或ddms查看app文件权限,一般默认后三位为--x,即其他用户组用户不具备读写权限

五、组件安全性(drozer)

检测攻击面

run app.package.attacksurface [package name]

攻击activity:

run app.activity.info -a [package name]

run app.activity.start --component [package name] [component name]

攻击Content Provider(注入和遍历):

run app.provider.info -a [package name]

run scanner.provider.finduris -a [package name]

run app.provider.query [uri]

run app.provider.update [uri] --selection [conditions] [selection arg] [column] [data]

run scanner.provider.sqltables -a [package name]

run scanner.provider.injection -a [package name]

run scanner.provider.traversal -a [package name]

攻击Broadcast Receivers:

run app.broadcast.info -a [package name]

run app.broadcast.send --component [package name] [component name] --extra [type] [key] [value]

run app.broadcast.sniff --action [action]

攻击Service:

run app.service.info -a [package name]

run app.service.start --action [action] --component [package name] [component name]

run app.service.send [package name] [component name] --msg [what] [arg1] [arg2] --extra [type] [key] [value] --bundle-as-obj

问题记录:

查看apk版本等信息
D:\apptool\adt\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W>aapt.exe dump badging D:\apptool\test.apk

adb无法连接夜神模拟器shell的,多半是版本不同的原因,可尝试将adb.exe改为nox_adb.exe复制到夜神模拟器安装目录下

执行run app.package,list命令无法获取包名,可直接adb获取包名,然后直接使用包名进行后续测试

运行dorzer显示~/.drozer_config file错误时,进行如下操作:

检查JDK是否安装
环境变量是否正确配置(命令行下执行:javajavacjava -version 命令是否返回正常数据)
如果以上项目均正常的话可做如下修复:

建立名为 .drozer_config的文件,文件中添加如下内容:

[executables]
java=C:\Program Files (x86)\Java\jdk1.8.0_144\bin\java.exe
javac=C:\Program Files (x86)\Java\jdk1.8.0_144\bin\javac.exe

即java和javac的路径,保存后存放到C:\Users\XXX\ 目录下,其中XXX为当前用户名目录下,之后重新连接成功

如果在win7下此文件.drozer_config 无法命名,解决办法

先把文件名改为1.drozer_config,然后使用命令 rename  1.drozer_config  .drozer_config 即可

一些常用命令:

adb.exe devices
adb.exe connect 127.0.0.1:62001

adb.exe shell
adb.exe pull /sdcard/xxx_db

adb.exe forward tcp:31415 tcp:31415

drozer.bat console devices

dorzer.bat console connect

【实战分享】安卓app测试的一些记录的更多相关文章

  1. 安卓APP测试验证点总结

    最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑 ...

  2. 安卓APP测试容易忽略的地方

    我们手机APP测试,主要针对的是android和ios两大主流操作系统,总体上来说android手机型号.版本多,bug也多:ios相对bug少.下面就针对Android说一下最容易忽略的测试点吧. ...

  3. 关于《精通移动App测试实战:技术、工具和案例》图书勘误信息

    首先,对由于我们工作的疏忽向<精通移动App测试实战:技术.工具和案例>读者朋友们表示歉意,同时已将这些问题反馈给了出版社编辑同志,再版时将会统一修正: 其次,勘误信息请参看附件pdf文档 ...

  4. 记一些安卓app反编译修改的记录

    2017-12-2209:00:40 好几天没有写过博客了,因为马上要期末考试,只能暂且放下我的小玩物,专心复习我的期末考试. 今天突然想设置一个安卓的栏目,记录下自己从高中就爱玩的一些东西,像刷机呀 ...

  5. 今天看到了一篇文档 app 测试内容记录下来

    1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向 ...

  6. 安卓APP安全测试基础

    学习牛人经验,结合自己的测试,做简单总结: 简介:安卓APP安全测试目前主要覆盖以下方面:1)自身组件安全2)本地敏感数据保护3)web接口安全 一.自身组件安全目前手动.开源或免费工具均能检测此类漏 ...

  7. 使用appium框架测试安卓app时,获取toast弹框文字时,前一步千万不要加time.sleep等等待时间。

    使用appium框架测试安卓app时,如果需要获取toast弹框的文案内容,那么再点击弹框按钮之前,一定记得千万不要加time.sleep()等待时间,否则有延迟,一直获取不到: 获取弹框的代码: m ...

  8. 17道APP测试面试题分享带参考答案

    一.Android四大组件 Android四大基本组件:Activity.BroadcastReceiver广播接收器.ContentProvider内容提供者.Service服务. Activity ...

  9. 《精通移动app测试实战:技术、工具和案例》新书上市

    本书是测试专家.性能测试专家.专业畅销书作者--于涌,多年实战经验的总结,涵盖主流的测试工具,包括众多的测试实例,涵盖单元测试.功能测试.性能测试.UI测试.手游测试.自动化测试.测试用例管理.持续集 ...

随机推荐

  1. 【转载】MySQL常用系统表大全

    转载地址:http://blog.csdn.net/xlxxcc/article/details/51754524 MySQL5.7 默认的模式有:information_schema, 具有 61个 ...

  2. ubuntu-server部署php+mysql运行环境

    1.apt-get install git php5 mysql-server apache2 phpmyadmin 2.sudo ln -s /usr/share/phpmyadmin /var/w ...

  3. 如何使用office2016发布CSDN博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  4. 20169205实验二 Java面向对象程序设计

    20169205实验二 Java面向对象程序设计 实验内容及步骤 (一)单元测试 1.三种代码 伪代码:以简洁的自然语言表明设计步骤: 产品代码:用以实现特定功能的程序或机器语言: 测试代码:用以对产 ...

  5. 那些原生的javascript APIs

    在前端开发的时候,我们往往会使用javascript 框架,使用框架的好处多多,提供的方便的操作函数,类继承机制,MV*等,让我们能够快速开发,然而我们应该清楚这些框架都是基于浏览器原生api的封装, ...

  6. Python 操作 Excel 、txt等文件

    #xlrd 读取excel import xlrd import os #获取文件路径 filepath = os.path.join(os.getcwd(),'user_info') #获取文件名称 ...

  7. SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    一.spring cloud简介 鉴于<史上最简单的Spring Cloud教程>很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEAS ...

  8. CF869C The Intriguing Obsession(组合数学瞎搞,O(n)莫名过)

    — This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, Onii ...

  9. oracle 非sys用户创建新用户 授权后 plsql看不到视图

     问题: oracle 非sys用户创建新用户 授权后  plsql看不到视图 答案: 新用户查询视图时,视图名称前需要添加 视图所属用户. 如user用户新建newUser用户,newUser用户查 ...

  10. C++基本数据类型(转)

    C++中定义了一组表示整数.浮点数.单个字符和布尔值的算术类型(arithmetic type). 另外还定义了一种叫做void的特殊类型.void类型没有对应的值,仅用在有限的一些情况下,通常用作无 ...