逆向破解学习-割绳子

news2024/10/3 0:31:32

试玩

在这里插入图片描述支付失败,请检查网络设置

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

Hook成功

在这里插入图片描述

Hook代码

import android.app.Application;
import android.content.Context;

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

public class HookComYoDo1Ctr2A4399_1 extends HookImpl {
    @Override
    public String packageName() {
        return "com.yodo1.ctr2.A4399_1";
    }

    @Override
    public String appName() {
        return "割绳子";
    }

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        // 先hookApplication
        XposedHelpers.findAndHookMethod(
            Application.class,
            "attach",
            Context.class,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                    // 获取上下文
                    Context context = (Context) param.args[0];
                    // 获取类加载器
                    ClassLoader classLoader = context.getClassLoader();
                    // 获取自定义的类
                    final Class<?> productData = XposedHelpers.findClass(
                        "com.yodo1.android.sdk.helper.ProductData",
                        classLoader
                    );
                    // 获取自定义的类
                    final Class<?> payType = XposedHelpers.findClass(
                        "com.yodo1.android.sdk.constants.PayType",
                        classLoader
                    );
                    //        @Override // com.yodo1.android.sdk.callback.Yodo1PurchaseListener
                    //        public void purchased(int code, String orderId, ProductData productData, PayType payType) {
                    //            String productId = productData.getProductId();
                    //            if (code == 1) {
                    //                Yodo1GameSDK.paySuccess(productId);
                    //                YLog.d("sdk通知支付成功,开始和ops校验订单... ");
                    //            } else if (code == 2) {
                    //                YLog.d("sdk通知取消支付 ");
                    //                Yodo1GameSDK.payCancel(productId);
                    //            } else {
                    //                YLog.d("sdk通知支付失败 ");
                    //                Yodo1GameSDK.payFail(productId);
                    //            }
                    //        }
                    XposedHelpers.findAndHookMethod(
                        "com.zeptolab.sdk.ui.Yodo1Pay$8",
                        classLoader,
                        "purchased",
                        int.class,
                        String.class,
                        productData,
                        payType,
                        new XC_MethodHook() {
                            @Override
                            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                                super.beforeHookedMethod(param);
                                param.args[0] = 1;
                            }
                        }
                    );
                }
            }
        );
    }

    private static final class TestApplication extends Application {
        /*
        final void attach(Context context) {
            attachBaseContext(context);
            mLoadedApk = ContextImpl.getImpl(context).mPackageInfo;
        }
         */
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/864856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧&#xff1a;探索Python文本分类器的开发与应用&#xff1a;支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器&#xff0c;提供多种文本分类和聚类算法&#xff0c;支持句子和文档级的文本分类任务&#xff0c;支持二分类、多分类、多标签分类…

8月11日上课内容 nginx的多实例和动静分离

多实例部署 在一台服务器上有多个tomcat的服务。 配置多实例之前&#xff0c;看单个实例是否访问正常。 1.安装好 jdk 2.安装 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 cp -a /usr…

使用Javassist实现热修复

工程目录图 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 代码&#xff1a;LearnRobustFix

【学习FreeRTOS】第5章——FreeRTOS任务挂起与恢复

1.任务的挂起与恢复的API函数 vTaskSuspend() ——挂起任务&#xff08;类似暂停&#xff0c;可恢复&#xff0c;但删除任务&#xff0c;无法恢复&#xff09;vTaskResume() ——恢复被挂起的任务xTaskResumeFromISR()—— 在中断中恢复被挂起的任务 1.1.任务挂起函数vTaskSu…

收银一体化-亿发2023智慧门店新零售营销策略,实现全渠道运营

伴随着互联网电商行业的兴起&#xff0c;以及用户理念的改变&#xff0c;大量用户从线下涌入线上&#xff0c;传统的线下门店人流量急剧收缩&#xff0c;门店升级几乎成为了每一个零售企业的发展之路。智慧门店新零售收银解决方案是针对传统零售企业面临的诸多挑战和问题&#…

谷歌全栈多平台应用开发神器Project IDX来了!PaLM 2加持,代码效率翻倍

一直以来&#xff0c;从0开始构建应用&#xff0c;都是一项复杂的工作。尤其是跨越手机、Web和桌面平台的程序。 这是一片无尽的复杂海洋&#xff0c;需要把技术堆栈融合在一起&#xff0c;来引导、编译、测试、部署、监控应用程序。 多年来&#xff0c;谷歌一直致力于让多平…

批量操作安装功能

功能结构设计&#xff1a; 分别使用单线程、多线程、多进程、协程分别实现功能&#xff1a; 一、 单线程实现功能 1.1单线程 实现发送点击生成 transaction_id; click01.py &#xff1a; 发送点击模块&#xff1b; base.py: 封装一些公共的方法&…

2023下半年软考改成机考,对考生有哪些影响?

软考改革成无纸化考试已经实锤。根据陕西软考办官网的消息&#xff0c;从2023年11月起&#xff0c;软考的所有科目都将改为机器考试形式。详情请参阅&#xff1a; 那么软考考试改为机考后&#xff0c;对我们会有哪些影响呢&#xff1f;我来简单概括一下。 1、复习的方法可以根…

苍穹外卖day12笔记

一、工作台 联系昨天 要实现的功能和昨天差不多&#xff0c;都是查询数据。 所以我们就写出查询语句&#xff0c;然后直接导入已经写好的代码。 实现效果 查询语句 今日数据 营业额 select count(amount) from orders where status5 and order_time > #{begin} and …

【二分+贪心】CF1665 C

Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 一开始想太简单wa6了 只想到先感染大的分量&#xff0c;然后最后把最大的分量剩下的染色 但是可能会有别的分量更大&#xff08;因为最后给最大的染色之后可能不再是最大的&#xff09; 可以用堆维护&#xf…

SQL | 高级数据过滤

5-高级数据过滤 通过组合WHERE子句&#xff0c;建立功能更强的检索语句。 5.1-组合WHERE子句 前面写的都是单一条件下的WHERE子句&#xff0c;SQL语句允许给出多个WHERE子句来组合检索&#xff0c;这些WHERE子句通过AND子句或者OR子句进行连接。 操作符&#xff08;operato…

将达梦DM8数据库JDBC驱动注册到本地Maven仓库安装

这里写目录标题 1下载DmJdbcDriver18.jar2,以管理员身份运行CMD窗口&#xff0c;然后执行如下安装命令&#xff1a;3.pom文件添加引用 1下载DmJdbcDriver18.jar 我本地放在d:\DmJdbcDriver.jar 2,以管理员身份运行CMD窗口&#xff0c;然后执行如下安装命令&#xff1a; mvn …

SQL Server基础之游标

一&#xff1a;认识游标 游标是SQL Server的一种数据访问机制&#xff0c;它允许用户访问单独的数据行。用户可以对每一行进行单独的处理&#xff0c;从而降低系统开销和潜在的阻隔情况&#xff0c;用户也可以使用这些数据生成的SQL代码并立即执行或输出。 1.游标的概念 游标是…

ELK的搭建和使用

ELK的搭建和使用 1、什么是ELK 日志收集平台有多种组合方式&#xff1a; ELK Stack 方式&#xff1a;Elasticsearch Logstash Filebeat Kibana&#xff0c;业界最常见的架构。 Elasticsearch Logstash Kafka Kibana&#xff0c;用上了消息中间件&#xff0c;但里面也有…

sxs卡丢失数据如何找回?sxs卡数据丢失原因和修复办法分享!

说起sxs卡&#xff0c;你们是否有所了解呢&#xff1f;sxs卡具有很好的传输性能&#xff0c;能够存储照片和视频数据&#xff0c;主要被放置在索尼XDCAM EX型摄像机上。 而在使用sxs卡设备过程中&#xff0c;难免和其他设备一样&#xff0c;容易出现数据丢失情况。而如果丢失的…

不一样的新体验!太川股份联手菊风打造智能门禁可视对讲

在智能化浪潮的发展中&#xff0c;实时音视频等信息技术的加持使得楼宇对讲门禁的功能越发多且智能。作为安防产业的三大支柱之一&#xff0c;门禁对讲逐渐衍生为社区与家庭智慧化融合的“桥梁”。菊风用实时音视频技术赋能太川楼宇门禁可视对讲应用&#xff0c;将在兼顾稳定楼…

【C++从0到王者】第二十站:模板进阶

文章目录 前言一、typename 和 class的一些区别二、非类型模板参数1.非类型模板参数介绍2.array容器 三、模板的特化1.函数模板的特化2.类模板的特化1.全特化2.偏特化&#xff08;半特化&#xff09; 三、模板的分离编译四、总结 前言 在前面我们使用模板主要是为了解决两类问…

vs2022+qt6.24+Cef编译

1.QCefView源码下载地址 https://github.com/cefview/qcefview2.目录层级关系如下&#xff1a; 3.下载CefViewCore git pull --regit pull --recurse-submodules上面命令失败直接用下面的命令 git clone gitgithub.com:CefView/CefViewCore.git4.编译QCefView准备工作 a.准…

Java程序猿搬砖笔记(十五)

文章目录 在Java中将类作为参数传递(泛型)IDEA快捷键&#xff1a;查看该方法调用了哪些方法、被哪些方法调用快捷键&#xff1a;ctrlalth IDEA快捷键&#xff1a;快速从controller跳转到serviceImplIDEA快捷键&#xff1a;实现接口的方法IDEA 快捷键&#xff1a;快速包裹代码ID…

剑指offer66.构建乘积数组

我一开始的想法就是&#xff0c;先把所有数的乘积求出来&#xff0c;然后遍历数组&#xff0c;用这个积除以它&#xff0c;就是除了这个数外所有数的乘积。但是题目明确给了不能用除法&#xff0c;所以可不可以用位运算来实现除法呢。 class Solution {public int[] construct…