首页
社区
课程
招聘
某蓝色音乐软件——会员音乐永久免费听
发表于: 2024-12-31 16:31 3268

某蓝色音乐软件——会员音乐永久免费听

2024-12-31 16:31
3268

1、最近想听陈奕迅的《十年》,就打开了我心心念念的某蓝色音乐软件,结果,没想到需要会员,没有会员还听不了全曲,于是我急了,就有了今天这个文章。

2、这里我使用的是某蓝色音乐软件的大字版

image.png

3、下载好之后,还是先拿出我们的神器——算法助手,对其进行分析

4、之后我们正常启动app,之后操作一下,然后就可以在我们算法助手的日志中进行查看详情,因为日志比较多,这里我直接搜索的蓝色软件右上角的时间,这里筛选出来后,找他的堆栈信息。

5、查了一下,发现这个蓝色软件也没有加壳,也就没有脱壳的苦恼了,所以我这里直接把它丢进jadx中进行分析,找上面的堆栈里的类。

6、我们进入第一个类里面看看他的代码详情。

7、根据上图中的代码,我们可以大致看出来这个f是重要参数,我们跟进一下,看看这个f是个什么东西,我们发现当xxx.xxx.xxx.a.f27222a.f等于7的时候全日听,当它等于1的时候也全日听。

Snipaste_2024-12-31_16-19-24.jpg

8、所以我们这里先hook一下f试试,frida启动!!

1
2
3
4
5
6
7
8
9
Java.perform(function () {
    let a = Java.use("com.xxxx.xxxx.freemode.a");
    a["f"].implementation = function () {
        console.log(`a.f is called`);
        let result = this["f"]();
        console.log(`a.f result=${result}`);
        return result;
    };
});

9、根据上面分析的代码逻辑,这里我们修改一下hook代码。

1
2
3
4
5
6
7
8
9
Java.perform(function () {
    let a = Java.use("com.xxxx.xxxxx.freemode.a");
    a["f"].implementation = function () {
        console.log(`a.f is called`);
        let result = this["f"]();
        console.log(`a.f result=${result}`);
        return 1;
    };
});

10、修改之后,重新加载脚本后,我们发现获得了全天免费听歌。

11、说明我们修改的这个地方是对的,接下来,我们要持久化,因为这个蓝色软件没加壳,所以我们直接修改它的smali源码,这里我们先用apktool进行反编译解包。

12、然后我们找一下smali代码里f所在的位置,这里我们定位到代码在2657行。

13、定位到代码位置后,我们直接进行修改。未修改前代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2563 .method public f()I
2564     .locals 2
2565
2566     .line 738
2567     sget-object v0, Lcom/xxxx/xxxx/freemode/a;->e:Lcom/xxxx/xxxx/freemode/b/e;
2568
2569     instance-of v1, v0, Lcom/xxxx/xxxx/freemode/b/b;
2570
2571     if-eqz v1, :cond_0
2572
2573     const/4 v0, 0x1
2574
2575     return v0
2576
2577     .line 740
2578     :cond_0
2579     instance-of v0, v0, Lcom/xxxx/xxxx/freemode/b/d;
2580
2581     if-eqz v0, :cond_1
2582
2583     const/4 v0, 0x7
2584
2585     return v0
2586
2587     :cond_1
2588     const/4 v0, 0x0
2589
2590     return v0
2591 .end method

14、因为根据前面分析,我们需要让它永远返回1或者7,所以,修改后的代码如下:

1
2
3
4
5
6
7
2563 .method public f()I
2564     .locals 2
2565
2566     const/4 v0, 0x1
2567    
2568     return v0
2569 .end method

15、修改完成后,进行重打包

16、打完包之后进行重签名,这里先生成一个签名:keytool -genkeypair -v -keystore sectest.keystore -storetype PKCS12 -keyalg RSA -keysize 2048 -validity 36500 -alias sectest

17、然后进行重签名:apksigner sign --ks sectest.keystore --ks-key-alias sectest xxxx_2.4.1-sec.apk,并且进行安装。

18、安装完成后,我们进入app查看,发现我们获得了免费听专属权益,会员歌曲之类的都能听了。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2024-12-31 16:40 被scllqk编辑 ,原因: 格式错误
收藏
免费 6
支持
分享
最新回复 (4)
雪    币: 224
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分析及分享好人一生平平安安
2025-2-7 11:19
0
雪    币: 989
活跃值: (756)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分析和分享。收藏
2025-2-8 23:02
0
雪    币: 28
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
感谢分析及分享
2025-5-13 05:37
0
雪    币: 1349
活跃值: (4213)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
5
求PC端
2025-5-13 08:43
0
游客
登录 | 注册 方可回帖
返回