首页
社区
课程
招聘
[原创] Android模拟器检测体系梳理
2019-11-17 16:20 26018

[原创] Android模拟器检测体系梳理

2019-11-17 16:20
26018

博客:www.wireghost.cn

Android模拟器检测体系梳理

模拟器作为一种虚拟机,配合改机工具,能够以较低成本实现设备多开,因此而备受黑灰产的青睐。如何准确识别模拟器成为App开发中的一个重要模块,目前也有专门的公司提供相应的SDK供开发者识别模拟器。通过前段时间对模拟器检测技术的调研,希望能总结出一套特征挖掘的体系化方案。

模拟器概述

定义

安卓模拟器是一种可以运行在电脑上的虚拟设备,通过它可以实现应用的跨平台操作,让移动端APP无需任何改动即可在PC上执行。

特性

优势

随着技术的不断发展,目前模拟器基本已经能够完成手机90%以上的功能。此外,由于在PC端工作,与传统手机相比,具有以下几点优势:

  • 更炫:支持大屏幕、提供更炫酷的视觉效果,从而能够天然的将一些移动端由于适配成客户端应用;
  • 易上手:支持鼠标、键盘、手柄、摄像头等众多硬件外设,将操作方式从手指运动中解放出来,发挥外设的优势;
  • 更强的性能:通过模拟器可自定义配置性能参数,发挥PC硬件性能优势,跑分数据远超手机,使得高配游戏运行不再卡顿;
  • 更好的操控性:通过虚拟按键功能,能够将任意点触操作、震动、摇摇等手机独有操作映射到键盘的自定义按键,更加简易、便捷;
  • 使用PC工具:利用PC端其他辅助工具完成对移动端应用的支持,如通过按键精灵完成自动挂机等操作,解放双手;
  • 模拟多人操作:通过模拟器多开功能,零成本体验同时多部手机、多个账户开小黑屋,实现刷单的快感;
  • 更便捷的虚拟定位功能:通过模拟器虚拟定位,让你轻松落脚五湖四海;
  • 再也不用担心电池电量、手机流量了...

问题

此外,Android模拟器鉴于自身技术瓶颈,也存在以下普遍问题:

  • 性能:运行时普遍需要占据较大的CPU、内存等资源,导致低配机运行不流畅。此外,即便是高配机,多开也很容易出现卡顿等现象;
  • 稳定性:模拟器技术本身的BUG导致的闪退、花屏、无响应等现象;
  • 兼容性
    • 硬件兼容性:主要表现为大部分模拟器对AMD架构PC的不支持;
    • 应用兼容性:比如部分模拟器尚不兼容ARM架构的APP,又或者某些应用对安卓内核、虚拟机的调用方式比较底层,当模拟器对这些接口支持的不好时,表现为该类程序无法在模拟器上运行;
    • PC系统兼容性:表现为模拟器主要适配Windows主流平台,而能在Mac下运行的很少,且过低、过高版本支持的不好(如XP之前版本、Win 10,市面上某些定制的平板系统等);
    • 安卓系统兼容性:目前模拟器上的Android系统仍然停留在4.x,部分达到5.1,使得部分对安卓版本有要求的应用或游戏在模拟器上运行体验不好。

底层关键技术

虚拟化技术

模拟器是用软件来模拟硬件操作,这就需要用到虚拟化技术。广义的虚拟化,是指将网络、CPU、内存及存储等各种实体资源,予以抽象、转换后呈现出来,进而打破实体结构间不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。我们所熟知的虚拟机就是虚拟化技术中的一种,通常来说它们只是模拟了一套与Host主机相同架构、相同指令集的硬件平台,不涉及内存和CPU的虚拟化。所有的Android模拟器都在不同程度上运用了虚拟化技术,比如雷电、夜神,包括Bluestack模拟器是基于Virtualbox虚拟机,谷歌原生模拟器和红手指云模拟器则是应用了Qemu的虚拟化技术。

CPU虚拟化

目前,已知的所有ARM架构的模拟器都是基于Qemu虚拟机。Qemu采用的是纯软件模拟,在物理机的操作系统上创建一个模拟硬件的程序来仿真所有想要的硬件,然后在上面跑ARM运行时。在这种环境下,由于程序每次执行都需要将其翻译成宿主机(X86)的指令,导致性能非常低下,这也是原生模拟器不够流畅的原因之一。

ARM Translation

