如何绕过android应用程序中的模拟器检测
介绍
在模拟器上测试一些android应用程序时,它总会显示应用程序与CPU不兼容,或者在模拟器上安装应用程序时会出现一些错误
我会告诉你如何轻松绕过
留意
这可能不适用于某些应用程序,你将不得不使用另外一种技术......这只是常见的方式......很聪明
准备
好吧,现在你应该使用(jadx或jd-gui)和smali字节代码(apktool)将你的android应用反编译为源代码
开始
首先,您需要检查预先反编译的源代码并检查包含“generic |”emulated| google_sdk“例如”isEmulator的函数 |“ emulatedDetection...等“...使用您的搜索技巧,并阅读代码
正如你所看到的,有一种叫做“checkIfDeviceIsEmulator”的方法来检查“finger print |” model| brand“和像”genymotion |emulated”的模拟器
如果您注意到...如果此函数检测到仿真器,则返回true语句,如果不是仿真器,则返回false:
好吧,我认为你现在就明白了。
有趣的部分
现在我们应该将这些值从true更改为false,以绕过此检测...但我们无法编辑源代码......实际上,您不能再次重新编译和使用此源代码......但您可以在smali代码中执行此操作:
好吧,让我们做这个...
使用smali代码转到相同的文件名,然后搜索源代码中找到的相同字符串,直到获得行号
正如你向下滚动直到你得到这个指令(“const / 4 v0,0x1”)之前在源代码中看到的字符串,它意味着该方法返回真正的语句(以简单的方式解释它)......在smail
代码中小数字节代码中的十六进制值0x1表示真,所以我们将它从0x1更改为0x0
现在我们已经完成了,您可以重新编译smali字节代码,并在模拟器上测试应用程序。
确保你可以用其他方式完成它......我认为这是最简单的方法
有事尽管问我
How to bypass emulator detection in android apps