听说你没有测试机?

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
图片翻译,图片翻译 100张
语种识别,语种识别 100万字符
简介: apk测试环境的搭建、部分问题的解决

本次算是抄板凳,此篇文章主要目的是讲解如何搭建一个比较全面的APP测试模拟器,此次水文较为基础,大佬请绕过,本次介绍的工具大体如下:

  1. 雷电模拟器ldplayer9_ld_999_ld windows_x64
  2. magiskapp-debug.apk 模拟器专用面具版本
  3. LSPosed-v1.8.3-6552-zygisk-release.zip 并非最新版
  4. charles-proxy-4.2.5-win64 做socks5上游代理用
  5. Burpsuite 做下游代理用
  6. MT管理器_2.11.8.apk 可选
  7. Postern_3.1.2.apk/v2rayNG_1.8.19_arm64-v8a.apk 安装一个即可
  8. Shamiko-v1.0.1-300-release.zip   隐藏root用
  9. HMA-V3.2.apk  黑白名单
  10. frida-server-16.2.1-android-arm64  安卓测试必备
  11. Lsposed.apk  lsposed桌面显示用
  12. JustTrustMe.apk  基本没啥用了
  13. 算法助手2.1.2.apk  后期安卓逆向必备神器
  14. 开发者助手.apk  后期安卓逆向必备神器
  15. HttpCanary_9.9.9.9.apk  用处不大了,仁者见仁吧
  16. Move_Certificates-v1.9.zip  解决证书无法导入到系统信任目录问题


这里面的工具,一部分在测试中是用不到的,但是如果涉及逆向的话,这些工具就都有用处了,本次讲解主要体现在应用层,比如最常见的解决一些app加固抓包问题、sslping问题以及常问的应用层加密问题

可能会有人疑惑,模拟器自身具备root,为什么还需要单独安装面具?其实安装面具的目的是为了使用一些面具才能使用的插件,使用面具也能更好的控制root权限

话说的有点多了,安卓逆向大家可以前往52pojie专栏,正己表哥的《安卓逆向这档事》可是很出名的哦

首先安装雷电模拟器,不建议安装在虚拟机里,新建一个安卓9的安卓模拟器就行,为什么是安卓9呢?因为低版本的模拟器有很多插件都用不了,而安卓9以上对data目录又有特殊的权限限制,导致很多好的xposed框架在申请data目录权限的时候常常出现问题,所以推荐大家直接使用安卓9


图片.png

图片.png

图片.png

保存后重新启动即可,接下来安装面具,可以直接拖进去,也可以adb install,安装完毕后,直接赋予root权限,然后修复即可

图片.png

图片.png

图片.png

图片.png

重新启动后,再次打开面具,会提示检测到其他su文件,直接x掉就行

图片.png

点击右上角设置按钮,需要进行一些设置

图片.png

可以先修改一下面具的包名,一些app基础检测可能会检测到系统的安装包名(不修改也行,后期黑白名单对其隐藏即可)

图片.png

图片.png

图片.png

而后会自动关闭软件,等等就好,接下来继续回到主页-设置,打开Zygisk按钮

图片.png


图片.png

图片.png

重启后生效,接下来安装lsp框架,这个lsp框架是压缩包形式,安装到面具里面的,所以我们可以先adb push到模拟器的目录里,也可以利用雷电模拟器的共享文件功能将文件存放进去,存放进去的目录是在模拟器的picture目录


图片.png

图片.png

图片.png

把需要安装的一口气全拽进去就行,这个文件就在模拟器的picture目录,打开面具,选择本地安装

图片.png

图片.png

图片.png

图片.png

重启后就好了,如果重启不了了,请重新再从头来一次

图片.png

直接把Lsposed.apk安装,安装的目的是因为lsp框架安装后,有的模拟器会出现玄学问题,比如说找不到任务栏里的框架

图片.png

图片.png

不疑有他,所有apk的都可以直接安装进去,一般xposed框架的模块都是apk可以直接安装的,有些框架是有GUI的,会有单独的入口,有些xposed框架只能在lsp框架的模块才能看到,而zip压缩包的模块一般都是面具里面的,本次案例安装步骤不在一一演示,直接给大家看部署后的样子

图片.png

类似核心破解模块,是用来饶过一些app的签名认证的,需要勾选系统框架

图片.png

图片.png

图片.png

简单介绍一下安装的apk、插件的功能

MT管理器,这是一款史诗级文件管理器,安装后可以给root权限,会员仅需200+即可获取永久会员,而MT管理器项目已经平稳的运行了N年了(笔者记得笔者高中的时候就用过这个),所以也推荐大家知识付费,支持一下开发大佬们,该工具可谓是逆向神器,常规的软件双开、签名绕过、dex逆向、Activity记录等,好用到爆

图片.png

Postern_3.1.2.apk/v2rayNG_1.8.19_arm64-v8a.apk   ,相信大家都用过移动端的科学上网,这两款工具的原理与科学上网类似,很多加固做了HTTP代理检测,难以绕过的时候,我们就可以利用这两款工具走socks5代理进行绕过,而由于charles工具支持socks5协议的数据包监听,而charles同样可以设置下游代理,只需要将下游代理设置成burp即可完成代理抓包,所以三者结合起来往往能起到意想不到的效果(JD  APP可以利用此方式进行抓包);不过需要注意的是,Postern_3.1.2已经停止维护多年了,笔者的安卓13手机不支持安装了,所以只能使用v2ary

图片.png

图片.png


Shamiko-v1.0.1   该工具可以部署在面具模块里,面具模块自带的隐藏Magisk功能开启后,会影响app的测试,但是这款插件完美的解决了这个问题,在设置了xxx应用的隐藏后,我们不需要真的开启隐藏功能,Shamiko-v1.0.1就会帮助我们隐藏root检测,同时并不会影响我们测试(推特app可以利用此方式绕过root检测)

图片.png

图片.png

HMA-V3.2  此工具堪称apk逆向必备神器,为什么这么说呢,因为此插件可以实现黑白名单功能,顾名思义,就是此工具可以针对app设置黑白名单,例如设置黑名单,将部分app,如:面具、lsp相关框架、root组件对其隐藏,那么加固了个app就无法查询到相关的包名或文件名,从而实现一个root、框架的检测(例如某银行app可以利用此方法绕过root/框架检测)

首先需要在lsp里面把模块启用,并勾选对应需要隐藏的app

图片.png

而后新建一个黑名单的模版,黑名单就是选择哪个包,哪个包就不可见;选中不可见的包名为所有的面具相关插件。lsp相关插件,包括面具和lsp框架本身,全给他选中即可

图片.png

而后返回到应用配置,再次选择想要应用的app,比如说我的icu.nillptr这个app对框架和root有检测我需要单独绕过,就把这个勾选,然后工作模式为黑名单,选择我们的模版,即可

图片.png

在测试的时候发现,我们单独安装的lsp.apk无论如何也隐藏不起来,所以又把单独安装的lsp安装包给卸载了(卸载的不是lsp框架),但是其实还是有点问题,下图为黑白名单自带检测,是全过的


图片.png

但是momo全查出来了

图片.png

以下为实体手机效果

图片.png

图片.png

由此可见,真搞移动端测试还是得买个手机,模拟器的玄学问题太多了


frida-server-16.2.1-android-arm64  安卓测试必备,自然不必多说

推荐安装虚拟环境

pip3 install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple

workon

mkvirtualenv frida16

pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

图片.png

图片.png

把frida安卓版的frida拷贝到模拟器,由于笔者开启了多个环境,所以需要选择adb设备

adb devices

图片.png

adb -s emulator-5558  push frida-server-16.2.1-android-x86_64 /data/local/tmp

图片.png

对了,忘记说了,frida版本与系统架构需要一一对应,否则就会发生下面 的场景

图片.png

如果大家只有一台设备,那直接adb shell即可;将frida拷贝到安卓手机的tmp目录后,再赋予权限,即可快乐的玩耍了

图片.png

图片.png

其实在这里的时候,笔者遇到了另一个问题,在这里记录一下;笔者前面安装了Magisk和Shamiko模块,而这里的Magisk可能版本比较低,Shamiko模块的版本也比较低,这就导致了在进行adb shell的时候,会提示unauthorized,也就是没有权限,这是因为Shamiko模块会把ro.adb.secure变成1,也就是开启adb密钥校验,因此会出现无法连接adb的问题,那么此时可以将面具换成狐狸,或者临时关闭Shamiko模块;实际上在测试的时候,笔者的实体手机是不会出现这个问题的,在这里仅作为提醒

Lsposed  lsposed.apk单独安装这个的目的其实是因为lsp框架部分模拟器没有办法创建快捷方式,所以单独安装一个孪生,但是这个孪生的app在模拟器里可能会被检测到,所以大家酌情处理吧


JustTrustMe 最早的xposed框架必备神器之一,现在属于廉颇老矣,尚能饭否?

图片.png

算法助手2.1.2 着重推荐,该工具自带很多神奇功能,如:算法自吐、activity监听、堆栈监听、root/代理检测绕过等诸多功能

图片.png

开发者助手 着重推荐,资源监测神器,可以监测到资源调用情况、页面图片文字识别等

图片.png