当下主流的Android模拟器都是X86架构,基于Virtualbox虚拟机。由于不需要做CPU虚拟化,少了一层指令集转换过程,因此在运行支持X86架构的app时,就和普通的虚拟机没有区别,速度也就明显提高了很多。
此外,针对ARM架构的兼容性问题,普遍采用的是半虚拟化,根据二进制翻译技术将ARM指令动态翻译成X86指令。

黑产常用的模拟器

目前市面上安卓模拟器软件种类繁多,有51、mumu、蓝叠、夜神、逍遥、海马玩、雷电等等。通过在黑产聚集论坛、QQ群等多个渠道进行调研,我们发现黑产当下常用的是夜神、雷电和逍遥模拟器。



可以注意到,这些模拟器的共通点是都自带修改设备参数、多开、操作录制和虚拟定位等功能。



模拟器检测技术框架

模拟器检测的本质就是要利用模拟器和真机之间的微小差异,从而判断当前设备是否为模拟器,具体检测技术框架整理如下:

如何挖掘特征

结合前面梳理出的模拟器检测框架,后续在做相应的特征挖掘时,可直接根据该脑图做进一步的完善和加强。

 

<table><tr><td>特征项</td><td colspan="2">细分点</td><td>描述</td><td>备注</td></tr><tr><td rowspan="2">软件信息</td><td>应用层</td><td></td><td></td> <td></td></tr><tr><td>系统库</td><td></td><td></td><td></td></tr><tr><td rowspan="3">无线射频</td><td>WIFI</td><td></td><td></td><td></td></tr><tr><td>GPS</td><td></td><td></td><td></td></tr><tr><td>…</td><td></td><td></td><td></td></tr><tr><td rowspan="9">硬件信息</td><td rowspan="3">底层硬件</td><td>CPU</td><td></td><td></td></tr><tr><td>电池</td><td></td><td></td></tr><tr><td>设备参数</td><td></td><td></td></tr><tr><td rowspan="6">硬件抽象层</td><td>图形</td><td></td><td></td></tr><tr><td>相机</td><td></td><td></td></tr><tr><td>蓝牙</td><td></td><td></td></tr><tr><td>输入</td><td></td><td></td></tr><tr><td>存储</td><td></td><td></td></tr><tr><td>传感器</td><td></td><td></td></tr><tr><td rowspan="4">文件系统(重点关注Linux内核相关)</td><td>检查/sys硬件驱动信息</td><td></td><td></td><td></td></tr><tr><td>检查/dev设备节点特征</td><td></td><td></td><td></td></tr><tr><td>检查/proc运行时的内核信息映射</td><td></td><td></td><td></td></tr><tr><td>…</td><td></td><td></td><td></td></tr></table>

 

此外,基于文件系统差异的特征挖掘,具体可参考Android根目录文件结构进行操作,以下是几个重要的目录/文件的说明:

  • /mnt:挂载点目录
  • /etc:指向 /system/etc ,系统配置文件所在目录
  • /data:存放用户安装的应用以及各种数据
  • /system:Android系统目录文件夹
  • /dev:设备节点文件存放地
  • /sys:用于挂载 sysfs文件系统,在设备模型中,sysfs文件系统用来表示设备的结构,将设备的层次结构形象的反应到用户空间中
  • /proc:这是一个虚拟的文件系统,不占用实际存储空间。它以文件系统的方式为访问系统内核的操作提供接口,动态从系统内核中读出所需信息
  • init.rc:启动脚本
  • default.prop:系统属性配置文件

对应的检测弱点

基于模拟器结构特征

利用任务调度检测模拟器

原理

模拟器与真机的本质区别在于运行载体,市面上已知的ARM模拟器都是基于qemu虚拟机。由于qemu在执行程序时实际上是将其翻译成宿主机的指令,比如将安卓的arm指令翻译成PC的x86指令。为了效率上的考虑,qemu在翻译执行arm指令时并没有实时更新模拟的pc寄存器值,只会在一段代码翻译执行完之后再更新,而真机中pc寄存器是一直在更新的。根据这一点,可以设计一段CPU任务调度程序来检测模拟器。

优缺点

优点:因为是基于qemu的二进制翻译技术来做特征检测,所以能够很好的识别这类Android模拟器。
缺点:

  1. 需要自己设计反应离散程度的算法来统计任务调度的地址分布情况,想要实际应用到SDK有些困难
  2. 会执行汇编代码,在不同的机器设备上需要考虑稳定性和兼容性等问题

利用cache特性检测Android模拟器

原理

