打造自己的Android安全测试环境
2018-12-22 08:14:25 Author: mp.weixin.qq.com(查看原文) 阅读量:13 收藏

  • 一、简介

  • 二、组件

  • 三、组件说明

    • 1、Android Training虚拟机环境

    • 2、MobaXterm

    • 3、adb.sh脚本

    • 4、Genymotion

  • 四、设备网络模式

  • 五、模拟器APP运行情况

  • 六、与Open-STF集成

    • 1、Open-STF通过provider方式接入模拟器

    • 2、Open-STF通过adb方式接入模拟器

  • 七、QA

为了方便进行android测试,将android测试的资源集成到一起。

Android测试环境示意图如下:

1、Android Training虚拟机环境

  • 虚拟机文件可以导入VirtualBox,也可以导入Vmware。这里使用Vmware是因为VirtualBox环境bug太多很不稳定,因此使用Vmware。

  • 虚拟机使用PC上的共享文件夹,adb脚本以及测试的apk文件,均放在此目录下。

  • 增加了一个Vwware网卡,桥接到VirtualBox的Hostonly网卡,这是用来打通adb脚本与genymotion上的android环境。

  • 虚拟机2块网卡,一个桥接,另一个连接到Vmnet2,用来打通VitualBox上的Genymotion环境。

2、MobaXterm

  • 配置Terminal使用zsh环境

  • session里指定terminal启动路径及使用windows的环境变量

3、adb.sh脚本

  • 脚本可同时运行在MobaXterm(Widnows)和Linux(Android Training虚拟机)下,运行在Linux下时无法连接到127.0.0.1的模拟器(可以使用nginx打通)。脚本内容包括adb.sh、devices和packages文件以及share、temp文件夹。

  • 脚本功能如下

  • devices文件是用来存放android设备的信息,内容如下,其中DeviceID是adb命令连接的信息。

  • packages文件用来存放apk信息,内容如下:

    其中DirName是对应到app的路径,如下:

  • share目录
    share目录下包含一些公共的文件,比如genymotion ARM扩展包、Burpsuite证书,会把这些文件push到设备的/sdcard/Download/下。

  • temp目录下是从设备上pull过来的内容,会存放在这里。

  • app目录

    以版本区分,每个路径一个版本。

    temp下存放pidcat、logcat输出的日志文件。

4、Genymotion

genymotion安装arm扩展包方法:

  1. adb push E:\Genymotion-ARM-Translation_v1.1.zip /sdcard/Download/

  2. adb shell /system/bin/flash-archive.sh /sdcard/Download/Genymotion-ARM-Translation_v1.1.zip

  3. 重启模拟器

在adb.sh脚本中(b选项)已经集成了该步骤。

略。

1、Open-STF通过provider方式接入模拟器

https://www.cnblogs.com/jinjiangongzuoshi/p/6555696.html,只要adb server这端监听地址可达就可以。两种方式:

a、使用nodaemon方式启动server:

后台运行:

b、重新编译adb包,然后使用命令可以监听所有地址;

2、Open-STF通过adb方式接入模拟器

可直接在STF平台上通过adb connect IP:PORT方式接入设备,如果STF平台不是部署在和模拟器同一台机器上,那么地址是不可达的。

模拟器均监听在127.0.0.1上,为了使STF平台和模拟器可以互通,在windows平台上使用nginx做tcp端口转发即可。

nginx版本需支持stream,示例配置如下:

stream{

    proxy_timeout 30m;

    server{

        #MuMu模拟器

        listen  7555;

        proxy_pass 127.0.0.1:7555;

    }

    server{

        #逍遥模拟器

        listen  21503;

        proxy_pass 127.0.0.1:21503;

    }

    server{

        #逍遥模拟器

        listen  21533;

        proxy_pass 127.0.0.1:21533;

    }

    server{

        #夜神模拟器

        listen  62025;

        proxy_pass 127.0.0.1:62025;

    }

}

1、逍遥模拟器启动的时候会自动启动它的安装路径下的adb server,如果本地已经启动了adb server,这时候会报一些错误。可以先启动逍遥模拟器,后启动adb server,或者将逍遥模拟器和本地adb替换为同一版本。

2、adb -a不生效,一些解决办法:

http://www.cnblogs.com/rxwen/archive/2009/11/26/1713032.html

http://www.it610.com/article/5450684.htm

http://rxwen.blogspot.com/2009/11/adb-for-remote-connections.html

https://android.stackexchange.com/questions/52911/adb-start-server-and-listen-on-all-interfaces


文章来源: https://mp.weixin.qq.com/s?__biz=MzI5NzAzMDg0NA==&mid=2650697963&idx=1&sn=b4fdc1b3764416878aa6fcbd7dbfd2df&chksm=f4b19538c3c61c2e0f1c7b346d67aa2334cc342131f64da834424bb0a9249e888c3e4ae3ca95&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh