全面的 APP 测试模拟器搭建指南:工具介绍与详细步骤
这只是原文的抄袭,本文主要讲解如何搭建一个综合的APP测试模拟器,这篇文章比较基础,请大家略过,本次介绍的工具如下:雷电模拟器
-debug.apk 模拟器专用掩码版本
-v1.8.3-6552--.zip 不是最新版本
-proxy-4.2.5-win64 用作上游代理
对于下游代理
MT .15.2.apk 可选
.1.2.apk/.8.-v8a.apk 可以安装
-v0.5.2-120-.zip用于隐藏root,这里使用的版本太低
HMA-V3.2.apk黑名单和白名单
frida--16.2.1--arm64 测试必备
.apk 寄生虫
.apk 基本上没用
算法助手 2.1.2.apk 逆向工程必备
开发者助手.apk是后期逆向的必备工具
核心破解版.apk
开发助手.apk
.9.9.9.apk 用处不大,大家有自己的看法
-v1.9.zip解决证书无法导入系统信任目录的问题
这里有些工具在测试中用不到,但如果涉及到逆向工程,这些工具还是有用的。这次讲解主要体现在应用层,比如最常见的一些app加固和抓包问题解决方法,应用层加密问题及常见问题
有人可能会疑惑,模拟器本身就有root了,为什么还需要单独安装mask呢?其实安装mask的目的是为了使用一些需要mask才能使用的插件,而且使用mask也能更好的控制root权限
说的太多了,关于逆向工程,大家可以去看专栏,我表哥正吉的《逆向工程》很有名。
首先安装模拟器,不建议装在虚拟机里,直接新建一个 9的模拟器就行,为什么是 9呢?因为低版本模拟器很多插件都不能用,而且 9以上对data目录的插件也有很多特殊的权限限制,导致很多很好的框架在申请data目录权限的时候经常会出问题,所以建议大家直接使用 9
保存之后重启就行了,接下来安装mask,直接拖进去也可以,也可以用adb,安装完成后直接授予root权限然后修复就可以了。
重启后再次打开掩码会提示检测到其他su文件,直接删除就行了。
点击右上角的设置按钮,进行一些设置
可以先修改一下掩码的包名,有些app基础检测可能会检测系统安装包名(不修改也是可以的,后期可以隐藏在黑白名单里)
https://i2.wp.com/imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9BSmExUXZBQVd5MXBkWEpBNmliSTM2Qmg0c3k4UWlhOXNYZnVvVUxkbFh6RjZxeTdraWFsSzRUTDdwT0RNdGdpYTd6ZFVCSHMxemtsZFpZNXg2MUdyV0Jtb2cvNjQw?x-oss-process=image/format,png
然后软件会自动关闭,只需等待即可。接下来,回到主页-设置,打开按钮
重启之后就生效了,接下来安装lsp框架,这个lsp框架是压缩包的形式,安装在掩码里,所以我们可以先adb push到模拟器的目录下,也可以使用迅雷模拟器的共享文件功能,把文件存进去,存的目录就是模拟器目录里
只需将您需要安装的所有文件一次性拖入其中即可。此文件位于模拟器目录中。打开掩码并选择本地安装。
重启后就好了,如果重启失败,请从头开始
直接安装.apk,安装的目的是为了lsp框架安装后,有些模拟器会出现一些玄学问题,比如任务栏找不到框架,无法创建快捷方式等,不过安装这个寄生虫会影响检测,这个后面会卸载,所以这里就简单介绍一下
毫无疑问,所有apk都可以直接安装。一般来说,框架的模块都可以直接安装。有些框架有GUI,会有单独的入口。有些框架只能在lsp中查看框架模块。zip压缩包中的模块一般在掩码中。这种情况下就不一一演示安装步骤了,只展示部署后的样子。
与核心破解模块类似,用于绕过部分APP签名认证,需经过系统框架检查
简单介绍一下安装的apk和插件的作用
MT是一款史诗级的文件管理器,安装后可以赋予 root 权限,会员只需要 200+ 即可获得永久会员,MT项目已经顺利运行了 N 年(我记得我高中做开发者的时候就用过这个),所以也建议大家付费获取知识,支持开发者。这款工具可以说是逆向神器了,可以打开常规软件的 dual,绕过签名,逆向 dex,记录等等,非常好用。
.1.2.apk/.8.-v8a.apk,相信大家都用过科学上网手机版,这两个工具的原理和科学上网差不多,很多都加固了HTTP代理检测,当遇到难以绕过的情况时,我们就可以使用这两个工具来绕过代理。由于工具支持协议包监控,所以还可以设置下游代理,只需要设置下游代理为burp就可以完成代理抓包,因此三者结合使用往往能起到意想不到的效果(京东APP就可以用此方法抓包);不过需要注意的是.1.2已经停止维护多年了,我的 13手机不支持安装,所以只能使用v2ary
这个工具可以部署在mask模块中,当mask模块的隐藏功能开启后,会影响app的测试,但是这个插件完美的解决了这个问题,设置了xxx应用的隐藏后,我们不需要真的开启隐藏功能,它就会帮我们隐藏root,而且不会影响我们的测试(推特app就可以用这个方法绕过root检测)。这里笔者使用的mask版本有点低,建议使用高版本,不然会很不愉快
HMA-V3.2 这个工具是apk逆向的必备工具,为什么这么说呢?因为这个插件可以实现黑名单和白名单功能,顾名思义这个工具可以给app设置黑名单和白名单,比如设置黑名单,把一些app排除在外,比如屏蔽,lsp相关框架,root组件被隐藏,这样加固后的app就查询不到相关的包名或者文件名,从而实现root和检测绕过(比如银行app就可以通过这种方式绕过root/检测)
首先需要在lsp中启用模块,并勾选对应需要隐藏的应用
然后创建一个黑名单模板,黑名单就是选择哪些包要隐藏,隐藏的包名是所有mask相关的插件,LSP相关的插件,包括mask和LSP框架本身,都选中即可。
https://cdn.nlark.com/lark/0/2018/png/46940/1538131602223-e19c423c-5e02-4277-ac7f-bf24d90413b7.png
然后回到应用配置,重新选择你要应用的app,比如我的icu,这个app有和root的检测,我需要单独绕过,所以勾选这个,然后设置工作模式为黑名单,选择我们的,就可以了
在测试的时候发现我们单独安装的lsp.apk无论如何都隐藏不了,于是我们卸载了单独安装的lsp安装包(不是lsp框架,是寄生虫安装包),但是还是有点下图是黑白名单内置检测,完全通过
但 momo 测试发现了它们全部
以下为实物手机效果
从这里可以看出,如果真要做移动测试,还是得买手机,模拟器有太多玄学问题。
frida--16.2.1--arm64是测试必不可少的,无需多言
建议安装虚拟环境
<p><pre class="code-snippet__js" data-lang="properties"> <code><span class="code-snippet_outer"><span class="code-snippet__attr">pip3</span> <span class="code-snippet__string">install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">workon</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">mkvirtualenv</span> <span class="code-snippet__string">frida16</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">pip3</span> <span class="code-snippet__string">install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple</span></span></code></pre></p>
将frida 版本复制到模拟器中,由于笔者开了多个环境,所以需要选择adb设备
<p><pre class="code-snippet__js" data-lang="nginx"> <code><span class="code-snippet_outer"><span class="code-snippet__attribute">adb</span> devices</span></code></pre></p>
<p><pre class="code-snippet__js" data-lang="perl"> <code><span class="code-snippet_outer">adb -<span class="code-snippet__keyword">s</span> emulator-<span class="code-snippet__number">5558</span><span class="code-snippet__keyword">push</span> frida-server-<span class="code-snippet__number">16.2</span>.<span class="code-snippet__number">1</span>-android-x86_64 /data/<span class="code-snippet__keyword">local</span>/tmp</span></code></pre></p>
哦,忘记说了,frida版本和系统架构需要一一对应,不然会出现下面的场景
如果你只有一台设备,那么直接使用adb shell即可;将frida复制到手机的tmp目录下,授予权限,就可以开心的玩了
其实我在这里的时候还遇到了另外一个问题,这里记录一下;之前我安装过 和 模块,但是这里的版本可能比较低,模块的版本也比较低,导致出现问题的时候在执行 adb shell 的时候,会提示没有权限。这是因为模块会把 ro.adb. 改成 1,也就是开启 adb 按键验证,所以会出现无法连接 adb 的问题,这种情况可以把 mask 改成 fox ,或者暂时关闭模块;其实在测试的时候,我的实体手机上并没有出现这个问题,这里只是作为提醒而已(也可能是这个小问题在 1 版本之后已经修复了)
框架最早的必备工具之一,现在是否已经太旧而无用了?
强烈推荐算法助手2.1.2,这个工具有很多神奇的功能,比如:算法自吐槽、监控、堆栈监控、root/代理检测绕过等诸多功能
开发者助手强烈推荐这款资源监控工具,可以监控资源调用情况,页面图片及文字识别等。
这个插件主要功能是将apk安装到手机端,如果原版apk经过修改打包两次,可能会因为签名原因导致无法直接安装,不过如果不想卸载原版apk又不想丢失数据的话,可以试试这个。
开发助手,与开发者助手相辅相成
页:
[1]