核心破解  该插件主要功能其实就是移动端安装apk后,若是对原始apk改动二次封包后可能由于签名的原因无法直接安装,但是又不想卸载原始的apk,不想丢数据,就可以利用这个尝试一下

图片.png

开发助手 ,与开发者助手可以互补

图片.png

HttpCanary_9.9.9.9  小黄鸟,但是现在用的场景少了

图片.png

Move_Certificates-v1.9.zip  解决证书无法导入到系统信任目录问题,该插件其实和本次无关,但是笔者在刷机安卓13的时候,发现system挂载问题无法解决,无法将信任证书直接导入到系统证书根目录下;而此插件完美的解决了此问题,只需要按照常规操作将证书安装到个人目录下,然后重启手机,证书就会自动转换成.0格式,并自动迁移到系统证书根目录下;除了这个插件外,有的时候也可以用MT管理器进行迁移,但是笔者的手机有玄学问题,就是迁移过去的证书,在手机重启后就消失了,所以还是推荐这个工具,比较好用


所以此处会为大家进行一个简单的演示,演示该工具如何使用,首先以burp证书为例,将burp证书导入到手机模拟器的picture目录或者其他能访问到的目录


图片.png

大家都知道,安卓7以上,系统不会对用户安装的证书信任了,所以如果直接安装的话,设置代理会导致断网的,但是使用这个插件我们可以完美的解决这个问题,我们只需要直接安装就行

图片.png

图片.png

此时证书安装成功

图片.png

此时系统没有bp的信任证书

图片.png

直接重启模拟器,我们发现,证书已经被自动迁移到系统信任目录了

图片.png

所有的证书都可以通过这个方式装载,接下来演示一下常规操作如何将证书迁移进去

众所周知,系统根目录信任证书格式是.0的,所以我们需要借助ssl计算证书的hash值,我们可以直接利用kali转换

使用openssl将.der转换为.pem格式,windows中没有openssl.exe工具的可以在在linux完成

openssl x509 -inform DER -in burp.der -out burp.pem

使用openssl 获取有效的系统证书文件名

openssl x509 -inform PEM -subject_hash_old -in burp.pem

图片.png

使用openssl 将证书文件转换为有效的系统证书文件


# der格式:

openssl x509 -inform DER -in burp.der -out 9a5ba575.0

# cer格式:

openssl x509 -inform DER -text -in xxx.cer > 9a5ba575.0

# pem格式:

openssl x509 -inform PEM -text -in xxx.pem > 9a5ba575.0

adb push 9a5ba575.0 /system/etc/security/cacerts/  # 将证书导入到系统证书根路径


甚至大家可以直接用MT管理器把证书迁移进去,无论怎么做都可以;

上面提到了,部分app加固后没有办法利用http代理抓包,可以使用socks5代理,而socks5代理可以用charles设置或者yakit(以前不知道yakit支持socks5代理,是我输了)

图片.png

图片.png

模拟器安装证书按照上面的方法,可以导出pem格式证书,直接安装到模拟器然后重启就行了,也可以自己改个名字

图片.png

图片.png

yak真是太强了

图片.png

同样的,yak也可以继续设置下游代理,比如说再把包转给bp

图片.png

TQL,啥也不说了,以后终于不用用盗版的charles了

图片.png

本来还想演示一下charles的,但是现在没有必要了,玩法都是一样的,就不做演示了


相关文章
|
6月前
|
域名解析 关系型数据库 MySQL
怎样用自己电脑搭建网络服务器!不花一分钱
怎样用自己电脑搭建网络服务器!不花一分钱
189 1
|
3月前
|
安全 Linux Windows
网工小白,一定要焊死在电脑上的6款工具!
网工小白,一定要焊死在电脑上的6款工具!
|
虚拟化 数据安全/隐私保护 网络架构
网工小白升级打怪篇(一)实验环境部署(下)
网工小白升级打怪篇(一)实验环境部署
173 1
网工小白升级打怪篇(一)实验环境部署(下)
|
消息中间件 安全 NoSQL
关于学生机的使用攻略和个人感想
学生机的使用攻略和个人感想
关于学生机的使用攻略和个人感想
|
架构师 Java C语言
学生机初学者感受
无摘要,只发表自生真实感受
学生机初学者感受
|
消息中间件 NoSQL Oracle
学生机使用心得
本人最近两周利用阿里云学生机对云服务器的学习总结
学生机使用心得
|
Java 应用服务中间件 测试技术
学生机学习
使用两周学生机我的学习总结
学生机学习
|
弹性计算 PHP
关于使用了两天阿里云学生机的感受
关于使用了两天阿里云学生机的感受
关于使用了两天阿里云学生机的感受
|
Devops Shell 网络安全