新手向—高级计算器破解
本帖最后由 13200 于 2021-8-29 14:03 编辑# 新手向—高级计算器破解
*2021年8月28日*
## 简介
最近在论坛看到一款**卡西欧高级计算器**,当初在初中可是被誉为神器,没想到有手机版
原帖中有破解思路,所以萌新我不妨来试试
原帖:https://www.52pojie.cn/thread-1499562-1-1.html
## APP
从play商店下载后用skit把安装包导出,得到CalcES (5.2.9.702).apk
谷歌**原版**安装包,**蓝奏**:https://wwa.lanzoui.com/ipAa8ta09ve
支持正版,不提供成品下载
打开,发现高级版需要购买,嘿嘿嘿
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828121442_image-20210828121441240.png)
## Crake步骤
### 找一些关键词:lifetime purchase ,高级,广告,theme,license,free,plus,premium,pro,……
中文有可能是Unicode编码
### 用论坛的androidkiller反编译apk
**求助大佬们现在有没有比ak更好用的工具**
搜索下上面提到的一些关键词,点进去观察下,发现premium比较可疑
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828122414_image-20210828122413568.png)
看搜索结果
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828122958_image-20210828122957741.png)
res中多为一些资源文件,string name是不是很熟悉
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828123030_image-20210828123029305.png)
smali advanced中猜测是一些解锁后高级功能的程序
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828123245_image-20210828123245025.png)
一个一个点进去发现这个比较可疑
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828123323_image-20210828123323032.png)
有跳转而且附近还有一个“free”
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828123359_image-20210828123358242.png)
### 观察逻辑发现if-else中调用的函数都是相同的,唯一的不同点就是premium和free
可以直接改字,或者将if--> if not
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828125034_image-20210828125033964.png)
编译
### **出大问题**,没报错但是编译失败
具体输出:https://txtpad.cn/apktoolbuildfailure
看上去大多数是资源问题
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828125402_image-20210828125401503.png)
试过apktool版本后,发现需要编译时需要忽略资源(似乎是反编译导致xml乱码)
双击加个参数 -r
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828125558_image-20210828125557100.png)
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828125540_image-20210828125539987.png)
重新反编译后编译成功,但是没有解锁
### 但是没有实现crake,回到刚刚的代码
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828125928_image-20210828125927827.png)
分支是通过判断 v1的,看起来判断后的内容并不是关键,有可能只是界面的显示功能,也可能其他地方也会判断v1的值
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828130422_image-20210828130421887.png)
可以看到v1调用了f/b/h/i/e中的c函数返回的Boolean
找到c函数
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828131051_image-20210828131050542.png)
打开后c函数详细内容
```SMALI
.method public static c(Landroid/content/Context;)Z
.locals 3
new-instance v0, Ljava/io/File;
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v1
const-string v2, "license"
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_0
invoke-static {v0}, Lf/b/h/i/e;->e(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_0
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
if-nez v1, :cond_0
invoke-static {v0}, Le/u/m/g;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {p0}, Lf/b/h/i/c;->a(Landroid/content/Context;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
:cond_0
const/4 p0, 0x0
return p0
.end method
```
函数大致意思应该是判断一个license文件及内容,发现有很多cond_0,一系列的判断失败都return 0,简单粗暴直接改为检查失败return 1
```
const/4 p0, 0x1
```
编译安装试试
### 编译签名安装成功
可以看到激活已经没有了
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210828131536_image-20210828131535252.png)
## 总结
很简单的一个app尝试,关键点比较好找,但在实践中出现的一些问题加深了我的理解,发出来给大家乐呵乐呵
## 难点和疑问
- ak好像比较老了,有什么新的好用工具吗
- 有什么好方法定位关键点
- 代码的结构和一些方法名似乎经过混淆了,能通过一定的特征知道混淆的方法吗
## 使用方法
shift对应按键左上标功能,alpha对应右上角字母运算符
![](https://z3.ax1x.com/2021/08/28/h13ubF.gif)
还有好多功能,编程都有,不过有些功能需要外网
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210829135908_image-20210829135907320.png)
!(https://gitee.com/stu_xcy/xcycloud/raw/master/img/20210829135319_image-20210829135317626.png) Tamluo 发表于 2021-8-30 18:30
好像看到发过类似的了?不过还是感谢分享
有人发过app的成品,我只是把过程记录了下,在开头我写了原帖地址 13200 发表于 2021-8-30 18:58
有人发过app的成品,我只是把过程记录了下,在开头我写了原帖地址
嗯嗯,挺好的,支持{:301_1000:} 很牛逼的教程啊,谢谢分享,学习了 52破解,感谢大佬的分享 感谢分享。学习了。 厉害了,大师 有人已经发过了 这个厉害,学习了!
这个厉害,学习了 感谢分享,谢谢谢谢 很牛逼的教程啊,谢谢分享