YMXuan 发表于 2020-6-21 00:29

填坑|南X周易程序超出试用的解决办法

本帖最后由 YMXuan 于 2020-6-21 08:22 编辑

## 起

前几天在论坛发布了一个帖子:[南X周易系列逆向思路-就改一行代码](https://www.52pojie.cn/thread-1192605-1-1.html)(出处: 吾爱破解论坛)

看本帖之前请看一下上面那个帖子,要不然可能看不懂我在说什么、谢谢配合。

收到了论坛内各位易友的支持,不过当时还遗留了一个小问题:

> 如果在删除`使用次数++`以前就用完了32次试用机会,触发了跳转到软件续用界面,再覆盖安装欺骗版的,仍然会跳转到软件续用界面。

## 承

当时给大家承诺的是如果我解决了的话,会重新发一个帖子更新一下

因为个人原因,一直没着手处理,今天白天[千千骨](https://www.52pojie.cn/home.php?mod=space&uid=426325)同学和我说,他的手机已经试用结束了,没办法正常使用。

我建议他使用同类竞品作为代替:(https://www.52pojie.cn/thread-1189302-1-1.html)(出处: 吾爱破解论坛)

他和我说了他的理由:

> 玄某的分析不如南某的分析全面。

我当时就猛拍大腿!怎么能难为我易友,不行,我要解决这个问题。

于是乎~就有了今天的事情 。

## 转

这次回到软件,考虑过

- 修改试用次数,无效
- 修改if处的代码,无效
- 修改Ruanjianxuyong活动,未遂

再遭受了代码一顿毒打之后,我又开始了新一轮的痛定思痛:

1. 软件是离线的,也就是说没有服务器验证
2. 软件肯定在本地写入了一个文件,用来储存“试用次数”相关的数据
3. 软件卸载之后,这个文件肯定还存在(否则卸载重装岂不是可以无限续杯)

有了思路就好办多了

内部存储根目录下有`.nanfangsoft`和`nfdata`两个文件夹,点进去看一下就可以知道,前者储存着试用相关的数据,而`nfdata`里面就是一些保存的用户数据,并不涉及试用次数验证。

我就来了一波卸载、删除`.nanfangsoft`、重装的操作,结果仍然是跳到了我不喜欢的续杯界面。

这是为什么?难道别的地方还有验证文件?

我感觉这事有蹊跷,于是痛定思痛X2

> 庄子与惠子游于濠梁之上。庄子曰:“鲦鱼出游从容,是鱼之乐也。”惠子曰:“子非鱼,安知鱼之乐?”庄子曰:“子非我,安知我不知鱼之乐?”惠子曰:“我非子,固不知子矣;子固非鱼也,子之不知鱼之乐,全矣!”
>
> 庄子曰:“请循其本。

庄子词穷了,我也技穷了。所以为什么我不效仿一下庄子呢?

```java
private void g()
{
    this.h = getSharedPreferences("trytimesxml", 0);
    a.j = Integer.parseInt(this.a.b(this.h.getString("tms", this.a.a("65AB24201"))).substring(7, 9));
    if (a.j < 32) {
      a.j += 1;
    }
    this.h.edit().putString("tms", this.a.a("65AB242" + String.valueOf(f.d(a.j)))).commit();
    a.d("trytimesxml");
    a.a("trytimesxml.xml", "system.out");
}
```

所有的事情都围绕a.j展开,在吾爱热心大佬们的帮助下,我知道了a.j就是class a中的j变量,

那就好办了,我们顺藤摸瓜,去看一看a.class

```java
public class a
{
// 前面一堆统统省略
public static int i = 31;
public static int j = 1;
public static String k = "";
public static String l = "14pt";
public static String m = "17pt";
public static String n = "";
public static String o = "/.nanfangsoft/";
public static String p = "/.nanfangsoft/Jinkoujue/";
public static String q = "/.nanfangsoft/Jinkoujue/progdata/";
public static String r = "/data/data/com.nfbazi.Jinkoujue/shared_prefs/";
public static String s = "/.webbrowser/";
public static String t = "/.webbrowser/system/";
public static String u = "/.webbrowser/system/05/";
public static String v = "/nfdata/";
public static String w = "/nfdata/Jinkoujue/";
public static String x = "";
public static int y = 0;
public static int z = 0;
private Context ac;
```

为i赋值为31,肯定和试用次数有关,为j赋值为1,这应该就是使用次数。然后在上面那段代码中循环+1,

然后下面怎么这么多文件路径!我仿佛嗅到了成功的香味。

```
/.nanfangsoft/Jinkoujue/progdata/是我们刚才找到的一个路径

/data/data/com.nfbazi.Jinkoujue/shared_prefs/是软件数据文件,卸载后会被删除,所以这个应该不用考虑

/.webbrowser/是个新面孔!兴许就是刚才的漏网之鱼。

/nfdata/这里面保存的是用户保存的课例,不包含验证文件
```

这么看来,刚才漏下了`.webbrowser`,这能怪我吗?这是个多么不nf的名字。。。

再来一波卸载、删除`.nanfangsoft`、删除`.webbrowser`、重装的操作,完美,可以正常使用了。

**为庄子打call,为庄子代言!**

## 合

好了,事情到这里就结束了。

没找到完整的路径之前,我真想问问系统,nf的程序到底给它说了什么!!!!

找到路径之后,我真的,除了给庄子喊666,我啥都不想干了。

小伙伴们赶紧把手机上有使用限制的软件卸载,然后删除`.nanfangsoft`、`.webbrowser`文件夹,然后重装一下有限制的软件就好了。

因为这两个文件夹是`点开头的名字`,有些手机自带的文件管理器可能会默认隐藏(比如华为、荣耀),自己设置一下就行了。或者使用第三方的文件管理器比如MT管理器、ES文件管理器等等

删除的时候确保删除成功!在模拟器用自带管理器,好几次都删除不干净

**正版软件也可以通过这个方法无限续杯哦!**

我会尽量通知之前和我说过的遇到此问题的易友,不过有遗漏的就希望你收听我了吧。哈哈

涛之雨 发表于 2020-6-21 07:14

YMXuan 发表于 2020-6-21 00:39
@涛之雨 老哥,考不考虑写一个一键删除.nanfangsoft和.webbrowser文件夹的安卓程序?

可以是可以。。。
可以做一个启动器,
点开这个启动器会自动删除那两个缓存文件并且打开他的软件。。。
不过还是注册的舒服{:301_973:}那个判断是真的恶心到我了。。。除了循环。。真的不知道该怎么生成。。。
15位的循环。。。想想都替手机头大

YMXuan 发表于 2020-6-21 14:13

zaifen 发表于 2020-6-21 14:11
我想po jie的不是这个软件,是quan min k ge TV版,想解决每天只能免费k5首歌,看是不是相同的思路

:lol喔喔,就是反编译一下程序,找一下限制次数的地方,全民的话,应该不是本地储存的,你可以从抓包的思路看一看。

YMXuan 发表于 2020-6-21 00:39

@涛之雨 老哥,考不考虑写一个一键删除.nanfangsoft和.webbrowser文件夹的安卓程序?

sdaza 发表于 2020-6-21 06:33

mark一下

SHENXIAOst 发表于 2020-6-21 07:29

支持一下

bingshen 发表于 2020-6-21 07:29

起承转合,厉害了

YMXuan 发表于 2020-6-21 07:45

涛之雨 发表于 2020-6-21 07:14
可以是可以。。。
可以做一个启动器,
点开这个启动器会自动删除那两个缓存文件并且打开他的软件。。。 ...

嘿嘿,好吧,咱翻篇儿吧,这太难了

timbotton 发表于 2020-6-21 07:52

自动风水算命机,牛

YMXuan 发表于 2020-6-21 07:54

timbotton 发表于 2020-6-21 07:52
自动风水算命机,牛

拿个手机去摆摊:Dweeqw

夜步城 发表于 2020-6-21 08:01

支持一下
页: [1] 2 3 4 5 6 7
查看完整版本: 填坑|南X周易程序超出试用的解决办法