如何破解运动世界校园模拟器检测

本文已过时最新版不可用最早用安卓上的PacketCapture抓到http包只要删除对应模拟器文件就可以后来变成了https又对emulatorUrls进行了加密再追加了几个文件就难倒了一批菜鸡软件使用360加固直接逆向难度不小选择曲线救国第一次用Flidder的autoresponder直接把emulatorUrls的值清零返回.

大家好,又见面了,我是你们的朋友全栈君。

本文已过时 最新版不可用

Packet Capture
最早用安卓上的Packet Capture 抓到http包 只要删除对应模拟器文件就可以
后来变成了https 又对emulatorUrls进行了加密 再追加了几个文件就难倒了一批菜鸡
软件使用360加固 直接逆向难度不小 选择曲线救国
第一次用Flidder的auto responder 直接把emulatorUrls的值清零返回.成功
过段时间压抑不住自己的好奇心 就是想知道它检测了那些文件 遂开始学习用xposed来hook API倒是一猜就中 是java.io.File.exists
根据http://www.52pojie.cn/thread-534126-1-1.html 的教程 先hook360的ClassLoader 就能hook我想要的java.io.File.exists了
函数声明 public boolean exists()
只要hook时param.thisObject.toString().contains(“模拟器文件关键字”) 修改返回值为false

运行效果

运行效果

全部源码

package com.bc.hook;

import android.content.Context;

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


public class Main implements IXposedHookLoadPackage {
    private String TAG = "BC";

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
        if (!loadPackageParam.packageName.equals("com.zjwh.android_wh_physicalfitness"))
            return;
        XposedBridge.log("Loaded app: " + loadPackageParam.packageName);
        //hook加固后的包,首先hook getNewAppInstance这个方法来获取context对象
        XposedHelpers.findAndHookMethod("com.qihoo.util.StubApp1211622898", loadPackageParam.classLoader,
                "getNewAppInstance", Context.class, new XC_MethodHook() {
                    @Override
                    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                        super.afterHookedMethod(param);
                        //获取到360的Context对象,通过这个对象来获取classloader
                        Context context = (Context) param.args[0];
                        //获取360的classloader,之后hook加固后的就使用这个classloader
                        ClassLoader classLoader = context.getClassLoader();
                        //下面就是强classloader修改成360的classloader就可以成功的hook了
                        XposedHelpers.findAndHookMethod("java.io.File", classLoader, "exists", new XC_MethodHook() {
                            @Override
                            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                                super.beforeHookedMethod(param);
                                XposedBridge.log("被检文件:" + param.thisObject);
                            }

                            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                                super.afterHookedMethod(param);
                                if (param.thisObject.toString().contains("Nox") || param.thisObject.toString().contains("nox") || param.thisObject.toString().contains("stacks") || param.thisObject.toString().contains("Tian") || param.thisObject.toString().contains("tian")) {
                                    param.setResult(false);
                                    XposedBridge.log(TAG + "返回值设为false");
                                }
                                XposedBridge.log(TAG + "返回值: " + param.getResult());
                            }
                        });

                    }
                });
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126190.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat 15.0.22 激活码(最新序列号破解)

    navicat 15.0.22 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    103
  • LTE以及OFDM中sample rate, fft size, channel bw, subcarrier, number of sample等概念的理解

    LTE以及OFDM中sample rate, fft size, channel bw, subcarrier, number of sample等概念的理解因为对OFDM中时域和频域的处理有些困惑,查到网上有篇如下的问答,可以帮助理解,所以转载至此。问:Hello,IwasfollowingthechartbelowtounderstandthebasicsofLTEbandwidthconfigurationandputmeintotalconfusion.Couldyoup

    2022年10月16日
    4
  • winscp登录主机拒绝_winscp连接被拒绝,winscp连接被拒绝的原因和解决办法详情

    winscp登录主机拒绝_winscp连接被拒绝,winscp连接被拒绝的原因和解决办法详情iis7服务器管理工具(曾用名:IIS7远程桌面):适用群体为:机房管理、站长、运维工作、程序员,等需要大量服务器或者电脑的用户朋友。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新。IIS7服务器管理工具适用于Windows操作系统和liunx操作系统;支持Ftp客户端批量操作。问题解决方法尝试以下方法:1)开启|关闭防火墙(这里需要关闭)sudouf…

    2022年9月17日
    1
  • finalize方法作用_Java finalize

    finalize方法作用_Java finalize关于object类中的finalize()方法。1、在object类中的源代码:protectedvoidfinalize()throwsThrowable{}2、finalize()方法只有一个方法体,里面没有代码,而且这个方法是protected修饰的。3、这个方法不需要程序员手动调用,JvM的垃圾回收器负责调用这个方法。4、finalize()方法的执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法。5、finalize()方法实际上

    2022年9月19日
    3
  • Lighttpd 配置fastcgi

    Lighttpd 配置fastcgihttp://my.oschina.net/davehe/blog/108107        在配置之前,先了解下lighttpd和fastcgi.            Lighttpd相信大家都使用过,它是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的webserver中较为优秀的一个

    2022年7月27日
    6
  • bgr2gray_tarjan算法

    bgr2gray_tarjan算法概述项目中用到yuvNV12转BGR24的算法,总结了几种常用算法代码如下。直接转换//NV12转BGRvoidNV12_T_BGR(unsignedintwidth,unsignedintheight,unsignedchar*yuyv,unsignedchar*bgr){constintnv_start=wi…

    2022年9月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号