吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6863|回复: 40
收起左侧

[Android 原创] 新手向—高级计算器破解

[复制链接]
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

支持正版,不提供成品下载

打开,发现高级版需要购买,嘿嘿嘿

image-20210828121441240

Crake步骤

找一些关键词:lifetime purchase ,高级,广告,theme,license,free,plus,premium,pro,……

中文有可能是Unicode编码

用论坛的androidkiller反编译apk

求助大佬们现在有没有比ak更好用的工具

搜索下上面提到的一些关键词,点进去观察下,发现premium比较可疑

image-20210828122413568

看搜索结果

image-20210828122957741

res中多为一些资源文件,string name是不是很熟悉

image-20210828123029305

smali advanced中猜测是一些解锁后高级功能的程序

image-20210828123245025

一个一个点进去发现这个比较可疑

image-20210828123323032

有跳转而且附近还有一个“free”

image-20210828123358242

观察逻辑发现if-else中调用的函数都是相同的,唯一的不同点就是premium和free

可以直接改字,或者将if  --> if not

image-20210828125033964

编译

出大问题,没报错但是编译失败

具体输出:https://txtpad.cn/apktoolbuildfailure

看上去大多数是资源问题

image-20210828125401503

试过apktool版本后,发现需要编译时需要忽略资源(似乎是反编译导致xml乱码)

双击加个参数 -r

image-20210828125557100

image-20210828125539987

重新反编译后编译成功,但是没有解锁

但是没有实现crake,回到刚刚的代码

image-20210828125927827

分支是通过判断 v1的,看起来判断后的内容并不是关键,有可能只是界面的显示功能,也可能其他地方也会判断v1的值

image-20210828130421887

可以看到v1调用了f/b/h/i/e中的c函数返回的Boolean

找到c函数

image-20210828131050542

打开后c函数详细内容

.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

编译安装试试

编译签名安装成功

可以看到激活已经没有了

image-20210828131535252

总结

很简单的一个app尝试,关键点比较好找,但在实践中出现的一些问题加深了我的理解,发出来给大家乐呵乐呵

难点和疑问

  • ak好像比较老了,有什么新的好用工具吗
  • 有什么好方法定位关键点
  • 代码的结构和一些方法名似乎经过混淆了,能通过一定的特征知道混淆的方法吗

使用方法

shift对应按键左上标功能,alpha对应右上角字母运算符

还有好多功能,编程都有,不过有些功能需要外网

image-20210829135907320

image-20210829135317626

免费评分

参与人数 7吾爱币 +5 热心值 +7 收起 理由
k2ypt0n + 1 用心讨论,共获提升!
qj2716115 + 1 + 1 热心回复!
Sashka + 1 用心讨论,共获提升!
bjxiaoyao + 1 + 1 我很赞同!
lovlin999 + 1 + 1 谢谢@Thanks!
芽衣 + 1 + 1 用心讨论,共获提升!
cxp521 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 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的成品,我只是把过程记录了下,在开头我写了原帖地址

嗯嗯,挺好的,支持
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
很牛逼的教程啊,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表