1234下一页
返回列表 发新帖

南风天气 Skypulse 高级功能解锁教程通用版

[复制链接]

4

主题

211

回帖

882

积分

高中生

Rank: 4

金币
590
好评
1
信誉
101

考神

发表于 2026-8-13 15:17:18 | 显示全部楼层 | 阅读模式  来自 湖北
本帖最后由 万里无云 于 2026-8-13 19:34 编辑


南风天气 Skypulse 高级功能解锁指北
适用于 v3.2.2X ~ 当前 v3.6.51(1162) 版本


应用介绍


SkyPulse 是一款基于第三方彩云天气 Api 及小米天气 Api 的安卓天气查询类应用程序,轻量体积,无广告,界面简洁易用。当前软件基础功能免费,付费可解锁更多高级功能。


应用信息


本应用为 GitHub 开源应用(会员核心逻辑代码为私有),项目地址为:qnmlgbd250/weather-none

包名com.skypulse.weather
大小约 6 MB
适配系统Android 8 ~ 15



第一阶段:早期无限制免费版


该应用早期是完全开源免费的,功能上没有任何任何限制。无意间存档了该阶段相对较新的版本 (v3.2.17r791),有需要需要的可以自取:蓝奏云(密码:1lls,PC模式打开)


第二阶段:本地激活码验证


后续不知道从哪个版本开始,作者将原有免费功能添加限制作为付费高级功能。直至 v3.5.43(1054) 版本,都使用同同一套机器码+本地比对激活码的方式进行激活。当输入的激活码与本地计算的激活码匹配后,应用将写入激活信息。

该阶段可以通过设备码生成合法激活码的方式进行激活。我们可以通过寻找机器码生成逻辑的方法快速定位到目标类名:

游客,如果您要查看本帖隐藏内容请回复


现在已经找到关键类,接下来就是找到关键方法,进入后右上角菜单 "转为Java",便于查看。整理一下就可以得到类似下面的核心代码:

  1. package l2;

  2. public final class l {
  3.     private final Context a;
  4.    
  5.     private final SharedPreferences l() {
  6.         return (SharedPreferences) this.b.getValue();
  7.     }

  8.     private final boolean n() {
  9.         return l().getBoolean("membership_premium", false);
  10.     }

  11.     public final a h(String str) {
  12.         o.g(str, "code");
  13.         if (((Boolean) this.c.getValue()).booleanValue()) {
  14.             return a.d;
  15.         }
  16.         String upperCase = m.N0(m.z(str, "-", "", false, 4, (Object) null))
  17.                                 .toString().toUpperCase(Locale.ROOT);
  18.         o.f(upperCase, "toUpperCase(...)");
  19.         if (upperCase.length() != 8) {
  20.             return a.b;
  21.         }
  22.         if (!m.s(upperCase, e.e(k()), true)) {
  23.             return a.b;
  24.         }
  25.         l().edit().putBoolean("membership_premium", true)
  26.            .putLong("membership_activated_at", System.currentTimeMillis()).commit();
  27.         this.c.setValue(Boolean.TRUE);
  28.         return a.a;
  29.     }

  30.     public final long i() {
  31.         return l().getLong("membership_activated_at", 0L);
  32.     }
  33. }
复制代码


接下来的思路就非常简单了,最简单的将 h(String str) 的几个 if 判断删除,就可以完全绕过验证,直接加密写入激活配置信息。

当然也可以进行进阶的修改。深入分析最后一个 if 判断,可以得知以下信息:

  1. !m.s(upperCase, e.e(k()), true) // 用于比对用户输入是否与激活码一致
  2. upperCase  // 根据前面几个 if 判断,可以得知其为用户输入的激活码
  3. e.e(k())     // 与用户输入的相对,那么这个的值就是真正的激活码
  4. k()          // 这个就是应用生成的机器码
复制代码

观察到 a: Context,我们可以通过在最后一个判断 return 之前插入构造出的下列方法将其变成一个注册机:
  1. Toast.makeText(this.a, e.e(upperCase), Toast.LENGTH_SHORT).show();
