刺激战场是如何检测你是用模拟器玩的

提问:

网友回答:


1.传统的检测方法。

传统的检测方法主要是对模拟器的IMSI、IDS、默认文件等几个方面进行检测。

(1)默认号码:


[java] view plain copyprivate static String[] known_numbers = {"15555215554", "15555215556",              "15555215558", "15555215560", "15555215562", "15555215564",              "15555215566", "15555215568", "15555215570", "15555215572",              "15555215574", "15555215576", "15555215578", "15555215580",              "15555215582", "15555215584"};  

(2)默认ID:


[java] view plain copyprivate static String[] known_device_ids = {"000000000000000"};  

(3)默认IMSI:


[java] view plain copyprivate static String[] known_imsi_ids = {"310260000000000"};  

(4)默认文件路径:


[java] view plain copyprivate static String[] known_files = {              "/system/lib/libc_malloc_debug_qemu.so",              "/sys/qemu_trace",              "/system/bin/qemu-props"};  

在得知了这些信息后,只需在运行时进行检测,如果检测结果和默认值吻合,那么检测设备便是模拟器。不过随着防反作弊技术的迭代,现在很多模拟器都可以改变这些值来逃避检测,所以上述传统方法在很多时候未曾达到开发者的预期效果。


2.基于模拟器cpu信息的检测。

成功率相较于传统方法,有了更高的成功率。

cpu信息检测主要是在cpu信息看看是否包含intel、amd等字段,很多模拟器目前对于cpu信息还无法进行模拟。

(1)读取cpu信息:


[html] view plain copypublic static String readCpuInfo() {         String result = "";         try {             String[] args = {"/system/bin/cat", "/proc/cpuinfo"};             ProcessBuilder cmd = new ProcessBuilder(args);               Process process = cmd.start();             StringBuffer sb = new StringBuffer();             String readLine = "";             BufferedReader responseReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "utf-8"));             while ((readLine = responseReader.readLine()) != null) {                 sb.append(readLine);             }             responseReader.close();             result = sb.toString().toLowerCase();         } catch (IOException ex) {         }         return result;     }  

(2)进行判定:


[java] view plain copyString cpuInfo = readCpuInfo();  if ((cpuInfo.contains("intel") || cpuInfo.contains("amd"))) {return true;}  

类似的还有


[java] view plain copyString[] blockList = "google_sdk,sdk,sdk_x86,vbox86p".split(",");  

原理相同。


3.关键路径检测特定模拟器检测

前面2个方法在很大程度上已经可以鉴定出很多模拟器了,但是对于某些在反防作弊上同样热爱的模拟器,需要特定的检测方法。

bluestacks成功躲避了前两种检测方法,所以在这里给予其VIP的待遇。

以下是总结出来的一些bluestacks的关键路径:


[java] view plain copyprivate static String[] known_bluestacks = {"/data/app/com.bluestacks.appmart-1.apk", "/data/app/com.bluestacks.BstCommandProcessor-1.apk",             "/data/app/com.bluestacks.help-1.apk", "/data/app/com.bluestacks.home-1.apk", "/data/app/com.bluestacks.s2p-1.apk",             "/data/app/com.bluestacks.searchapp-1.apk", "/data/bluestacks.prop", "/data/data/com.androVM.vmconfig",             "/data/data/com.bluestacks.accelerometerui", "/data/data/com.bluestacks.appfinder", "/data/data/com.bluestacks.appmart",             "/data/data/com.bluestacks.appsettings", "/data/data/com.bluestacks.BstCommandProcessor", "/data/data/com.bluestacks.bstfolder",             "/data/data/com.bluestacks.help", "/data/data/com.bluestacks.home", "/data/data/com.bluestacks.s2p", "/data/data/com.bluestacks.searchapp",             "/data/data/com.bluestacks.settings", "/data/data/com.bluestacks.setup", "/data/data/com.bluestacks.spotlight", "/mnt/prebundledapps/bluestacks.prop.orig"     };  


检测方法:


[java] view plain copypublic static boolean checkBlueStacksFiles() {          for (int i = 0; i < known_bluestacks.length; i++) {              String file_name = known_bluestacks[i];              File qemu_file = new File(file_name);              if (qemu_file.exists()) {                  FkLog.e("Result : Find BlueStacks Files!");                  return true;              }          }          FkLog.e("Result : Not Find BlueStacks Files!");          return false;      }  


这种基于关键路径的检测,便可以成功的检测出bluestacks。


相关推荐

绝地求生刺激战场出现游戏环境异常,请重新启动机器再试,如何解决

绝地求生刺激战场出现游戏环境异常,请重新启动机器再试,如何解决

刺激战场,观战是别人的画质,还是自己的画质

刺激战场,观战是别人的画质,还是自己的画质

黑鲨手机一代手柄玩刺激战场封号是什么情况?

黑鲨手机一代手柄玩刺激战场封号是什么情况?

有人说能解封刺激战场帐号是真的吗

有人说能解封刺激战场帐号是真的吗

刺激战场怎样1v4,对方都是大神怎么办

刺激战场怎样1v4,对方都是大神怎么办

刺激战场别人怎么知道我是用模拟器玩的

刺激战场别人怎么知道我是用模拟器玩的

刺激战场国际服老是被封

刺激战场国际服老是被封

刺激战场钻石上面是什么段位

刺激战场钻石上面是什么段位

为什么刺激战场大家也是对枪!我先倒!是不是他的枪厉害点

为什么刺激战场大家也是对枪!我先倒!是不是他的枪厉害点

腾讯手游助手刺激战场看别人是透明度怎么办

腾讯手游助手刺激战场看别人是透明度怎么办

绝地求生刺激战场授权失败是什么原因

绝地求生刺激战场授权失败是什么原因

玩刺激战场为什么背景是白色的

玩刺激战场为什么背景是白色的

玩绝地求生刺激战场的好处是什么

玩绝地求生刺激战场的好处是什么

虎牙帅少玩刺激战场用的是什么模拟器

虎牙帅少玩刺激战场用的是什么模拟器

荣耀9万刺激战场卡顿是什么原因

荣耀9万刺激战场卡顿是什么原因

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1