jjzjj

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

闷骚小贱男 2023-05-15 原文

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自定义函数结果,但是论坛不能发成品,就需要大家动动手了】

有关xposed hook之360加固的APP过模拟器检测的更多相关文章

  1. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  2. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  3. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  4. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  5. ruby - 使用 postgres.app 在 rvm 下要求 pg 时出错 - 2

    我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension

  6. ruby-on-rails - 在这种情况下我如何模拟一个对象?没有明显的方法可以用模拟替换对象 - 2

    假设我在Store的模型中有这个非常简单的方法:defgeocode_addressloc=Store.geocode(address)self.lat=loc.latself.lng=loc.lngend如果我想编写一些不受地理编码服务影响的测试脚本,这些脚本可能已关闭、有限制或取决于我的互联网连接,我该如何模拟地理编码服务?如果我可以将地理编码对象传递到该方法中,那将很容易,但我不知道在这种情况下该怎么做。谢谢!特里斯坦 最佳答案 使用内置模拟和stub的rspecs,你可以做这样的事情:setupdo@subject=MyCl

  7. ruby - "public/protected/private"方法是如何实现的,我该如何模拟它? - 2

    在ruby中,你可以这样做:classThingpublicdeff1puts"f1"endprivatedeff2puts"f2"endpublicdeff3puts"f3"endprivatedeff4puts"f4"endend现在f1和f3是公共(public)的,f2和f4是私有(private)的。内部发生了什么,允许您调用一个类方法,然后更改方法定义?我怎样才能实现相同的功能(表面上是创建我自己的java之类的注释)例如...classThingfundeff1puts"hey"endnotfundeff2puts"hey"endendfun和notfun将更改以下函数定

  8. ruby - 在 RSpec 中 stub /模拟全局常量 - 2

    我有一个gem,它有一个根据Rails.env的不同行为的方法:defself.envifdefined?(Rails)Rails.envelsif...现在我想编写一个规范来测试这个代码路径。目前我是这样做的:Kernel.const_set(:Rails,nil)Rails.should_receive(:env).and_return('production')...没关系,只是感觉很丑。另一种方法是在spec_helper中声明:moduleRails;end而且效果也很好。但也许有更好的方法?理想情况下,这应该有效:rails=double('Rails')rails.sho

  9. ruby - 检测由 RSpec、Ruby 运行的代码 - 2

    我想知道我的代码是否在rspec下运行。这可能吗?原因是我正在加载一些错误记录器,这些记录器在测试期间会被故意错误(expect{x}.toraise_error)弄得乱七八糟。我查看了我的ENV变量,没有(明显的)测试环境变量的迹象。 最佳答案 在spec_helper.rb的开头添加:ENV['RACK_ENV']='test'现在您可以在代码中检查RACK_ENV是否经过测试。 关于ruby-检测由RSpec、Ruby运行的代码,我们在StackOverflow上找到一个类似的问题

  10. ruby - 使用 Ruby Daemons gem 检测停止 - 2

    我正在使用rubydaemongem。想知道如何向停止操作添加一些额外的步骤?希望我能检测到停止被调用,并向其添加一些额外的代码。任何人都知道我如何才能做到这一点? 最佳答案 查看守护程序gem代码,它似乎没有用于此目的的明显扩展点。但是,我想知道(在守护进程中)您是否可以捕获守护进程在发生“停止”时发送的KILL/TERM信号...?trap("TERM")do#executeyourextracodehereend或者你可以安装一个at_exit钩子(Hook):-at_exitdo#executeyourextracodehe

随机推荐