-
-
[原创]***极速版逆向分析
-
发表于:
2021-11-2 16:37
10765
-
在apkpura上找了个看漫画软件,拿来练练手
apk资源
需求
分析
需要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所在位置,修改逻辑即可
总结
虽然付费和vip虽然都能返回成功,但是返回查看余额和vip发现并没有变化,并且搜索分析出该app使用了阿里的支付。所以最后并没有这个实质性的破解。菜鸡一枚,记录一下过程。如果大佬有好的思路,请一定不要吝惜自己的键盘:)
链接: https:
/
/
pan.baidu.com
/
s
/
15mWwNrp0KGfLoQULVdkU2g
提取码: e9qs
链接: https:
/
/
pan.baidu.com
/
s
/
15mWwNrp0KGfLoQULVdkU2g
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-11-2 16:42
被andyhah编辑
,原因: 上传不全