1、根据窗口提示的字符串在反编译后的apk文件中查找无果,猜想字符串可能不在xml文件中,所以只好再反编译classes.dex文件,(所涉及的反编译工具网上很多,自已搜索……)。随后终于在br.java文件找到了相应的字符串,长征开始……
2、虽然在br.java中找到了关键处,但本人菜鸟,不知道有没有办法将反编译后的classes.dex还原,所以只好从反编译后的apk文件的smali文件入手……
3、破解思路:根据对br.java中的流程简单分析(菜鸟的我想深入分析可无能为力啊!),提示需要积分的前面有这句:
if (SkinsActivity.b(this.a) < 50) //跟50进行比较,(思路:将50改为0);接着在成功激活的下面有两个失败提示在do循环的语句中,而在成功激活的前面有两个判断语句是跳向do循环的,所以这两个语句也需要修改,激活前判断语句如下:
if (paramMessage.what != 1)
break label352;
if (SkinsActivity.c(this.a).m() != null)
break label301;
4、用Notepad++打开br. Smali文件(不一定要使用Notepad++,只是习惯而已),太多代码看不懂,所以只好继续寻找字符串,注意,这里的字符串可不像java文件中的那么友好,需要激活的提示是这样子的:
“\u60a8\u662f\u514d\u8d39\u7248\u7528\u6237\uff0c\……”。先向上翻翻找找50吧,没找到……,仔细一看,发现了这一句:const/4 v3, 0x32,0x32不就是50吗,果断改为0x0,接下来在修改激活成功前的两个跳转:
if-ne v0, v1, :cond_5 // ne --> eq
if-nez v0, :cond_4 // nez --> eqz
5、保存修改后回编译成apk文件,测试成功。
PS:
关于窗口的修改以上面的方法类似,这里就不多说了……
转载请注明出处……
用到的主要工具:
1、ApkTool
2、dex2jar
3、jd-gui
这些工具百度就可以了!
附工具及软件:
APK反编译器.zip
(870.48 KB, 下载次数: 0)