长亭百川云 - 文章详情

打造自己的Android安全测试环境

安全实践

164

2024-07-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选项)已经集成了该步骤。

===

四、设备网络模式

五、模拟器APP运行情况

略。

六、与Open-STF集成

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

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

a、使用nodaemon方式启动server:

adb nodaemon server -a

后台运行:

adb nodaemon server -a &

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

adb -a server

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``;

    }

}

七、QA

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

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2