前言
某蛇大作战是一款游戏,其中有多种类型的蛇可以选择,但需要充值购买,所以今天给大伙介绍通过hook之后,主动调用普通方法和静态方法两种方式,实现内购。
测试app的购买功能
进入app后可以看到有一个爱国者礼包和商店,可以购买想要的蛇的种类。
这里以爱国者礼包为例,点进去购买,然后取消,会提示支付取消的字样。
找到破解点
首先将apk文件拖入到jadx中进行反编译。
根据信息反馈法,搜索字符串“支付取消”。
支付取消只在DX_Pay()方法中出现过。DX_Pay()方法代码如下:
public static void DX_Pay(HashMap<String, String> payParams) {
new AlertDialog.Builder(activity);
EgamePay.pay(activity, payParams, new EgamePayListener() {
/* class com.qy.zombie.zombie.AnonymousClass3 */
@Override // cn.egame.terminal.paysdk.EgamePayListener
public void paySuccess(Map<String, String> map) {
Toast.makeText(zombie.activity, "支付成功", 0).show();
zombie.BuySccess();
}
@Override // cn.egame.terminal.paysdk.EgamePayListener
public void payFailed(Map<String,