Android游戏破解练习-大圣觉醒

Android游戏破解练习-大圣觉醒

1569400652594

用Android Skiller搜下关键字看有没有PaySuccess

发现有关键字

1569401079176

那么就用Jadx继续搜索

找到关键字找到它对应类,右键查找引用

1569401160256

看看哪里引用了

1569401184562

一直往上找。会看到

1569401306490

日志,过滤一下

1569401426779

发现关键信息

再Jadx直接搜索中文支付接口被调用

1569401517680

进入后,发现d应该是刚刚看到的跟支付有关的类

但是不确定,所以想加个日志,那么要再Android Skiller里面找到这个位置

1569401646871

根据之前再jadx里面的d函数看到,run函数前面有个判断。

因此,在Android Skiller里面找到类后,找到run,方法前面有个判断,注释掉

1569401686640

右键插入log

1569401765515

下面不让它goto,所以直接加个return void

1569401783810

有发现log,说明这个跟支付是有关系的

1569401903144

但是还是弹出了这个支付。所以还要在往前找一点。

1569401869858

1569401970678

在这里runOnUiThread执行了一个线程的回调函数

1569402020041

一直往上看。看到这,猜测可能这个MyOPayLinstener是我们实际支付的那个函数

进去看下

1569402074423

发现这个状态只有1是成功的。其他失败,那么是否可以在外面直接调用成功的这个函数。

观察他们所在的类的位置。看是否能直接调用nativeBuySuccessHandler()

注释掉这3行

1569402365681

然后调用我们要调用的函数

首先它是一个静态函数 因此invoke-static,然后复制文件夹名字加上;->函数名调用,最后V是返回值。

添加代码

1569402415170

.line 534
   
    invoke-static {}, Lorg/cocos2dx/lib/Cocos2dxActivity;->nativeBuySuccessHandler()V
    #new-instance v1, Lorg/cocos2dx/lib/Cocos2dxActivity$MyOPayLinstener;

    #invoke-direct {v1, p0}, Lorg/cocos2dx/lib/Cocos2dxActivity$MyOPayLinstener;-><init>(Lorg/cocos2dx/lib/Cocos2dxActivity;)V

   .line 532
    #invoke-static {v0, p0, v1}, Lcom/opay/android/sdk/OPayUtil;->pay(Ljava/lang/String;Landroid/app/Activity;Lcom/opay/android/sdk/OPayCallBack;)V

编译。完成

posted @ 2019-09-25 19:57  ltyandy  阅读(339)  评论(0编辑  收藏  举报