![a0a88586872e63368786c8a0a92b4536.png](https://i-blog.csdnimg.cn/blog_migrate/b4a55456e3ab93e110afcf571f0e7560.jpeg)
最近疫情又严重了,大家注意防范哦,出门一定要带口罩,今天小编给大家带来,模拟器检测,希望对大家有所帮助,让我们一起共同进步。
简单介绍模拟检测的原理
模拟器检测,顾名思义,软件、手游等不能运行在模拟器上面。
灰黑产:比如一个游戏能在模拟器上实现批量刷金币,或者是其他功能,但是模拟器没法启动起来,这种情况就得换真机,成本也就多了。
从正向防护角度来看,如何检测模拟器?wifi、蓝牙、电量(是不是一直百分百)、cpu等等,手机的配置信息是非常多的,我们直接获取这些细信息,来做一个判断;我们先来看如何获取这些信息:比如手机设备号、时间等等、状态信息等。
在模拟器中打开设置,来到最后一项:关于平板电脑
![983840322c97ccc295fc1e33e0b461a7.png](https://i-blog.csdnimg.cn/blog_migrate/99704ac01b7635b39c9e9e38227afb5c.jpeg)
分析代码
![419165254178aa1f5e09c1b0ad499af7.png](https://i-blog.csdnimg.cn/blog_migrate/ba7b624f9d598747cf32978e55c1a61f.jpeg)
首先定义一个数组,检测两个通道,然后循环,判断输出
![5fc9ffbffc8e973766a5f03a33c0a1b3.png](https://i-blog.csdnimg.cn/blog_migrate/2d3d81a6c87bdba8a2478640780f482b.jpeg)
检测驱动文件内容读取文件内容,然后检查已知QEmu的驱动程序的列表
![8e3c6382d3bb1a636377f13bdf99f953.png](https://i-blog.csdnimg.cn/blog_migrate/ae52f7452f97532069a891ca5f193c64.jpeg)
然后,检测模拟器上特有的几个文件
![63604c8ee691c7650fb4ffee6a9ab232.png](https://i-blog.csdnimg.cn/blog_migrate/583d0825940c0057f9a6e0589bc1cef8.jpeg)
检测模拟器默认的电话号码
![6081a07558c2bff4a555f81ca3aedc5f.png](https://i-blog.csdnimg.cn/blog_migrate/e0cc832b78b70d38d1a1c5327948c1d8.jpeg)
然后:检测设备IDS 是不是 “000000000000000”
![d99b0e5a5ce7debb7b41660297468d8c.png](https://i-blog.csdnimg.cn/blog_migrate/a944ec43f13b7447d9d42ed33796efd1.jpeg)
然后:检测imsi id是不是“310260000000000”
![3940d8fc05a6314b26c1e20faa0d219c.png](https://i-blog.csdnimg.cn/blog_migrate/77c95c79d290e2cc5014d781d8b5d5bb.jpeg)
然后:检测手机上的一些硬件信息
![1b3b83f6467bcd7ed4e200904d54e177.png](https://i-blog.csdnimg.cn/blog_migrate/2e2199e227c9560a1c157c865120da7f.jpeg)
然后检测手机运营商家
![6fd225809a464251fe671fd023ad4b83.png](https://i-blog.csdnimg.cn/blog_migrate/cad3452cba9f6c52afd82869afb19023.jpeg)
然后:基于模拟器cpu信息的检测
![331285dbb07b0fa07561ed555036c613.png](https://i-blog.csdnimg.cn/blog_migrate/4f5ab5f76952c9ca4df0d39d12703179.jpeg)
然后:关键路径检测特定模拟器检测
![2d03ab3e2f0c983f246cb1c72c496bad.png](https://i-blog.csdnimg.cn/blog_migrate/ef162ca6095cd7dc18caa896b287ed62.jpeg)
除了上述这些,比如还一些模拟器默认的软件:
![ddb69a7539394b38e711eaf0ee1d3772.png](https://i-blog.csdnimg.cn/blog_migrate/2114532f76b9bd3e61b4c3a93230a453.jpeg)
还有检测GPS定位等等其他的,这个就得结合前面的知识具体分析了,看他哪个点、哪个代码是有这些关键检测的,还会有可能是多种组组合检测。
分析一个样本
![8490cb9040ed00a03779b85522966030.png](https://i-blog.csdnimg.cn/blog_migrate/828cd11107f10fc44c8a7e058057ad00.jpeg)
安装,运行效果
![dd4dc98c133a182442caa9fb39f169c3.png](https://i-blog.csdnimg.cn/blog_migrate/60289279abf58d30badaca4d812e20ff.jpeg)
对于没有提示的,那就只能多分析他的代码,也就是增加了些工程量。
放到androidkiller里面反编译,一般游戏的话,对模拟器的检测是非常多的。
还有一种协议检测,他会通过发包,把你的包发给服务器,然后有服务器来判断你目前的环境是不是模拟器。这种的话就搜到关键信息,想解决的话只能在后面分析协议,然后慢慢去摸索了。
我们先来看这个权限,蓝牙;我们知道模拟器是没有蓝牙的。
![838cabd08b2b3795af73990823cd3bcc.png](https://i-blog.csdnimg.cn/blog_migrate/9ad1487063ccf3b364f22497ed9981e1.jpeg)
简单分析一下这些权限;我们也可以在权限上动手脚,如果把权限删掉就不会调用了,但是如何你直接暴力删掉,有时候程序会崩溃;
![8c6bc473ec83fef23be5911fa6e005e9.png](https://i-blog.csdnimg.cn/blog_migrate/37e69a9ec20ab14fae444688faf8f063.jpeg)
先搜索一波(演示一下):应用在模拟器上运行:发现没搜到
![e0774d1c04cbf3085c3dddeb3d25a1c1.png](https://i-blog.csdnimg.cn/blog_migrate/93af45ee7bf729039757366b60d64e36.jpeg)
转U码试试;搜到两处
![96a66a35dc736f68e67ad4789b00e9c0.png](https://i-blog.csdnimg.cn/blog_migrate/2b156be541f5cc7678248d8aad5395af.jpeg)
过来后,找到所在方法;这个有可能就是
![278a39441dda1bd404502dce7556c7b5.png](https://i-blog.csdnimg.cn/blog_migrate/76abc14d211f27237abc002d665cca76.jpeg)
看一下本类其他方法:还有一个初始化
![1b63ce4d63d9a702c3529b5aadd46b63.png](https://i-blog.csdnimg.cn/blog_migrate/07bb4b9a574881ad0cbada3aa40b3d82.jpeg)
再来看一下入口界面;application这里:
![be584b304f8dabcff5768c48e464d0af.png](https://i-blog.csdnimg.cn/blog_migrate/c7853306cac4d92c78b67bf2fa6c7b5e.jpeg)
就是这里;
![6bbb57829ef039310dbf16de1b3229e9.png](https://i-blog.csdnimg.cn/blog_migrate/51f92a7d748ab098db52d57b01eff6fc.jpeg)
过来后,找到Oncreate:
![1aa27b7a038703d30bc6107d54e2b623.png](https://i-blog.csdnimg.cn/blog_migrate/b8a6798500fc39ab4f12534f5a3684ee.jpeg)
简单分析下smail;
然后看java代码;进行一个简单分析;
然后看入口界面,发现丢失;
这里cocos2d设计游戏引擎;
刚才已经找到 运行在模拟器上的位置:
![f57e824b74a6a5eafeb244d1896b1846.png](https://i-blog.csdnimg.cn/blog_migrate/e5f5a084557b57e7e6f4e553420673bf.jpeg)
直接定位过去,看java代码。
if判断,Toast弹出模拟器上运行,然后杀死进程,退出。
![1a57473aa469391015fcd71b7ae1117e.png](https://i-blog.csdnimg.cn/blog_migrate/18005011cb71519a175d47ef67b01d4d.jpeg)
其实很明显,改起来也很简单,可以把killproces这个函数nop掉,就可以过掉模拟器检测;
小结:
以上就是今天小编要给大家讲解的模拟器检测了,还给大家实例了一下,不明白的小伙伴可以私聊我