复制代码




具体的 Smali 代码可以通过 NP 管理器从 Java 自动生成。这里就不做赘述。当然也可以参考完整修改 v3.4.19r995 后的测试样本。你也可以边对比边自行修改支持该方案的最后一个官方 v3.5.43r1054 版本。可从网盘自行获取:
游客,如果您要查看本帖隐藏内容请回复


下面简单介绍一下它的设备码及本阶段激活码生成算法:

游客,如果您要查看本帖隐藏内容请回复



第三阶段:云端激活验证


从 v3.5.44(1055) 开始,原有本地配置信息彻底失效,激活码生成代码从本地移除,算法变为未知,验证流程转为云端完成,原激活码全面失效。通过分析发现具体表现为:

  • 客户端发送明文数据给云端
  • 云端返回错误信息,或通过 RS256 私钥签发 JWT 返回 激活信息机器码
  • 客户端验证本地签名是否未修改
  • 确认签名无误后,通过硬编码公钥解密,比对与云端返回的机器码是否一致


此外,从第二阶段旧版升级后,应用会自动将机器码发送给云端服务器进行验证,成功匹配设备码后则自动更新为新版激活配置。机器码生成逻辑与第二阶段保持一致未更改。

此阶段应用会不定期从云端获取信息并刷新本地激活配置,该方案应用直至当前 v3.6.51(1162) 版本。论坛内有一篇针对本阶段某个版本的修改教程:

《南风天气 3.6.28 解锁永久会员教程》 @未来之翼
https://bbs.binmt.cc/thread-170712-1-1.html

原教程比较简洁,同样的只需要修改两个地方。这里提供一个详细的通用版本:

第一处:强制为本地会员

游客,如果您要查看本帖隐藏内容请回复


第二处:跳过云端验证

游客,如果您要查看本帖隐藏内容请回复

仔细观察附近的代码,也就是通过修改目标方法让其直接返回已经激活状态,从而跳过云端验证流程。

  1. public final class a {
  2.     public static final a a = new a("SUCCESS", 0); // 激活码正确
  3.     public static final a b = new a("INVALID_CODE", 1);
  4.     public static final a c = new a("WRONG_DEVICE", 2);
  5.     public static final a d = new a("ALREADY_ACTIVATED", 3); // 已经激活
  6.     public static final a e = new a("TOO_MANY_ATTEMPTS", 4); // 尝试激活次数过多
  7.     public static final a f = new a("NETWORK_ERROR", 5);
  8. }
复制代码


当前阶段的就不提供样本附件了,有兴趣可自行前往项目仓库下载最新版本尝试。


更新:附带坛友的方法帖子,全版本通用,可以前往学习一下:

南风天气教程》@Raymondman
https://bbs.binmt.cc/thread-171003-1-1.html


免责声明


本文内容及相关附件资源仅用于个人学习使用,禁止用于商业用途和倒卖,请于下载后 24 小时内删除。所有权益归原作者所有,如真正需要,请通过付费、捐赠等方式支持官方正版。


— 整理不易,转载请保留原始出处

已有1人评分好评 金币 理由
NNfuck2048 + 1 + 1 很给力!

查看全部评分 总评分:好评 +1  金币 +1 

回复

使用道具 举报

4

主题

211

回帖

882

积分

高中生

Rank: 4

金币
590
好评
1
信誉
101

考神

发表于 5 天前 来自手机  | 显示全部楼层  来自 湖北
新版本天气数据已全部转向从自建中转服务器获取,获取数据时会同步上传本地会员信息(由服务器下发缓存)及应用签名信息。

故当前版本即使已 “解锁高级功能”,仍表现出:仅5天天气/添加多地区找不到城市/无空气质量等详细数据

判断方法:抓包,刷新天气数据。若请求的域名为 cyapi.cn 则未经中转。
回复

使用道具 举报

19

主题

3695

回帖

8861

积分

硕士生

