xposed hook之360加固的APP过模拟器检测

0x0 故事的由来

前段时间把17年某东双十一抽到的X20换了,换了某200万图标的k40(安卓11,手机稳定版刷了面具+lsposed)
但是有几款以前的APP需要用指定的imei或者oaid来伪造原设备继续使用,所以才有了这个帖子…


0x1 用到的工具和用途

1、VMOS Pro(安卓虚拟机,自带xposed和root,类似多开)
2、MT/NP管理器(文件管理)
3、反射大师3.5.3+XP框架(不支持安卓11的脱壳,所以我用VMOS pro,论坛内的BlackDex试过脱不了壳)
4、JADX(反编译APP 查看JAVA代码)


0x2 VMOS装APP后有真机检测

因为我要多开,所以用VOMS来装APP,打开的时候被检测了。。
在这里插入图片描述

但是我记得VMOS Pro好像能开启虚拟机用传感器,但是开启之后反转手机无效果。(不清楚是我操作有问题,还是VMOS的问题)
想到前几天刚学了点皮毛的xposed hook,所以想从代码入手了hook他


0x3 MT查看安装包

用MT一看是*60加固,不能直接看SMAIL,要先脱壳。所以要用反射大师或者别的工具。
在这里插入图片描述

0x4 反射大师安装和使用

VMOS 装xposed框架装反射大师,激活模块后
反射大师选择要脱壳的APP
在这里插入图片描述

然后运行APP,点击芒星-当前ACTIVITY,长按“写出DEX”(写出全部DEX)
在这里插入图片描述

并勾选修复
在这里插入图片描述

0x5 反编译查看代码

JADX搜索定位

我这用的是JADX,全选dex直接查看所有代码(也可以直接用MT/NP管理器)
在这里插入图片描述

搜索关键词“请使用手机”,搜到一个,那肯定就是他了
在这里插入图片描述

我们点进去看看
在这里插入图片描述

然后就更能确定就是他。。

MyDialog myDialog7 = this.this$0.this$0.this$0.this$0.vmdialog;
if (myDialog7 != null) {
    
    
    myDialog7.show(); /* 显示这个检测弹窗 */ 
}

找到show方法

右键“跳到声明”找到show方法,类:com..*.activity.ui.MyDialog
在这里插入图片描述

    public void show() {
    
    
        getWindow().setGravity(17);
        super.show();
    }

既然找到了方法,那让他不运行就不会显示这个弹窗

0x6 e4a_xposed_hook

因为没学过JAVA,所以只能用e4a的接口函数来编写模块了…

public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable
{
    
    
        if (lpparam.processName.equals("com.***.****"))//***** 判断应用名
        {
    
    
                XposedBridge.log("加载 App:"  + lpparam.packageName);
                XposedHelpers.findAndHookMethod("com.stub.StubApp", lpparam.classLoader, "a", Context.class, new XC_MethodHook() {
    
    //或者a
                        @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,hook加固后的真正代码
                                XposedHelpers.findAndHookMethod("com.***.***.activity.ui.MyDialog", classLoader, "show", new XC_MethodReplacement() {
    
    //类名和方法名
                                        @Override
                                        protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable {
    
    
                                                return null;//不再使用原方法
                                        }
                                });
                        }        
                });
        }
}

装好并启用模块,重启VMOS虚拟机之后打开APP,检测窗口不再显示。(但是好像所有的弹窗都没了。。。下次可以研究研究改写函数)
在这里插入图片描述

【PS:hook一时爽,一直hook一直爽。。】
【再PS:之前发过的某水印相机也可以用hook自定义函数结果,但是论坛不能发成品,就需要大家动动手了】

猜你喜欢

转载自blog.csdn.net/a952252664/article/details/117536780