日期: 2024.06.28
声明:文章内容仅供学习参考,严禁用于商业用途,否则由此产生一切后果与作者无关,如有侵权请联系作者进行删除

app 版本:30.8.4

firda 版本:12.4.8

ida版本: 7.7

010 Editor

平台:andriod arm64-v8a
在这里插入图片描述
拿到一个新的app,首先需要的是抓包,才能找到需要对应分析的接口,以及接口中需要什么加密,该app采用一些常规的方式进行抓包时,发现抓不到包。一般遇到这种情况,我们就有两种方案:

  1. 通过google搜索,看看是否存在前人对该app进行一定的研究;

  2. 在1没有的基础下,就需要自己从头开始研究,通过日志 插桩等方式;

很幸运,该app的分析在搜索引擎上简直五花八门,可以定位到同系列自研通信协议的libsscronet.so中,也有不少的hook_sscronet.js存在,也确实可用,但后续需要对该app进行解密分析,太多的frida代码有点不舒服,故这里带来除去frida注入的方式绕过的第二方案。

通过站在前人的肩膀上,我们已知通信协议libsscronet.so中,存在判断逻辑决定通信方式,其中主要对应的关键词为 :

1.VerifyCert

2.HandleVerifyResult

我们拿到libsscronet.so 后,使用ida打开;反编译成功后,shift+f12,打开ida的全局字符串搜索工具,对关键词位置进行定位;
在这里插入图片描述
通过跟踪两个关键词和前人经验,得三处需要修改返回值的地方,把三处return 的值修改为0。
在这里插入图片描述
下面就是如何对该三处地方进行修改,这里以其中一处HandleVerifyResult,作为例子,首先来到该位置的return处,返回其汇编代码,可知:

return 1LL 对应的汇编代码为:

MOV W0, #1

如图:
在这里插入图片描述
因为我们是要修改so文件,so文件在有限的能打开的阅读器中是以16进制展现的,这里的阅读器使用的是010Editor。

这里我们利用网站:https://armconverter.com/,指令16进制转换网站。

20 00 80 52 修改为 00 00 80 52。
在这里插入图片描述
通过ida view试图定位需要修改的位置:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
依次修改三处位置后保存,这样我们就把so修改好了。

接下来就是把so文件通过adb 工具 push进app的内存中;

1.首先把so文件移入临时文件:

adb push libsscronet.so /data/local/tmp

2.赋予so高级权限,可以移动到内存中然后copy到app内存中:

chmod 777 libsscronet.so

cp libsscronet.so

/data/app/com.xxx.xxx-4s7MfVkLQU1vSwdYYh9ccw==/lib/arm64

3.赋予权限
chgrp system libsscronet.so
chown system libsscronet.so
chmod 777 libsscronet.so
4. 重启app,就可以愉快滴抓包啦。

公众号: jqiu爬虫分析日记,后续会同步更新打通tiktok相关协议等等