【Android逆向】frida 破解 滚动的天空

1. apk 安装到手机中

2. 玩十次之后,会提示 充值

3. adb shell dumpsys window | grep mCurrentFocus 查看一些当前activity是哪一个

是 AppActivity

4. 阅读代码,感觉是unity3d做的游戏

5. apk拖入到jadx中, 搜索“购买无线求”, 发现一个xml dialog_payconfirm.xml, 找到加载这个xml的类是com.turbochilli.rollingsky.g.a.java,代码还是做了混淆的,不过不影响阅读

6. 阅读他的onclick方法, 有点重要的a(this.g, this.f, PayAgentHolder.createInstance().getThirdPartyPay(), this.l);方法,点进去看看, 会调用大到payAgent.pay(str, 0, new com.turbochilli.rollingsky.b.a(str));

7. 第三个入参new com.turbochilli.rollingsky.b.a(str),是一个回调,看看它的定义, 对应的类是com.turbochilli.rollingsky.b.a

8. 这里有好几个很重要的方法onPayCancelonSendOrderInfo, onSendOrderInfo 阅读代码可以得出是成功后调用的代码

9. hook onPayCancel 然后执行onSendOrderInfo 试一试

代码

function main() {
    Java.perform(function () {
        var baHandler = Java.use('com.turbochilli.rollingsky.b.a')
        console.log('1111' )
        if (baHandler != undefined) {
            console.log('2222' )
            baHandler.onPayCancel.implementation = function (iProductObj, i) {
                console.log('hooked i = ' + i)
                console.log('hooked i = iProductObj ' + JSON.stringify(iProductObj))
                this.onSendOrderInfo(iProductObj, i)
            }
        }

    })

}

setTimeout(main)

10. hook 成功,购买任何商品,只要点击取消,就会购买成功

posted @ 2023-02-17 16:40  明月照江江  阅读(160)  评论(0编辑  收藏  举报