首页
论坛
课程
招聘
[原创]***极速版逆向分析
2021-11-2 16:37 7098

[原创]***极速版逆向分析

2021-11-2 16:37
7098

在apkpura上找了个看漫画软件,拿来练练手

 

apk资源

1
2
链接: https://pan.baidu.com/s/15mWwNrp0KGfLoQULVdkU2g
提取码: e9qs

需求

  1. 漫画有些章节需要充值才能观看,破解支付
    图片描述
    图片描述
  2. 漫画有vip权限,破解vip
    图片描述

分析

  • 需要app需要账号才能后续操作,可以用短信接收器注册了一个账号用作测试,无加固,无校验

  • 点击 充值并购买 后跳转到充值界面,再点击 确认充值 便会弹出 支付失败提示;常规操作使用jadx-gui打开并搜索 支付失败 。可以看到有两个可疑对象,其中一个可能与vip充值有关先不管,直接跟入 RechargeActivity
    图片描述

  • 看到这个大概就清晰了,对 i2 进行判断,如果 i2 == 3 则支付成功,那我们直接修改这个判断就可以了,根据路径找到对应smali文件
    图片描述

  • 搜索当前 支付失败 的unicode “\u652f\u4ed8\u5931\u8d25”,发现什么也没搜到,搜索函数名 public d( 也没搜到,怎么回事?

  • 点击jadx 转换为smali代码观察比较,发现文件头部一样,但内容缺少不同,可能被拆分了
    图片描述
    图片描述
    图片描述
    图片描述
    图片描述

  • 那么来搜索含有 函数d 的activity有哪些,发现有3个,挨个观察,发现在 RechargeActivity$10.smali 下发现判断逻辑

    grep -nilr "public d(" manga/smali_classes2 | grep "RechargeActivity"
    图片描述

  • 分析并修改:参数寄存器p1 因该对应的是 i2,直接修改p1使其永远等于3,只能支付成功

    aget p1, v0, p1
    const/4 p1, 0x3 // 增加
    图片描述

  • 打包,签名,安装,点击 确认充值 发现支付成功了,但余额并没有变
    图片描述

  • 再次检查java逻辑,将 p1 改为 5 试试,发现能够成功
    图片描述

  • 接下来是vip了,参考上面的步骤,找到支付逻辑代码,定位smali所在位置,修改逻辑即可

    1
    修改:manga/smali_classes2/com/ilike/cartoon/activities/MyVipActivity$10.smali 下 d函数的 p1值

    图片描述
    图片描述

总结
虽然付费和vip虽然都能返回成功,但是返回查看余额和vip发现并没有变化,并且搜索分析出该app使用了阿里的支付。所以最后并没有这个实质性的破解。菜鸡一枚,记录一下过程。如果大佬有好的思路,请一定不要吝惜自己的键盘:)


看雪2022 KCTF 秋季赛 防守篇规则,征题截止日期11月12日!(iPhone 14等你拿!)

最后于 2021-11-2 16:42 被andyhah编辑 ,原因: 上传不全
收藏
点赞1
打赏
分享
最新回复 (3)
雪    币: 1948
活跃值: 活跃值 (1584)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
gamehack 活跃值 2021-11-2 17:45
2
0
感谢分享!
雪    币: 225
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
琳琅天下 活跃值 2021-11-2 21:06
3
0
好像板块不对把 这个不是PC板块嘛怎么 出来android的文章了
雪    币: 399
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
andyhah 活跃值 2021-11-4 14:02
4
0
琳琅天下 好像板块不对把 这个不是PC板块嘛怎么 出来android的文章了
我选的软件逆向,板块不对嘛?还是要选android安全?
游客
登录 | 注册 方可回帖
返回