Rank: 6Rank: 6

金币
1366
好评
0
信誉
100

MT论坛新人MT论坛最佳新人MT论坛帅哥考神

发表于 2026-8-13 15:25:49 来自手机  | 显示全部楼层  来自 湖北
看看这是
回复

使用道具 举报

2

主题

1487

回帖

4411

积分

大学生

Rank: 5Rank: 5

金币
3024
好评
0
信誉
100

MT论坛新人考神

发表于 2026-8-13 15:27:14 来自手机  | 显示全部楼层  来自 湖北–荆门–京山
感谢分享
回复

使用道具 举报

0

主题

6394

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
821
好评
1
信誉
107
发表于 2026-8-13 15:51:16 来自手机  | 显示全部楼层  来自 广东
学习学习
回复

使用道具 举报

3

主题

1241

回帖

2196

积分

大学生

Rank: 5Rank: 5

金币
151
好评
0
信誉
100
发表于 2026-8-13 15:52:49 来自手机  | 显示全部楼层  来自 广西
看看隐藏
回复

使用道具 举报

10

主题

1938

回帖

6408

积分

硕士生

Rank: 6Rank: 6

金币
4326
好评
3
信誉
100
发表于 2026-8-13 15:55:25 来自手机  | 显示全部楼层  来自 福建
这是逼作者加广告了
回复

使用道具 举报

0

主题

1917

回帖

6279

积分

硕士生

Rank: 6Rank: 6

金币
2184
好评
0
信誉
100
发表于 2026-8-13 15:58:06 | 显示全部楼层  来自 广西
看看隐藏
回复

使用道具 举报

61

主题

1502

回帖

5209

积分

硕士生

Raymondman

Rank: 6Rank: 6

金币
3394
好评
22
信誉
101
发表于 2026-8-13 16:02:54 | 显示全部楼层  来自 青海
看看
回复

使用道具 举报

19

主题

2292

回帖

8643

积分

硕士生

Rank: 6Rank: 6

金币
6200
好评
1
信誉
102

MT论坛新人考神MT论坛最佳新人

发表于 2026-8-13 16:08:43 来自手机  | 显示全部楼层  来自 福建
看看隐藏
回复

使用道具 举报

3

主题

2810

回帖

1万

积分

博士生

小白一个

Rank: 7Rank: 7Rank: 7

金币
2082
好评
2
信誉
100

MT论坛最佳新人考神

发表于 2026-8-13 16:38:12 来自手机  | 显示全部楼层  来自 湖北
分析透彻
回复

使用道具 举报

14

主题

1827

回帖

7640

积分

硕士生

Rank: 6Rank: 6

金币
3068
好评
0
信誉
100
发表于 2026-8-13 16:46:39 来自手机  | 显示全部楼层  来自 云南
回复看看
回复

使用道具 举报

2

主题

2323

回帖

7331

积分

硕士生

Rank: 6Rank: 6

金币
3650
好评
2
信誉
106

考神MT论坛帅哥

发表于 2026-8-13 16:52:59 来自手机  | 显示全部楼层  来自 山东
感谢分享哦
回复

使用道具 举报

1

主题

563

回帖

1800

积分

高中生

Rank: 4

金币
717
好评
0
信誉
102

考神MT论坛新人MT论坛帅哥MT论坛最佳新人

发表于 2026-8-13 17:14:18 | 显示全部楼层  来自 山东
看看
回复

使用道具 举报

2

主题

1337

回帖

3691

积分

大学生

Rank: 5Rank: 5

金币
196
好评
0
信誉
100
QQ
发表于 2026-8-13 17:19:26 来自手机  | 显示全部楼层  来自 贵州
很早之前一直在研究,没研究透
回复

使用道具 举报

1

主题

2268

回帖

4711

积分

大学生

Rank: 5Rank: 5

金币
1355
好评
0
信誉
100

考神

发表于 2026-8-13 17:36:42 来自手机  | 显示全部楼层  来自 广西
感谢大佬分享
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表