Git Product home page Git Product logo

easyprotector's Introduction

Anurag's github stats

easyprotector's People

Contributors

dakun666 avatar goodong avatar jasonlian2020 avatar lamster2018 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easyprotector's Issues

mumu模拟器检测不出来

  public static void isEmulator() {
    if (EasyProtectorLib.checkIsRunningInEmulator()) {
      KLog.e("是模拟器");
      System.exit(0);
    }else {
      KLog.e("不是模拟器");
    }
  }

#isEmulator ] 不是模拟器

真机闪退

集成lib到项目,真机运行发现总闪退

检测不到

逍遥模拟器检测不到
start|null|MIX|MIX|null|intel|unsupport CameraFlash|sensorNum7|userAppNum16||end

OPPO R15被识别成模拟器

ceshi start|M_V3_P10,M_V3_P10|full_oppo6771_17197-user|oppo6771_17197|mt6771|
4:cpuset:/top-app
3:cpu:/
2:schedtune:/top-app
1:cpuacct:/uid_10137/pid_18790
|end

基于Socket,真正的一行代码检测多开哦

public class App extends Application {

    LocalServerSocket mServerSocket;

    @Override
    public void onCreate() {
        super.onCreate();
        try {
            // 借鉴自 AMS 与 zygote 通信
            mServerSocket = new LocalServerSocket(getPackageName());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

不需要开线程,不需要遍历端口,只需要一个唯一确定的名字即可。唯一的缺点是多开的 app 之间无法通信,是因为 SELinux 的保护机制限制了文件访问权限

checkByHasSameUid 方法中filter变量返回空 会造成空指针

 public boolean checkByHasSameUid() {
        String filter = getUidStrFormat();

        String result = CommandUtil.getSingleInstance().exec("ps");
        if (result == null || result.isEmpty()) {
            return false;
        }

        String[] lines = result.split("\n");
        if (lines == null || lines.length <= 0) {
            return false;
        }

        int exitDirCount = 0;

        for (int i = 0; i < lines.length; i++) {
### //如果filter 为空 contains 会报空指针异常

            if (lines[i].contains(filter)) {  
                int pkgStartIndex = lines[i].lastIndexOf(" ");
                String processName = lines[i].substring(pkgStartIndex <= 0
                        ? 0 : pkgStartIndex + 1, lines[i].length());
                File dataFile = new File(String.format("/data/data/%s", processName, Locale.CHINA));
                if (dataFile.exists()) {
                    exitDirCount++;
                }
            }
        }

        return exitDirCount > 1;
    }

分身检测失败

一款名多开分身的会检测失败,经测试多开分身软件能进行修改机型,地理位置模拟,分身的应用的包名会跟原应用一致

a permission question

android.permission.BIND_ACCESSIBILITY_SERVICE

why need this permission_request in manifest.xml ?

空指针错误(Attempt to invoke interface method 'void com.lahm.library.VirtualCheckCallback.findSuspect()' on a null object reference))

image
突然产生了大量空指针问题,貌似都是发生在按back键退出app的时候发生的
崩溃率很大,可否尽快加入非空判断?

是在Application初始化时调用的,具体kotlin代码如下:

if (ProcessUtil.isMainProcess(application)) {
VirtualApkCheckUtil.getSingleInstance().checkByPortListening(application.packageName) {
Log.e("Application", "find multiapp suspect")
DeviceInfo = generateDeviceInfo(application, true)
}
}

1.1.0版本模拟器检测bluestacks和koplayer失败

bluestacks 平台版本号3.1.20.678,引擎版本号2.10.42.9406
打印信息
ceshi start|null|null|MSM8974|msm8974|universal5420|support CameraFlash|sensorNum7|userAppNum1|2:cpu:/apps
1:cpuacct:/uid/10063
|end

koplayer 版本号2.0.0
打印信息
ceshi start|null|hlteatt-user|SM-N950S|Hi6210sft|androidVM_x86|unsupport CameraFlash|sensorNum13|userAppNum2|2:cpu:/
1:cpuacct:/uid_10037/pid_2502
|end

AS自带模拟器检测失败

仔细看了模拟器检测部分的代码,发现在对比平台信息和处理信息的时候时当两者都不为空的时候进行判断的,在测试中发现AS自带的模拟器无法检测,具体结果为
基带信息:是
渠道信息:不是
处理器信息:不是
平台信息:是
对比信息:不是
控制信息:不是

整体结果:不是模拟器

个人建议:平台处理器对比时,只要有一个为空就应该再次增加其嫌疑度

1533517426

xposed这里判断似乎有问题啊

if ((str.endsWith(".so")) || (str.endsWith(".jar"))) {
((Set) localObject).add(str.substring(str.lastIndexOf(" ") + 1));
}


Line 1187: ef5bd000-ef615000 r--p 00000000 fd:00 1294357                            /data/dalvik-cache/arm/system@[email protected]@classes.dex
Line 1188: ef615000-ef65e000 r-xp 00058000 fd:00 1294357                            /data/dalvik-cache/arm/system@[email protected]@classes.dex
Line 1189: ef65e000-ef65f000 rw-p 000a1000 fd:00 1294357                            /data/dalvik-cache/arm/system@[email protected]@classes.dex

原生模拟器(api 28)虚拟机检测错误,loadSO点击崩溃

emulatorInfo:
ceshi start|1.0.0.0|sdk_gphone_x86-userdebug|goldfish_x86||2:cpu:/
1:cpuacct:/uid_10085/pid_6675
|end

2018-10-19 15:40:30.140 6011-6160/com.google.android.gms E/CheckinRequestProcessor: CheckinNowTaskTag : Checkin failed: https://android.clients.google.com/checkin (fragment #0): java.net.ConnectException: Failed to connect to android.clients.google.com/64.233.189.101:443
java.net.ConnectException: Failed to connect to android.clients.google.com/64.233.189.101:443
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:143)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:258)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:26)
at nmb.a(:com.google.android.gms@[email protected] (040700-199405334):23)
at nmb.a(:com.google.android.gms@[email protected] (040700-199405334):273)
at com.google.android.gms.checkin.CheckinChimeraService.a(:com.google.android.gms@[email protected] (040700-199405334):167)
at nlw.run(:com.google.android.gms@[email protected] (040700-199405334):2)
at pmy.run(:com.google.android.gms@[email protected] (040700-199405334):24)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at pta.run(Unknown Source:7)
at java.lang.Thread.run(Thread.java:764)

