⚠️ 免责声明
重要提示:
本教程仅用于技术交流和学习目的,旨在帮助开发者理解Android应用网络通信机制
禁止将本技术用于任何非法用途、商业用途或侵犯他人权益的行为
使用者应对自身行为承担全部法律责任,作者不承担任何因滥用本技术而产生的后果
请遵守相关法律法规和平台用户协议,尊重知识产权和用户隐私
建议在测试环境中进行操作,避免对正式环境造成影响
1.复现环境
雷电模拟器(需具备Root权限)
X音27.3.0版本(特定旧版本)
Root Explorer或MT管理器(文件管理工具)
IDA Pro(反编译工具)
Burp Suite等抓包工具(网络流量分析)
2.复现过程
2.1环境安装好(啊,不知道写什么,安装都不会,那就放弃吧)🤪🤪🤪
如图
2.2 打开网络代理
以Burp为例

查看网络IP
建议第一次使用,需要生成证书;可以选择,直接导出证书,然后去安装,哪种方法,结果都一样
好像跳过,安装也可以抓包

添加网络监听端口
Burp设置好后,回到模拟器中将网络设置为代理模式。

如果现在如果现在打开X音会显示网络错误
因为检测到了开启了网络代理,所以内部软件直接将你拒绝获取API
软件启动的流程:打开X音->循环检测->发送视频 在循环检测这一部分,即便你中途关掉代理再打开也会被拒绝。
现在我们就要将该循环检测的软件设置为0输出,就是让检测失效,即便检测到了不返回数据检测结果,这样就会被X音认为是正常网络环境,从而发送API
2.3 反编译libsscronet.so(关键一步)
那libsscronet.so 软件在哪里?
需要用到解压工具对apk进行解压提取,路径如下
xx.apk\lib\arm64-v8a

把这个软件提取出来,使用IDA Pro(反编译工具) 对libsscronet.so软件进行反编译

注意,一定要等它编译完再进行修改

等左下角,停止跳动时,就完成编译了,可以耐心等待一下

向下搜索字符串,会有几个相同的,结果在下图

找到这个以后按F5 进行编辑

return 1LL 这里反编译出来一个返回参数
需要修改三个地方,简而言之,就是将return 1LL ->return 0LL
用正常去修改是无效的,需要选中->点击编辑->补丁程序->更改单词

将值改为0x20->0x0000

还没结束,可以从上图看到它还返回了几个函数,但是得点击这几个返回的函数发现他们都是指向另一个函数的;return sub_XXXXXX ,一随机双击sub_XXXXXX一个函数,就可以跳转到,如下图

向下滑,眼尖的已经发现了,return 1LL ,还是一样的操作,将其更改为return 0LL
然后仔细检查一下,在26行,还有一个return 2LL ,将它也改为return 0LL
更改完后,选择补丁程序->将修改程序应用于输入文件 这是保存操作


点确定
2.4 覆盖文件
将libsscronet.so 拖进模拟器

路径在上图
在覆盖文件前,需要将X音的lib/arm64的权限修改为用户可写

将权限修改好后,把我们反编译好的文件libsscronet.so,覆盖进去

完成,现在抓包就不会出现网络错误的问题。
3.开始抓包

可以看到,已经开始拦截了,因为X音用的好像是预加载视频。
所以抓到的可能会是几十个视频的API