美文网首页
Android应用分身检测

Android应用分身检测

作者: 得食猫 | 来源:发表于2019-05-12 11:26 被阅读0次

最近app在推广过程中发现有大量的用户使用小号来领取邀请奖励,而小号的操作往往是利用多开软件开启应用分身来登录。为此,我需要区分出本体和克隆体。

当今市面上流行的分身主要有三类

1.修改Framework

手机厂商实现的分身功能就是用这种方式实现的

检测方案:手上有个小米测试机,正好自带分身,通过getFileDir()的api试了下,在本体得到的是data/data/com.xxx.xxx/files,克隆体得到的是data/user/10/com.xxx.xxx/files

2.修改apk

通过反编译apk,修改apk包名、签名等将apk伪装成另外一个app。市面上常见的第三方多开app大部分都是使用的这种技术。其特点是每次制作一个分身都需要时间拷贝、并且在应用列表中可以看到

检测方案:
跟上面一样,可以用getFileDir()来检测,只不过一个是data/data/com.xxx.xxx/files,另一个是data/data/com.xyz.xyz/files

3.虚拟操作系统

虚拟一个操作系统,克隆体app在这个虚拟系统中运行,在应用列表不可见,代表产品:360分身大师

检测方案:
这个据说是唯一一种绕过getFileDir()的分身方式,确实这种方式让我耗费了很长时间,下面以360的分身大师举例,详细说下分析过程

  1. 首先通过getFileDir()尝试,本体和克隆体输出一致。失败!!
  2. 通过在本体和克隆体登录不同账号获取SP中存储的账号信息,确定获取的信息不同,证明存储位置不一致
  3. 通过文件管理器查看最近修改的文件,发现系统根目录下有一个docker的文件夹,里面包含了跟根目录类似的结构,在其里面的Android/data下就会发现我们自己的包名,分身的本地数据就存放在这里。
  4. 找到分身的本地存储后,本想向其中存储数据用来标记是否为分身,但本体运行时报了一个无权限写入的异常,因此改为了判断当前是否有对该目录的写入权限

PS:据说“平行空间”原理和“360分身大师”相同,经测试发现通过getDirFile()就可以判断出来,至此,分身检测基本完成

相关文章

  • Android应用分身检测

    最近app在推广过程中发现有大量的用户使用小号来领取邀请奖励,而小号的操作往往是利用多开软件开启应用分身来登录。为...

  • Android:应用多开,分身检测

    本文转载自:链接多开/分身原本用于方便有多个微信/QQ解决同时登录的问题,但近来年被各种黑产所利用,多见于薅羊毛,...

  • Android 获取APP 文件目录 & 模拟器检测

    1. 获取app 目录 context.getFilesDir()Android 6.0的分身应用为了能与原应用区...

  • 热补修复最新限制

    通告 | Android P新增检测项 应用热修复受重大影 Google在Android P中添加了新的检测项,对...

  • android应用检测更新

    序言: 在android开发过程中,我们不可能将一个应用开发到完美才上线(估计永远也无法上线了),所以,我们有版本...

  • android:allowBackup = false后编译报错

    android:allowBackup = false后编译报错 一、解决BUG 腾讯云-移动应用安全检测结果: ...

  • Android 检测UI卡顿

    Android 检测UI卡顿 相关工具代码可以在这里找到:BlockDetect 检测应用在UI线程的卡顿,打印出...

  • 检测分身App

    利用命令检测已安装第三方分身App App被分身软件复制安装后,就可以随意拦截修改Api层东西,比如位置信息等,容...

  • Android 内存泄露优化处理

    参考:Android应用内存泄露分析、改善经验总结使用新版Android Studio检测内存泄露和性能解决安卓C...

  • 一些第三方库(辅助使用)目录说明

    leakcanary:检测应用内存泄漏问题,这个都知道吧 butterknife:帮助Android控件和回调的进...

网友评论

      本文标题:Android应用分身检测

      本文链接:https://www.haomeiwen.com/subject/vlizoqtx.html