由于绝大部分手机都是基于ARM架构,而模拟器几乎全部是运行在PC的X86架构上。因此,可以利用ARM与X86的底层缓存行为差异来判断是否为真机。
具体来说,ARM采用的是将指令存储与数据存储分开的哈佛架构,L1 Cache(一级缓存)被分成了平行的两块,即I-Cache(指令缓存)和D-Cache(数据缓存),而X86采用的是将指令存储和数据存储合并在一起的冯•诺伊曼结构,L1 Cache是连续的一块缓存。所以,如果我们通过读写地址指令的方式对一段可执行代码进行动态修改,那么在执行的时候,X86架构上的指令缓存会被同步修改,而对ARM架构而言,这种数据读写操作修改的只是D-Cache中的内容,此时I-Cache中的指令并不会被更新。

优缺点

优点:能够准确的识别arm和x86架构。
缺点:要执行汇编代码,在不同的机器设备上需要考虑稳定性和兼容性等问题。实测发现容易引起崩溃,需要配合多进程予以解决。

基于Android体系架构

应用层行为数据

这种检测方案本质上是对正常用户的行为模式进行统计分析,它也许不能有效的对真机和模拟器进行区分,但可以作为风险设备画像的一个参考维度。

无线射频
WIFI
 

检查WIFI列表这种方式,目前没发现明显缺点。当正常手机接入WIFI的时候,周边往往有复数的WIFI信号,而模拟器由于不具备检索周边WIFI的能力,其WIFI列表通常为空或者只有一个WIFI。

GPS
 

这种检测手法的原理是基于模拟器没有真实的GPS模块,通常无法获取到地理位置信息。缺点是部分用户在实际使用中可能会关闭该权限,导致获取不到数据。

硬件信息
底层硬件
  • CPU
    1. 型号:正常x86手机的cpu型号为intel atom,arm则是联发科,高通,麒麟等。缺点是需要大盘做数据分析,另外可能要结合手机型号等其他维度才能做一个比较好的识别。
    2. 温度:目前来看应该是比较靠谱的,缺点是需要大量的数据统计做支撑,不排除有误杀的可能。
  • 电池
    需要在后台多次采集数据,检验电压、电量是否有实时变化,实际应用起来有些困难。。
  • 设备
    通过系统API获取手机硬件参数,可以说是非常传统的模拟器检测方案了。也正是因为传统,基本上都知道会获取哪些信息,所以缺点是很容易遭到篡改。
硬件抽象层
  • 相机
    通过提取摄像头参数信息,可以有效的识别当前设备是否为“主流手机”。缺点是考虑到平板、学习机等“冷门设备”的存在,不能直接区分出模拟器,需要结合其他维度一起使用,且需要接入的APP有打开摄像头的权限。
  • 蓝牙
    若想从API层面进行检测,那就必须先开启蓝牙,而这个需要弹框让用户确认。
  • 输入
    缺点是对触摸事件的处理是在前台完成的,如果是作为SDK可能不是很好接入和应用。
  • 存储
    1. 闪存分区
      Android系统的更新以及刷机等方式都有可能导致分区的变化,目前来看,在高版本的机器上检查mmcblk、dm-x分区并不是一个靠谱的特征,需要配合其它维度一起使用。
    2. /mnt挂载
      这种文件名的检测手法只能针对性的做特定模拟器检测、不通用,且很容易通过版本更新、改名等手段进行绕过。
  • 传感器
    除判断设备有支持哪些传感器外,若想要做更进一步的验证,就仍然绕不开多次采集数据的问题。
文件系统

