多开检测

  • 理论基础
  • 多开实现原理解析
  • 代码实现:多开包名
  • 代码实现:多用户

理论基础

app多开常用于做一些不合法的事情,如高羊毛,黑灰产,甚至会对app的功能做破坏修改。因此多开在实际app应用中是有一定危害性的,因此对多开环境的识别是很重要的,通过识别多开环境有利于让app更加安全。

多开实现原理解析

app多开实现原理很多种类,如采用多用户方式(mumu模拟器的多开器实现)、通过创建不同进程名称(多开分身、双开助手)进行运行。
我们知道在每一个的app都有属于自己的私有目录,一般是“/data/data/包名/”或“/data/user/用户号/包名”,多开方式也是基于这些去做处理的,那么我们就可以通过调用系统getFilesDir()方法可以读取到私有目录下的信息目录。在多开环境下,获取到目录会变为“/data/data/多开包名/xxxxxxxx”或“/data/user/用户号/多开App的包名”。
基于以上的原理分析,就可以通过以下代码实现对多开环境的判断识别了。

代码实现:多开包名

//用于收集可以实现多开的app包名,已收集到最新市面上的大部分多开app
private String[] packagename = {"com.bly.dkplat",//多开分身本身的包名"com.by.chaos",//chaos引擎"com.lbe.parallel",//平行空间"com.excelliance.dualaid",//双开助手"com.lody.virtual",//VirtualXposed,VirtualApp"com.qihoo.magic",//360分身大师"com.dual.dualgenius", //DualGenius/双开精灵"com.jiubang.commerce.gomultiple" //GO Multiple/Go双开
};通过读取文件包的方式进行比对
public  boolean checkPrivateFilePath(Context context)
{String path = context.getFilesDir().getPath();for(String vtpkg: packagename){if(path.contains(vtpkg)){return true;}}return false;
}

代码实现:多用户


public  String GetMulData()
{//通过读取命令行方式实现。String filter = exec("cat /proc/self/cgroup");if(null == filter || (filter.length() == 0)){return null;}int uidStartIndex = filter.lastIndexOf("uid");int uidEndIndex = filter.lastIndexOf("/pid");if(0 > uidStartIndex){return null;}if( 0 >= uidEndIndex){uidEndIndex = filter.length();}filter = filter.substring(uidStartIndex + 4, uidEndIndex);try {String strUid = filter.replaceAll("\n", "");if(isNumeriToUid(strUid)){int  uid = Integer.valueOf(strUid);filter = String.format("u0_a%d", uid -10000);return filter;}}catch (Exception e){return null;}return  null;
}

android多开原理和检测。相关推荐

  1. android 检测过程,Android 系统对permision的检测过程

    Android 系统对permision的检测过程 RK3288 5.1 中以太网设置静态IP 对permission的检测 简略的调用过程如下: frameworks\opt\net\etherne ...

  2. Android内存泄漏的检测流程、捕捉以及分析

    https://blog.csdn.net/qq_20280683/article/details/77964208 Android内存泄漏的检测流程.捕捉以及分析 简述: 一个APP的性能,重度关乎 ...

  3. android电池容量查看器,Android AccuBattery(电池损耗检测软件)V1.2.5 安卓专业版

    Android AccuBattery(电池损耗检测软件)是一款功能实用的提供安卓手机电池保持最佳状态而设计的电池管家软件.AccuBattery科学地维护电池健康,显示电池使用情况以及测量电池容量( ...

  4. Android 第三方SDK的检测与提取

    Android 第三方SDK的检测一直是研究领域的热点与难点: 目前检测Android第三方SDK的方法主要分为两类 下手的目标也主要存在三点 首先说检测的点: AndroidManifest.xml ...

  5. Android之——模拟实现检测心率变化的应用实例

    Android之--模拟实现检测心率变化的应用实例 当今,市面上有了一些可以通过Android应用来检测病人心率,血压,体温,等等,一系列方便人们日常生活的Android手机应用.那么,这些实用的手机 ...

  6. 基于android的检测心率,基于android手机的血氧饱和度检测

    67 基于 android手机的血氧饱和度检测 许方成,赵曙光,杨 峰,黄佳佳 (东华大学信息科学与技术学院,上海 201620) 摘要:血氧饱和度是人体健康状况的标准指标,连续记录血氧饱和度可以预测 ...

  7. Android原生开发--模拟器检测工具包

    Android原生开发–模拟器检测工具包 模拟器检测工具包使用例子 //使用方法 Context context=getBaseContext(); boolean isEmn= EasyProtec ...

  8. Android实现佩戴安全帽检测和识别(含Android源码)

    Android实现佩戴安全帽检测和识别(含Android源码) 目录 Android实现佩戴安全帽检测和识别(含Android源码) 1. 前言 2. 佩戴安全帽检测和识别的方法 (1)基于目标检测的 ...

  9. android 活体检测方案,一种基于人脸识别认证的Android红外双目活体检测的制作方法...

    本发明涉及人脸识别领域,具体涉及一种基于人脸识别认证的Android红外双目活体检测. 背景技术: 在目前的利用红外线实现双目活体检测的技术中,普通红外双目,能够同时实时采集近红外和可见光两种图像,并 ...

  10. android edittext字数显示不全,Android的EditText字数检测和限制解决办法

    Android的EditText字数检测和限制解决办法 控件EditText在Android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输 ...

最新文章

  1. 软件公司应该砍掉的成本
  2. 使用训练数据结构代替注意力机制之训练一个小说
  3. Swift 1.1语言第7章 函数和闭包
  4. ubuntu12.04 启动n卡独显方法
  5. Java集合容器全面分析
  6. 【数据结构-树】2.二叉树遍历与线索二叉树(图解+代码)
  7. Java 理论与实践:您的小数点到哪里去了?(转载)
  8. Mysql 存储过程基本语法
  9. 大数据分块_谷歌卫星影像金字塔分块下载原理说明
  10. hystrix文档翻译之Dashboard
  11. linux 终端中文乱码解决方法
  12. prototype.js学习(3)函数绑定
  13. 机房怎么制作服务器,电信服务器机房服务器搬迁地网制作方法
  14. HTTP 503 错误 – 服务不可用 (Service unavailable)
  15. 腾讯会议的各种使用办法
  16. 5-10 计算存款利息 (10分)
  17. 对极几何-三角测量-知识点
  18. 分享网页相关好用小工具
  19. tensor.repeat()
  20. java从小白到工程师--基础篇(二)

热门文章

  1. 宝塔面板配置SSL证书
  2. Java 批量下载图片并压缩为Zip
  3. 用python写一个简单的名片管理系统
  4. 用户密码MD5和SHA加密
  5. 【CicadaPlayer】av_rescale_q 学习:转换PTS和Duration
  6. JavaScript封装回调函数(委托)
  7. 区块链智能合约及形式化验证平台 VaaS 讲解
  8. 算法题目打卡:Ques20201024
  9. 网页打印服务器无法创建对象,打印问题,小编教你怎么解决automation服务器不能创建对象...
  10. 将RT-Thread Nano移植到STM32F401CCU6