13200 发表于 2021-8-28 13:29

新手向—高级计算器破解

本帖最后由 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)

13200 发表于 2021-8-30 18:58

Tamluo 发表于 2021-8-30 18:30
好像看到发过类似的了?不过还是感谢分享

有人发过app的成品,我只是把过程记录了下,在开头我写了原帖地址

Tamluo 发表于 2021-8-31 09:46

13200 发表于 2021-8-30 18:58
有人发过app的成品,我只是把过程记录了下,在开头我写了原帖地址

嗯嗯,挺好的,支持{:301_1000:}

cjc3528 发表于 2021-8-29 13:23

很牛逼的教程啊,谢谢分享,学习了

CCQc 发表于 2021-8-30 00:50

52破解,感谢大佬的分享

sgsb 发表于 2021-8-30 07:56

感谢分享。学习了。

chendaxia666 发表于 2021-8-30 09:54

厉害了,大师

wangzhu3366 发表于 2021-8-30 10:01

有人已经发过了

Williamli2006 发表于 2021-8-30 10:11

这个厉害,学习了!

MZA1220 发表于 2021-8-30 10:16


这个厉害,学习了

Re.无双 发表于 2021-8-30 11:18

感谢分享,谢谢谢谢

ybsypy 发表于 2021-8-30 13:11

很牛逼的教程啊,谢谢分享
页: [1] 2 3 4 5
查看完整版本: 新手向—高级计算器破解