特点是用于做特征检出的目录文件与底层硬件的关联性越强,其效果越好,反之越可能失效。建议尽量提取和虚拟机、硬件驱动相关的文件特征,缺点是部分特征可能需要结合大量的机型数据做可靠性验证。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞10
打赏
分享
最新回复 (22)
雪    币: 17842
活跃值: (59778)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
Editor 2019-11-17 16:29
2
0
感谢分享!
雪    币: 27975
活跃值: (1227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
潇湘公子 2019-11-17 21:08
3
0
感谢分享!
雪    币: 1096
活跃值: (344)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
lscmxl 2019-11-18 09:19
4
0
Cache实际情况是会有误判;
采集系统各种指标关键在于采集的方式和传输方式,就是抗逆那套。
雪    币: 36
活跃值: (936)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
芃杉 2019-11-18 10:12
5
0
6666
雪    币: 1114
活跃值: (2589)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Amun 2019-11-18 10:53
6
0
可以明确一下检测的对象是 VirtualBox/VMware/Hyper-V/KVM/XEN/QEMU 等虚拟机,还有一些 LXC 容器,这后面还有很多东西要做。
雪    币: 1891
活跃值: (1740)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
莫灰灰 9 2019-11-18 11:16
7
0
厉害了, 学习一波。
雪    币: 224
活跃值: (962)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
樊辉 2020-2-13 12:36
8
1

02-13 12:29:37.572 15179-16035/? D/XX_N: stat源路径 /boot/bstmods/vboxguest.ko

02-13 12:29:37.574 15179-16035/? D/XX_N: stat源路径 /boot/bstmods/vboxsf.ko

02-13 12:29:37.575 15179-16035/? D/XX_N: stat源路径 /dev/qemu_pipe

02-13 12:29:37.576 15179-16035/? D/XX_N: stat源路径 /dev/socket/qemud

02-13 12:29:37.577 15179-16035/? D/XX_N: stat源路径 /dev/socket/windroyed-audio

02-13 12:29:37.578 15179-16035/? D/XX_N: stat源路径 /dev/socket/windroyed-camera

02-13 12:29:37.579 15179-16035/? D/XX_N: stat源路径 /dev/socket/windroyed-gps

02-13 12:29:37.581 15179-16035/? D/XX_N: stat源路径 /dev/socket/windroyed-sensors

02-13 12:29:37.582 15179-16035/? D/XX_N: stat源路径 /dev/vboxguest

02-13 12:29:37.583 15179-16035/? D/XX_N: stat源路径 /dev/vboxpci

02-13 12:29:37.586 15179-16035/? D/XX_N: stat源路径 /dev/vboxuser

02-13 12:29:37.588 15179-16035/? D/XX_N: stat源路径 /dev/vga_arbiter

02-13 12:29:37.590 15179-16035/? D/XX_N: stat源路径 /fstab.nox

02-13 12:29:37.591 15179-16035/? D/XX_N: stat源路径 /fstab.vbox86

02-13 12:29:37.593 15179-16035/? D/XX_N: stat源路径 /init.nox.rc

02-13 12:29:37.596 15179-16035/? D/XX_N: stat源路径 /init.vbox86.rc

02-13 12:29:37.597 15179-16035/? D/XX_N: stat源路径 /init.vbox86p.rc

02-13 12:29:37.598 15179-16035/? D/XX_N: stat源路径 /init.windroye.rc

02-13 12:29:37.600 15179-16035/? D/XX_N: stat源路径 /init.windroye.sh

02-13 12:29:37.601 15179-16035/? D/XX_N: stat源路径 /init.x86.rc

02-13 12:29:37.604 15179-16035/? D/XX_N: stat源路径 /proc/irq/20/vboxguest

02-13 12:29:37.606 15179-16035/? D/XX_N: stat源路径 /sys/bus/pci/drivers/vboxguest

02-13 12:29:37.607 15179-16035/? D/XX_N: stat源路径 /sys/bus/pci/drivers/vboxpci

02-13 12:29:37.608 15179-16035/? D/XX_N: stat源路径 /sys/bus/platform/devices/qemu_pipe

02-13 12:29:37.609 15179-16035/? D/XX_N: stat源路径 /sys/bus/platform/drivers/qemu_pipe

02-13 12:29:37.610 15179-16035/? D/XX_N: stat源路径 /sys/bus/platform/drivers/qemu_pipe/qemu_pipe

02-13 12:29:37.611 15179-16035/? D/XX_N: stat源路径 /sys/bus/platform/drivers/qemu_trace

02-13 12:29:37.612 15179-16035/? D/XX_N: stat源路径 /sys/bus/virtio/drivers/itolsvmlgtp

02-13 12:29:37.614 15179-16035/? D/XX_N: stat源路径 /sys/bus/virtio/drivers/itoolsvmhft

02-13 12:29:37.616 15179-16035/? D/XX_N: stat源路径 /sys/class/bdi/vboxsf-1

02-13 12:29:37.618 15179-16035/? D/XX_N: stat源路径 /sys/class/bdi/vboxsf-2

02-13 12:29:37.620 15179-16035/? D/XX_N: stat源路径 /sys/class/bdi/vboxsf-3

02-13 12:29:37.621 15179-16035/? D/XX_N: stat源路径 /sys/class/misc/qemu_pipe

02-13 12:29:37.623 15179-16035/? D/XX_N: stat源路径 /sys/class/misc/vboxguest

02-13 12:29:37.624 15179-16035/? D/XX_N: stat源路径 /sys/class/misc/vboxuser

02-13 12:29:37.626 15179-16035/? D/XX_N: stat源路径 /sys/devices/platform/qemu_pipe

02-13 12:29:37.629 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/bdi/vboxsf-1

02-13 12:29:37.632 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/bdi/vboxsf-2

02-13 12:29:37.634 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/bdi/vboxsf-3

02-13 12:29:37.636 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/misc/qemu_pipe

02-13 12:29:37.638 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/misc/vboxguest

02-13 12:29:37.639 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/misc/vboxpci

02-13 12:29:37.640 15179-16035/? D/XX_N: stat源路径 /sys/devices/virtual/misc/vboxuser

02-13 12:29:37.643 15179-16035/? D/XX_N: stat源路径 /sys/fs/selinux/booleans/in_qemu

02-13 12:29:37.644 15179-16035/? D/XX_N: stat源路径 /sys/kernel/debug/bdi/vboxsf-1

02-13 12:29:37.645 15179-16035/? D/XX_N: stat源路径 /sys/kernel/debug/bdi/vboxsf-2

02-13 12:29:37.646 15179-16035/? D/XX_N: stat源路径 /sys/kernel/debug/x86

02-13 12:29:37.647 15179-16035/? D/XX_N: stat源路径 /sys/module/qemu_trace_sysfs

02-13 12:29:37.648 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxguest/drivers/pci:vboxguest

02-13 12:29:37.649 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxsf

02-13 12:29:37.650 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxvideo

02-13 12:29:37.651 15179-16035/? D/XX_N: stat源路径 /sys/module/virtio_pt_ie/drivers/virtio:itoolsvmlgtp

02-13 12:29:37.652 15179-16035/? D/XX_N: stat源路径 /sys/module/virtio_pt/drivers/virtio:itoolsvmhft

02-13 12:29:37.653 15179-16035/? D/XX_N: stat源路径 /sys/qemu_trace

02-13 12:29:37.654 15179-16035/? D/XX_N: stat源路径 /system/bin/androVM-vbox-sf

02-13 12:29:37.654 15179-16035/? D/XX_N: stat源路径 /system/bin/droid4x

02-13 12:29:37.655 15179-16035/? D/XX_N: stat源路径 /system/bin/droid4x_setprop

02-13 12:29:37.657 15179-16035/? D/XX_N: stat源路径 /system/bin/droid4x-prop

02-13 12:29:37.658 15179-16035/? D/XX_N: stat源路径 /system/bin/droid4x-vbox-sf

02-13 12:29:37.659 15179-16035/? D/XX_N: stat源路径 /system/bin/enable_nox

02-13 12:29:37.660 15179-16035/? D/XX_N: stat源路径 /system/bin/genymotion-vbox-sf

02-13 12:29:37.660 15179-16035/? D/XX_N: stat源路径 /system/bin/microvirt_setprop

02-13 12:29:37.662 15179-16035/? D/XX_N: stat源路径 /system/bin/microvirt-prop

02-13 12:29:37.663 15179-16035/? D/XX_N: stat源路径 /system/bin/microvirt-vbox-sf

02-13 12:29:37.663 15179-16035/? D/XX_N: stat源路径 /system/bin/microvirtd

02-13 12:29:37.664 15179-16035/? D/XX_N: stat源路径 /system/bin/mount.vboxsf

02-13 12:29:37.665 15179-16035/? D/XX_N: stat源路径 /system/bin/nox

02-13 12:29:37.666 15179-16035/? D/XX_N: stat源路径 /system/bin/nox_setprop

02-13 12:29:37.667 15179-16035/? D/XX_N: stat源路径 /system/bin/nox-prop

02-13 12:29:37.668 15179-16035/? D/XX_N: stat源路径 /system/bin/nox-vbox-sf

02-13 12:29:37.669 15179-16035/? D/XX_N: stat源路径 /system/bin/noxd

02-13 12:29:37.670 15179-16035/? D/XX_N: stat源路径 /system/bin/noxscreen

02-13 12:29:37.671 15179-16035/? D/XX_N: stat源路径 /system/bin/noxspeedup

02-13 12:29:37.672 15179-16035/? D/XX_N: stat源路径 /system/bin/OpenglService

02-13 12:29:37.673 15179-16035/? D/XX_N: stat源路径 /system/bin/qemu-props

02-13 12:29:37.674 15179-16035/? D/XX_N: stat源路径 /system/bin/qemud

02-13 12:29:37.675 15179-16035/? D/XX_N: stat源路径 /system/bin/shellnox

02-13 12:29:37.676 15179-16035/? D/XX_N: stat源路径 /system/bin/windroyed

02-13 12:29:37.677 15179-16035/? D/XX_N: stat源路径 /system/etc/init.droid4x.sh

02-13 12:29:37.678 15179-16035/? D/XX_N: stat源路径 /system/etc/init.tiantian.sh

02-13 12:29:37.679 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libEGL_tiantianVM.so

02-13 12:29:37.680 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libEGL_windroye.so

02-13 12:29:37.681 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libGLESv1_CM_tiantianVM.so

02-13 12:29:37.682 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libGLESv1_CM_windroye.so

02-13 12:29:37.683 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libGLESv2_tiantianVM.so

02-13 12:29:37.684 15179-16035/? D/XX_N: stat源路径 /system/lib/egl/libGLESv2_windroye.so

02-13 12:29:37.684 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/audio.primary.vbox86.so

02-13 12:29:37.685 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/audio.primary.windroye.so

02-13 12:29:37.686 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/audio.primary.x86.so

02-13 12:29:37.687 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/autio.primary.nox.so

02-13 12:29:37.688 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/camera.vbox86.so

02-13 12:29:37.689 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/camera.windroye.jpeg.so

02-13 12:29:37.690 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/camera.windroye.so

02-13 12:29:37.691 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/camera.x86.so

02-13 12:29:37.692 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gps.nox.so

02-13 12:29:37.693 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gps.vbox86.so

02-13 12:29:37.694 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gps.windroye.so

02-13 12:29:37.695 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gralloc.nox.so

02-13 12:29:37.696 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gralloc.vbox86.so

02-13 12:29:37.697 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/gralloc.windroye.so

02-13 12:29:37.698 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/sensors.nox.so

02-13 12:29:37.699 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/sensors.vbox86.so

02-13 12:29:37.700 15179-16035/? D/XX_N: stat源路径 /system/lib/hw/sensors.windroye.so

02-13 12:29:37.701 15179-16035/? D/XX_N: stat源路径 /system/lib/init.nox.sh

02-13 12:29:37.702 15179-16035/? D/XX_N: stat源路径 /system/lib/libc_malloc_debug_qemu.so

02-13 12:29:37.703 15179-16035/? D/XX_N: stat源路径 /system/lib/libclcore_x86.bc

02-13 12:29:37.704 15179-16035/? D/XX_N: stat源路径 /system/lib/libdroid4x.so

02-13 12:29:37.704 15179-16035/? D/XX_N: stat源路径 /system/lib/libGM_OpenglSystemCommon.so

02-13 12:29:37.706 15179-16035/? D/XX_N: stat源路径 /system/lib/libnoxd.so

02-13 12:29:37.706 15179-16035/? D/XX_N: stat源路径 /system/lib/libnoxspeedup.so

02-13 12:29:37.707 15179-16035/? D/XX_N: stat源路径 /system/lib/modules/3.10.30-android-x86.hd+

02-13 12:29:37.708 15179-16035/? D/XX_N: stat源路径 /system/lib/vboxguest.ko

02-13 12:29:37.709 15179-16035/? D/XX_N: stat源路径 /system/lib/vboxpcism.ko

02-13 12:29:37.710 15179-16035/? D/XX_N: stat源路径 /system/lib/vboxsf.ko

02-13 12:29:37.711 15179-16035/? D/XX_N: stat源路径 /system/lib/vboxvideo.ko

02-13 12:29:37.712 15179-16035/? D/XX_N: stat源路径 /system/lib64/libc_malloc_debug_qemu.so

02-13 12:29:37.713 15179-16035/? D/XX_N: stat源路径 /system/usr/idc/droid4x_Virtual_Input.idc

02-13 12:29:37.714 15179-16035/? D/XX_N: stat源路径 /system/usr/idc/Genymotion_Virtual_Input.idc

02-13 12:29:37.715 15179-16035/? D/XX_N: stat源路径 /system/usr/idc/nox_Virtual_Input.idc

02-13 12:29:37.716 15179-16035/? D/XX_N: stat源路径 /system/usr/idc/windroye.idc

02-13 12:29:37.717 15179-16035/? D/XX_N: stat源路径 /system/usr/keychars/nox_gpio.kcm

02-13 12:29:37.718 15179-16035/? D/XX_N: stat源路径 /system/usr/keychars/windroye.kcm

02-13 12:29:37.719 15179-16035/? D/XX_N: stat源路径 /system/usr/Keylayout/droid4x_Virtual_Input.kl

02-13 12:29:37.720 15179-16035/? D/XX_N: stat源路径 /system/usr/keylayout/Genymotion_Virtual_Input.kl

02-13 12:29:37.721 15179-16035/? D/XX_N: stat源路径 /system/usr/keylayout/nox_gpio.kl

02-13 12:29:37.722 15179-16035/? D/XX_N: stat源路径 /system/usr/keylayout/nox_Virtual_Input.kl

02-13 12:29:37.723 15179-16035/? D/XX_N: stat源路径 /system/usr/keylayout/windroye.kl

02-13 12:29:37.724 15179-16035/? D/XX_N: stat源路径 /system/xbin/noxsu

02-13 12:29:37.725 15179-16035/? D/XX_N: stat源路径 /ueventd.android_x86.rc

02-13 12:29:37.726 15179-16035/? D/XX_N: stat源路径 /ueventd.goldfish.rc

02-13 12:29:37.727 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxsf

02-13 12:29:37.728 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxguest

02-13 12:29:37.729 15179-16035/? D/XX_N: stat源路径 /sys/module/vboxpcism

02-13 12:29:37.730 15179-16035/? D/XX_N: stat源路径 /system/droid4x

02-13 12:29:37.731 15179-16035/? D/XX_N: stat源路径 /system/app/GenymotionLayout

02-13 12:29:37.732 15179-16035/? D/XX_N: stat源路径 /dev/usb_accessory

02-13 12:29:37.733 15179-16035/? D/XX_N: stat源路径 /dev/mtp_usb

02-13 12:29:37.734 15179-16035/? D/XX_N: stat源路径 /sdcard/Android/data/com.redfinger.gamemanage


02-13 12:29:37.735 15179-16035/? D/XX_N: __system_property_get ro.redfinger.server.enable = 

02-13 12:29:37.735 15179-16035/? D/XX_N: __system_property_get androVM.vbox_dpi = 

02-13 12:29:37.736 15179-16035/? D/XX_N: __system_property_get androVM.vbox_graph_mode = 

02-13 12:29:37.736 15179-16035/? D/XX_N: __system_property_get init.svc.memud = 

02-13 12:29:37.736 15179-16035/? D/XX_N: __system_property_get init.svc.qemu-props = 

02-13 12:29:37.736 15179-16035/? D/XX_N: __system_property_get /ueventd.vbox86.rc = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get init.svc.vbox86-setup = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get init.svc.windroye-setup = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get init.svc.windroyed = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get microvirt.vbox_dpi = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get microvirt.vbox_sdcard_drive = 

02-13 12:29:37.737 15179-16035/? D/XX_N: __system_property_get persisit.windroye.device.id = 

02-13 12:29:37.738 15179-16035/? D/XX_N: __system_property_get persist.itools.board = 

02-13 12:29:37.738 15179-16035/? D/XX_N: __system_property_get persist.itools.deflauncher = 

02-13 12:29:37.738 15179-16035/? D/XX_N: __system_property_get persist.itools.device = 

02-13 12:29:37.738 15179-16035/? D/XX_N: __system_property_get persist.itools.manufacturer = 

02-13 12:29:37.738 15179-16035/? D/XX_N: __system_property_get persist.itools.model = 

02-13 12:29:37.739 15179-16035/? D/XX_N: __system_property_get persist.itools.modem.defimei = 

02-13 12:29:37.739 15179-16035/? D/XX_N: __system_property_get persist.itools.modem.defimsi = 

02-13 12:29:37.739 15179-16035/? D/XX_N: __system_property_get persist.itools.name = 

02-13 12:29:37.739 15179-16035/? D/XX_N: __system_property_get qemu.hw.mainkeys = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get qemu.sf.fake_camera = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get qemu.sf.lcd_density = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get ro.kernel.android.qemud = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get ro.kernel.qemu = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get ro.kernel.qemu.gles = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get ro.kernel.windroye.gles = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get windroyed.gps.accuracy = 

02-13 12:29:37.740 15179-16035/? D/XX_N: __system_property_get windroyed.gps.altitude = 

02-13 12:29:37.741 15179-16035/? D/XX_N: __system_property_get windroyed.gps.bearing = 

02-13 12:29:37.741 15179-16035/? D/XX_N: __system_property_get ro.boot.hardware = qcom (替换后)

02-13 12:29:37.741 15179-16035/? D/XX_N: __system_property_get ro.hardware = qcom (替换后)

02-13 12:29:37.741 15179-16035/? D/XX_N: __system_property_get ro.boot.hardware = qcom (替换后)

02-13 12:29:37.741 15179-16035/? D/XX_N: __system_property_get ro.hardware = qcom (替换后)




2020-06-09 02:00:03.596 6982-7033/? D/XX_N: stat源路径 /system/bin/qemu_props

2020-06-09 02:00:03.596 6982-7033/? D/XX_N: stat源路径 /system/bin/androVM-prop

2020-06-09 02:00:03.597 6982-7033/? D/XX_N: stat源路径 /system/bin/microvirt-prop

2020-06-09 02:00:03.597 6982-7033/? D/XX_N: stat源路径 /system/lib/libdroid4x.so

2020-06-09 02:00:03.597 6982-7033/? D/XX_N: stat源路径 /system/bin/windroyed

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: stat源路径 /system/bin/microvirtd

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: stat源路径 /system/bin/nox-prop

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: stat源路径 /system/bin/ttVM-prop

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: stat源路径 /system/bin/droid4x-prop

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: stat源路径 /data/.bluestacks.prop

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: __system_property_get init.svc.vbox86-setup = 

2020-06-09 02:00:03.598 6982-7033/? D/XX_N: __system_property_get init.svc.droid4x = 

2020-06-09 02:00:03.599 6982-7033/? D/XX_N: __system_property_get init.svc.qemud = 

2020-06-09 02:00:03.599 6982-7033/? D/XX_N: __system_property_get init.svc.su_kpbs_daemon = 

2020-06-09 02:00:03.599 6982-7033/? D/XX_N: __system_property_get init.svc.noxd = 

2020-06-09 02:00:03.599 6982-7033/? D/XX_N: __system_property_get init.svc.ttVM_x86-setup = 

2020-06-09 02:00:03.601 6982-7033/? D/XX_N: __system_property_get init.svc.xxkmsg = 

2020-06-09 02:00:03.601 6982-7033/? D/XX_N: __system_property_get init.svc.microvirtd = 

2020-06-09 02:00:03.601 6982-7033/? D/XX_N: __system_property_get ro.kernel.android.qemud = 

2020-06-09 02:00:03.601 6982-7033/? D/XX_N: __system_property_get androVM.vbox_dpi = 

2020-06-09 02:00:03.601 6982-7033/? D/XX_N: __system_property_get androVM.vbox_graph_mode = 


最后于 2020-6-10 09:02 被樊辉编辑 ,原因: 新增备份
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
久情哥哥 2020-2-18 15:16
9
0
感谢分享
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_iwmmoiir 2020-3-15 15:52
10
0
@樊辉  怎么拦截 APP的调用
雪    币: 3624
活跃值: (3783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 2020-3-19 10:12
11
0
学习了
雪    币: 224
活跃值: (962)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
樊辉 2020-3-20 08:51
12
0
mb_iwmmoiir @樊辉 怎么拦截 [em_1]APP的调用
xhook,sandhook都可以
雪    币: 3494
活跃值: (17944)
能力值: ( LV12,RANK:277 )
在线值:
发帖
回帖
粉丝
0x指纹 5 2020-3-20 10:46
13
0
先赞为敬
雪    币: 0
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_zdd 2020-3-25 10:35
14
0
感谢分享!楼主大大,那个检测技术框架图有没清晰一点的图,有些字看的不清楚。
雪    币: 2
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sllax 2020-8-29 01:08
15
0
樊辉 02-13 12:29:37.572 15179-16035/? D/XX_N: stat源路径 /boot/bstmods/vboxguest.ko02-13 12:29:37.574 15179- ...
这个使用什么拦截的?
雪    币: 1110
活跃值: (281)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fishso 2020-9-23 16:27
16
0
mark,学习学习
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_foyotena 2020-9-23 17:17
17
0
支付宝
/sys/bus/virtio
/sys/module/virtio_net
/sys/module/virtio_pci
/sys/class/virtio_pt/virtiopt
/sys/devices/virtual/virtio_pt/virtiopt
/sys/class/virtio_pt
/dev/virtiopt
/sys/bus/pci/drivers/virtio-pci
/proc/sys/fs/binfmt_misc/arm
雪    币: 588
活跃值: (367)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
听风不是雨 2021-1-13 18:46
18
0
牛批牛批
雪    币: 1013
活跃值: (1397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
aihacker 2021-2-19 10:38
20
0
那个思维导图不清晰,可以上传一个清晰版本的原文件么?
雪    币: 290
活跃值: (351)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ermei 2021-3-16 14:58
21
0
 红手指不是基于qemu
雪    币: 290
活跃值: (351)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ermei 2021-3-16 15:11
22
0
感谢分享 可以出来创业了
雪    币: 172
活跃值: (3646)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TUGOhost 2022-8-1 16:56
23
0
底下大佬牛逼
游客
登录 | 注册 方可回帖
返回