逆向破解学习-登山赛车

news/2024/5/17 15:54:16 标签: 学习, gitee, 逆向

试玩

在这里插入图片描述

课程中的内容

在这里插入图片描述
在这里插入图片描述

Hook代码


import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class HookComYoDo1SkiSafari2TXYYB_01 extends HookImpl{
    @Override
    public String packageName() {
        return "com.yodo1.skisafari2.TXYYB_01";
    }

    @Override
    public String appName() {
        return "滑雪大冒险";
    }

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        hookPaymentHelper(lpparam);
        hookPayAdapterYYB(lpparam);
    }

    private void hookPayAdapterYYB(XC_LoadPackage.LoadPackageParam lpparam) {
        //com.yodo1.sdk.pay.PayAdapterYYB.1
        final String className = "com.yodo1.sdk.pay.PayAdapterYYB$1";
        final ClassLoader classLoader = lpparam.classLoader;
        final String methodName = "OnPayNotify";
        final Class<?> param = XposedHelpers.findClass("com.tencent.ysdk.module.pay.PayRet", classLoader);
        XposedHelpers.findAndHookMethod(
            className, classLoader, methodName,
            param,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                    Object obj = param.args[0];
                    log("HookComYoDo1SkiSafari2TXYYB_01 "+ obj.getClass().getCanonicalName() + "\n" + obj);
                    XposedHelpers.setObjectField(obj, "ret", 0);
                    XposedHelpers.setObjectField(obj, "payState", 0);
                    log("HookComYoDo1SkiSafari2TXYYB_01 "+ obj.getClass().getCanonicalName() + "\n" + obj);
                    log("HookComYoDo1SkiSafari2TXYYB_01, " + className + ", " + methodName + ", ");
                }
            }
        );
    }

    private void hookPaymentHelper(XC_LoadPackage.LoadPackageParam lpparam) {
        final String className = "com.yodo1.android.ops.payment.PaymentHelper";
        final ClassLoader classLoader = lpparam.classLoader;
        final String methodName = "netCreateOrder";
        final Class<?> param1 = XposedHelpers.findClass("com.yodo1.android.ops.payment.RequestCreateOrder", classLoader);
        final Class<?> param2 = XposedHelpers.findClass("com.yodo1.android.ops.utils.Yodo1OpsCallback", classLoader);
        XposedHelpers.findAndHookMethod(
            className, classLoader, methodName,
            param1, param2,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                    log("HookComYoDo1SkiSafari2TXYYB_01 netCreateOrder beforeHookedMethod");
                }

                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    log("HookComYoDo1SkiSafari2TXYYB_01 netCreateOrder afterHookedMethod");
                }
            });
    }
}

结果

在这里插入图片描述


http://www.niftyadmin.cn/n/4933580.html

相关文章

山西电力市场日前价格预测【2023-08-12】

日前价格预测 预测明日&#xff08;2023-08-12&#xff09;山西电力市场全天平均日前电价为330.52元/MWh。其中&#xff0c;最高日前电价为387.00元/MWh&#xff0c;预计出现在19: 45。最低日前电价为278.05元/MWh&#xff0c;预计出现在13: 00。 价差方向预测 1&#xff1a; 实…

HoloLens 2设备MR 应用交互设计

AR 眼镜实现了虚拟世界与现实世界的融合&#xff0c;完成屏幕的“跨越”&#xff0c;人机交互设计也从二维平面迈向三维世界。目前&#xff0c;MR 应用的人机交互界面仍然处于早期发展阶段&#xff0c;各种理念和方法仍处于逐步形成与应用阶段&#xff0c;低成本地完成使用者从…

udp一般不会存在错数据

UDP在传输过程中会出现丢包的情况&#xff0c;但不会导致数据错乱的情况&#xff0c;这涉及到UDP协议的特性和工作原理。 无连接性&#xff1a;UDP是一种无连接的传输协议&#xff0c;每个UDP数据包都是独立的&#xff0c;没有依赖关系。因此&#xff0c;即使发生数据包丢失&am…

【CSH 入门基础 5 番外篇 -- zsh和bash区别及其使用介绍】

文章目录 1.1 zsh 和 bash 的区别1.1.1 oh-my-zsh 介绍1.1.2 zsh 插件 zsh-autosuggestions.zsh 1.1 zsh 和 bash 的区别 在Linux环境下&#xff0c;Bash和Zsh都是非常常见的Shell环境&#xff0c;它们都可以用来执行命令行指令&#xff0c;运行脚本等&#xff0c;但是它们之间…

安装istio和部署实例以及仪表盘

安装Istio 接下来我们将介绍如何在 Kubernetes 集群中安装 Istio&#xff0c;这里我们使用的是最新的 1.10.3 版本。 下面的命令可以下载指定的 1.10.3 版本的 Istio: ➜ ~ curl -L https://istio.io/downloadIstio | ISTIO_VERSION1.10.3 sh -如果安装失败&#xff0c;可以…

OCR的发明人是谁?

OCR的发明背景可以追溯到早期计算机科学和图像处理的研究。随着计算机技术的不断发展&#xff0c;人们开始探索如何将印刷体文字转换为机器可读的文本。 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;的发明涉及多个人的贡献&#xff0c…

C++——vector介绍及其简要模拟实现

vector的介绍 此主题介绍转载自(https://cplusplus.com/reference/vector/vector/) 1.vector是一个表示可变大小数组的序列容器 2.vector同数组一样&#xff0c;采用连续存储空间来存储元素&#xff0c;这样可以用下标来对vector中的元素进行访问&#xff0c;但是vector的大…

vue强制刷新变量

在前端开发中&#xff0c;我们经常需要变量的值实时响应到界面上。Vue就是一个非常强大的前端框架&#xff0c;它的数据绑定能够非常好地实现变量与界面的同步更新。但是有时候&#xff0c;我们需要强制刷新某个变量的值&#xff0c;以便界面能及时地反映出它的变化。本文将介绍…