检测雷电模拟器3.4.3失效

image
ceshi start|null|android_x86-user|f100|android-x86|android_x86|supportCameraFlash|sensorNum6|userAppNum5|2:cpu:/1:cpuacct:/uid_10031/pid_3009|end
具体情况为:
安装了4个app时,检测正常;又安装了一个app后检测失效

多开检测

多开之后getFilesDir()得到的路径 不一样,应该是可以作为依据的

vivo x9s

大佬,vivo x9s OS7.1.2 虚拟机、多开检测无效

java.lang.NullPointerException

Attempt to invoke virtual method 'java.lang.String[] android.os.Bundle.getStringArray(java.lang.String)' on a null object reference

端口检测应用多开的方法失效

VirtualApkCheckUtil.getSingleInstance().checkByPortListening(getPackageName(), () -> {
DialogUtils.showMessDialog((Activity) getApplicationContext(), "禁止双开");
System.exit(0);
});

题外话,关于检测模拟器判断

pm list package 。 因为大部分手机会有一个”是否允许应用读取手机应用列表”的权限,不知这个pm list package 和权限是否有关联。

maven引用不到

提示Could not find which method maven() to invoke from this list:
public abstract org.gradle.api.artifacts.repositories.MavenArtifactRepository org.gradle.api.artifacts.dsl.RepositoryHandler#maven(groovy.lang.Closure)
public abstract org.gradle.api.artifacts.repositories.MavenArtifactRepository org.gradle.api.artifacts.dsl.RepositoryHandler#maven(org.gradle.api.Action)

怎么检测应用双开

EasyProtectorLib.checkIsUsingMultiVirtualApp() 这个方法不能检测应用双开多开吗,我使用这个方法打log ,在多开的情况下不能识别的,求助,哪位大佬有检测应用多开的好工具

android 自带的虚拟机9.0检测不出来

android 自带的虚拟机9.0检测不出来。打印了检测的日志如下:
isEmulator --- >baseBandVersion 1.0.0.0
buildFlavor sdk_gphone_x86-user
productboard goldfish_x86
boardplatform
filter 2:cpu:/
1:cpuacct:/uid_10091/pid_2675
希望能够尽快适配

1.0.5 小米6手机 运行崩溃 检测模拟器代码

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
at com.lahm.library.EmulatorCheckUtil.int getUserAppNums(java.lang.String)(EmulatorCheckUtil.java:98)
at com.lahm.library.EmulatorCheckUtil.boolean readSysProperty(android.content.Context,com.lahm.library.EmulatorCheckCallback)(EmulatorCheckUtil.java:73)
at com.lahm.library.EmulatorCheckUtil.boolean readSysProperty()(EmulatorCheckUtil.java:30)
at com.lahm.library.EasyProtectorLib.boolean checkIsRunningInEmulator()(EasyProtectorLib.java:62)
at com.cnepay.android.utils.SafeUtils.boolean isEmulator()(SafeUtils.java:124)
at com.cnepay.android.utils.SafeUtils.java.lang.String isSafe(boolean,android.content.Context)(SafeUtils.java:58)
at com.cnepay.android.swiper.MainActivity$10.void run()(MainActivity.java:560)
at java.lang.Thread.null run(null)(Thread.java)

建议更新检测条件

建议:

if (null == baseBandVersion || baseBandVersion.contains("1.0.0.0"))
suspectCount += 2;//基带信息

if (sensorSize <= 7) ++suspectCount;//传感器个数

if (userAppSize <= 5) ++suspectCount;//用户安装的app个数

亲测:夜神,雷电、逍遥、mumu,腾讯手游助手,genymotion有效、

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.