查看界面控件

查看界面控件的作用

原生方式开发的app,使用Java和C++开发。加密部分使用Java和C++。

H5开发的app,使用Webview控件加载网页,加密用的是JS。

app自动化测试,需要知道控件的id,或者说需要定位到控件。

使用uiautomatorviewer.bat查看

这个工具是Android Studio安装时SDK自带的,在SDK目录下/tools/bin目录。

auto1

auto2

点击左上角菜单栏按钮,将屏幕截图到软件,此时可以查看控件。

使用Appium查看

APPium官网:http://appium.io/

下载打开,IP地址和端口号默认即可。

然后进入配置界面,JDK一般会自动检测,我们需要手动配置SDK目录。

APPium1

APPium2

禁止截屏

如果遇到某些软件禁止截屏,用上述方法就无法获取控件信息了。

这时,需要我们去除禁止截屏功能:

1
2
3
4
5
//方法一:hook阻止下列函数执行
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

//方法二:hook执行下列函数命令清除标志
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);

其中,方法一的代码可能是明文,也可能通过反射加密混淆,或者放在so层。

后续安卓逆向部分 会详细讲解。