cpu模拟器c语言实现_安卓逆向之模拟器检测

a0a88586872e63368786c8a0a92b4536.png

最近疫情又严重了,大家注意防范哦,出门一定要带口罩,今天小编给大家带来,模拟器检测,希望对大家有所帮助,让我们一起共同进步。

简单介绍模拟检测的原理

模拟器检测,顾名思义,软件、手游等不能运行在模拟器上面。

灰黑产:比如一个游戏能在模拟器上实现批量刷金币,或者是其他功能,但是模拟器没法启动起来,这种情况就得换真机,成本也就多了。

从正向防护角度来看,如何检测模拟器?wifi、蓝牙、电量(是不是一直百分百)、cpu等等,手机的配置信息是非常多的,我们直接获取这些细信息,来做一个判断;我们先来看如何获取这些信息:比如手机设备号、时间等等、状态信息等。

在模拟器中打开设置,来到最后一项:关于平板电脑

983840322c97ccc295fc1e33e0b461a7.png

分析代码

419165254178aa1f5e09c1b0ad499af7.png

首先定义一个数组,检测两个通道,然后循环,判断输出

5fc9ffbffc8e973766a5f03a33c0a1b3.png

检测驱动文件内容读取文件内容,然后检查已知QEmu的驱动程序的列表

8e3c6382d3bb1a636377f13bdf99f953.png

然后,检测模拟器上特有的几个文件

63604c8ee691c7650fb4ffee6a9ab232.png

检测模拟器默认的电话号码

6081a07558c2bff4a555f81ca3aedc5f.png

然后:检测设备IDS 是不是 “000000000000000”

d99b0e5a5ce7debb7b41660297468d8c.png

然后:检测imsi id是不是“310260000000000”

3940d8fc05a6314b26c1e20faa0d219c.png

然后:检测手机上的一些硬件信息

1b3b83f6467bcd7ed4e200904d54e177.png

然后检测手机运营商家

6fd225809a464251fe671fd023ad4b83.png

然后:基于模拟器cpu信息的检测

331285dbb07b0fa07561ed555036c613.png

然后:关键路径检测特定模拟器检测

2d03ab3e2f0c983f246cb1c72c496bad.png

除了上述这些,比如还一些模拟器默认的软件:

ddb69a7539394b38e711eaf0ee1d3772.png

还有检测GPS定位等等其他的,这个就得结合前面的知识具体分析了,看他哪个点、哪个代码是有这些关键检测的,还会有可能是多种组组合检测。

分析一个样本

8490cb9040ed00a03779b85522966030.png

安装,运行效果

dd4dc98c133a182442caa9fb39f169c3.png

对于没有提示的,那就只能多分析他的代码,也就是增加了些工程量。

放到androidkiller里面反编译,一般游戏的话,对模拟器的检测是非常多的。

还有一种协议检测,他会通过发包,把你的包发给服务器,然后有服务器来判断你目前的环境是不是模拟器。这种的话就搜到关键信息,想解决的话只能在后面分析协议,然后慢慢去摸索了。

我们先来看这个权限,蓝牙;我们知道模拟器是没有蓝牙的。

838cabd08b2b3795af73990823cd3bcc.png

简单分析一下这些权限;我们也可以在权限上动手脚,如果把权限删掉就不会调用了,但是如何你直接暴力删掉,有时候程序会崩溃;

8c6bc473ec83fef23be5911fa6e005e9.png

先搜索一波(演示一下):应用在模拟器上运行:发现没搜到

e0774d1c04cbf3085c3dddeb3d25a1c1.png

转U码试试;搜到两处

96a66a35dc736f68e67ad4789b00e9c0.png

过来后,找到所在方法;这个有可能就是

278a39441dda1bd404502dce7556c7b5.png

看一下本类其他方法:还有一个初始化

1b63ce4d63d9a702c3529b5aadd46b63.png

再来看一下入口界面;application这里:

be584b304f8dabcff5768c48e464d0af.png

就是这里;

6bbb57829ef039310dbf16de1b3229e9.png

过来后,找到Oncreate:

1aa27b7a038703d30bc6107d54e2b623.png

简单分析下smail;

然后看java代码;进行一个简单分析;

然后看入口界面,发现丢失;

这里cocos2d设计游戏引擎;

刚才已经找到 运行在模拟器上的位置:

f57e824b74a6a5eafeb244d1896b1846.png

直接定位过去,看java代码。

if判断,Toast弹出模拟器上运行,然后杀死进程,退出。

1a57473aa469391015fcd71b7ae1117e.png

其实很明显,改起来也很简单,可以把killproces这个函数nop掉,就可以过掉模拟器检测;

小结:

以上就是今天小编要给大家讲解的模拟器检测了,还给大家实例了一下,不明白的小伙伴可以私聊我

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值