起
前几天在论坛发布了一个帖子:南X周易系列逆向思路-就改一行代码(出处: 吾爱破解论坛)
看本帖之前请看一下上面那个帖子,要不然可能看不懂我在说什么、谢谢配合。
收到了论坛内各位易友的支持,不过当时还遗留了一个小问题:
如果在删除使用次数++
以前就用完了32次试用机会,触发了跳转到软件续用界面,再覆盖安装欺骗版的,仍然会跳转到软件续用界面。
承
当时给大家承诺的是如果我解决了的话,会重新发一个帖子更新一下
因为个人原因,一直没着手处理,今天白天千千骨同学和我说,他的手机已经试用结束了,没办法正常使用。
我建议他使用同类竞品作为代替:x奥周易系列软件逆向思路\更新了视频演示(出处: 吾爱破解论坛)
他和我说了他的理由:
玄某的分析不如南某的分析全面。
我当时就猛拍大腿!怎么能难为我易友,不行,我要解决这个问题。
于是乎~就有了今天的事情 。
转
这次回到软件,考虑过
- 修改试用次数,无效
- 修改if处的代码,无效
- 修改Ruanjianxuyong活动,未遂
再遭受了代码一顿毒打之后,我又开始了新一轮的痛定思痛:
- 软件是离线的,也就是说没有服务器验证
- 软件肯定在本地写入了一个文件,用来储存“试用次数”相关的数据
- 软件卸载之后,这个文件肯定还存在(否则卸载重装岂不是可以无限续杯)
有了思路就好办多了
内部存储根目录下有.nanfangsoft
和nfdata
两个文件夹,点进去看一下就可以知道,前者储存着试用相关的数据,而nfdata
里面就是一些保存的用户数据,并不涉及试用次数验证。
我就来了一波卸载、删除.nanfangsoft
、重装的操作,结果仍然是跳到了我不喜欢的续杯界面。
这是为什么?难道别的地方还有验证文件?
我感觉这事有蹊跷,于是痛定思痛X2
庄子与惠子游于濠梁之上。庄子曰:“鲦鱼出游从容,是鱼之乐也。”惠子曰:“子非鱼,安知鱼之乐?”庄子曰:“子非我,安知我不知鱼之乐?”惠子曰:“我非子,固不知子矣;子固非鱼也,子之不知鱼之乐,全矣!”
庄子曰:“请循其本。
庄子词穷了,我也技穷了。所以为什么我不效仿一下庄子呢?
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
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文件管理器等等
删除的时候确保删除成功!在模拟器用自带管理器,好几次都删除不干净
正版软件也可以通过这个方法无限续杯哦!
我会尽量通知之前和我说过的遇到此问题的易友,不过有遗漏的就希望你收听我了吧。哈哈