填坑|南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文件管理器等等
删除的时候确保删除成功!在模拟器用自带管理器,好几次都删除不干净
**正版软件也可以通过这个方法无限续杯哦!**
我会尽量通知之前和我说过的遇到此问题的易友,不过有遗漏的就希望你收听我了吧。哈哈 YMXuan 发表于 2020-6-21 00:39
@涛之雨 老哥,考不考虑写一个一键删除.nanfangsoft和.webbrowser文件夹的安卓程序?
可以是可以。。。
可以做一个启动器,
点开这个启动器会自动删除那两个缓存文件并且打开他的软件。。。
不过还是注册的舒服{:301_973:}那个判断是真的恶心到我了。。。除了循环。。真的不知道该怎么生成。。。
15位的循环。。。想想都替手机头大 zaifen 发表于 2020-6-21 14:11
我想po jie的不是这个软件,是quan min k ge TV版,想解决每天只能免费k5首歌,看是不是相同的思路
:lol喔喔,就是反编译一下程序,找一下限制次数的地方,全民的话,应该不是本地储存的,你可以从抓包的思路看一看。 @涛之雨 老哥,考不考虑写一个一键删除.nanfangsoft和.webbrowser文件夹的安卓程序? mark一下 支持一下 起承转合,厉害了 涛之雨 发表于 2020-6-21 07:14
可以是可以。。。
可以做一个启动器,
点开这个启动器会自动删除那两个缓存文件并且打开他的软件。。。 ...
嘿嘿,好吧,咱翻篇儿吧,这太难了 自动风水算命机,牛 timbotton 发表于 2020-6-21 07:52
自动风水算命机,牛
拿个手机去摆摊:Dweeqw 支持一下