泄密无花 发表于 2023-4-4 14:46

【原创】安卓逆向实例 - 朝花夕拾【VIP + 免登录】

0x00 前言
这个App很坏,崩了好几次{:6_214:}

0x01 目标

朝花夕拾 (20230404)
下载地址:https://www.wandoujia.com/apps/8334058

0x02 逆向思路

1、免登录
1)常量过滤:搜索字符串“登录”

2)选择第一个MainActivity结果

3)看到字符串“登录”上面有对i()传过来的值进行判断

4)跟进i(),转为Java

5)修改返回值即可

6)修改之后


2、VIP逆向
1)常量过滤:搜索字符串“会员”

2)看到字符串“续费会员”上面有对j()传过来的值进行判断

3)跳转j(),转为Java

4)修改返回值

5)实测VIP功能可用,但是这么丑的界面,还是再改改


0x03 AI赢麻了
1、j() Smail代码

.method public static j()Z
    .registers 5

    invoke-static {}, Lbb/h;->e()J # 跳转到e()判断会员时间

    move-result-wide v0

    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v2

    cmp-long v4, v0, v2

    if-lez v4, :cond_e

    const/4 v0, 0x1

    goto :goto_f

    :cond_e
    const/4 v0, 0x1

    :goto_f
    return v0
.end method

2、e() Smail代码

.method public static e()J
    .registers 4

    invoke-static {}, Lcom/tencent/mmkv/MMKV;->h()Lcom/tencent/mmkv/MMKV;

    move-result-object v0

    const-string v1, "plusTime"

    const-wide/16 v2, 0x0

    invoke-virtual {v0, v1, v2, v3}, Lcom/tencent/mmkv/MMKV;->e(Ljava/lang/String;J)J

    move-result-wide v0

    return-wide v0
.end method


3、e()转为Java代码

public static long e() {
      return MMKV.h().e("plusTime", 0L);
    }


这是ChatGTP对e()的解释

于是我尝试修改的v0的值为时间戳结果App闪退,但是我在e()上面看到了一个方法d()
d()是一个判断,这是ChatGTP的解释;好家伙,这不得妥妥闪退:判断这么大的数字

4、按照ChatGPT的解释修改了判断,直接让判断返回“永久高级版”字符串

5)修改结果


0x04 总结
1、搜索字符串的时候:VIP搜索“续费”比较容易定位方法;免登录搜索“登录”
2、修改超大大大大数据的时候,很容易造成App闪退{:5_127:}


lies 发表于 2023-4-5 10:21

谢谢分享!

严启真 发表于 2023-4-10 17:13

改为时间戳闪退大多是格式不对,异常了……

bnjzzheng 发表于 2023-4-28 14:16

感谢分享。

PDWORD 发表于 2023-5-24 01:36

感谢分享

attackmyth 发表于 2023-5-26 15:00

感谢分享 继续学习

sjtkxy 发表于 2023-10-20 05:18

29590 发表于 2023-10-20 17:13

为什么都还原出Java代码了还要问AI,直接让他暴力分析原始指令{:5_121:}

longge188 发表于 2023-10-27 16:32

感谢楼主热心分享,小小评分不成敬意!

九天一叶 发表于 2024-12-31 21:48

感谢分享!
页: [1]
查看完整版本: 【原创】安卓逆向实例 - 朝花夕拾【VIP + 免登录】