本帖最后由 小试锋芒 于 2014-9-9 19:45 编辑
破解安卓软件的积分
菜鸟发贴,难免有错误之处请各位赐教。菜鸟哈 高手可以绕道…… 高手勿喷!!! 软件名称:xx计算器 所用工具:apk反编译软件、Notepad++等 软件说明:软件功能使用正常,只是皮肤很难看,软件提供漂亮皮肤但需要积分,所以尝试破解…… ==================== 破解前后对比 ==================== PS:仅修改关于窗口是无效的,只是自慰而已…… =================== 我是美丽的分割线 =================== 破解开始: 一、未破解积分前选择喜欢的皮肤会弹出需要积分窗口,如图:
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
这些工具百度就可以了!
附工具及软件:
1、工具:
dex2jar-0.0.9.13.rar
(1.62 MB, 下载次数: 423)
jd-gui.rar
(689.12 KB, 下载次数: 204)
因为ApkTool有点大,就不浪费大家CB了,百度吧……
2.软件
calc.rar
(1.77 MB, 下载次数: 373)
|