Kufar v3.2.0版本的 MD5 值为:6a4d203db1c561c7e3bcd50d23fed59f

以下内容为反编译后的 v2.java 源代码,内容仅作参考


package com.startapp;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Environment;
import android.text.TextUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@TargetApi(14)
public final class v2 {

    public static final String[] f55131c = {"/dev/socket/genyd", "/dev/socket/baseband_genyd"};

    public static final String[] f55132d = {"goldfish"};

    public static final String[] f55133e = {"/dev/socket/qemud", "/dev/qemu_pipe"};

    public static final String[] f55134f = {"ueventd.android_x86.rc", "x86.prop", "ueventd.ttVM_x86.rc", "init.ttVM_x86.rc", "fstab.ttVM_x86", "fstab.vbox86", "init.vbox86.rc", "ueventd.vbox86.rc"};

    public static final String[] f55135g = {"fstab.andy", "ueventd.andy.rc"};

    public static final String[] f55136h = {"fstab.nox", "init.nox.rc", "ueventd.nox.rc", "/BigNoxGameHD", "/YSLauncher"};

    public static final i8[] f55137i = {new i8("init.svc.qemud", null), new i8("init.svc.qemu-props", null), new i8("qemu.hw.mainkeys", null), new i8("qemu.sf.fake_camera", null), new i8("qemu.sf.lcd_density", null), new i8("ro.bootloader", "unknown"), new i8("ro.bootmode", "unknown"), new i8("ro.hardware", "goldfish"), new i8("ro.kernel.android.qemud", null), new i8("ro.kernel.qemu.gles", null), new i8("ro.kernel.qemu", "1"), new i8("ro.product.device", "generic"), new i8("ro.product.model", "sdk"), new i8("ro.product.name", "sdk"), new i8("ro.serialno", null), new i8("ro.build.description", "72656C656173652D6B657973"), new i8("ro.build.fingerprint", "3A757365722F72656C656173652D6B657973"), new i8("net.eth0.dns1", null), new i8("rild.libpath", "2F73797374656D2F6C69622F6C69627265666572656E63652D72696C2E736F"), new i8("ro.radio.use-ppp", null), new i8("gsm.version.baseband", null), new i8("ro.build.tags", "72656C656173652D6B65"), new i8("ro.build.display.id", "746573742D"), new i8("init.svc.console", null)};

    @SuppressLint({"StaticFieldLeak"})
    public static v2 f55138j;

    public static Boolean f55139k;

    public final Context f55140a;

    public List<String> f55141b;

    public v2(Context context) {
        ArrayList arrayList = new ArrayList();
        this.f55141b = arrayList;
        this.f55140a = context;
        arrayList.add("com.google.android.launcher.layouts.genymotion");
        this.f55141b.add("com.bluestacks");
        this.f55141b.add("com.bignox.app");
        this.f55141b.add("com.vphone.launcher");
    }

    public final boolean a(String[] strArr, String str) {
        File file;
        for (String str2 : strArr) {
            if (a(this.f55140a, "android.permission.READ_EXTERNAL_STORAGE") && str2.contains("/") && str.equals("Nox")) {
                file = new File(Environment.getExternalStorageDirectory() + str2);
            } else {
                file = new File(str2);
            }
            if (file.exists()) {
                return true;
            }
        }
        return false;
    }

    public final boolean b() {
        File[] fileArr = {new File("/proc/tty/drivers"), new File("/proc/cpuinfo")};
        for (int i11 = 0; i11 < 2; i11++) {
            File file = fileArr[i11];
            if (file.exists() && file.canRead()) {
                char[] cArr = new char[1024];
                StringBuilder sb2 = new StringBuilder();
                BufferedReader bufferedReader = null;
                try {
                    BufferedReader bufferedReader2 = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
                    while (true) {
                        try {
                            int read = bufferedReader2.read(cArr);
                            if (read != -1) {
                                sb2.append(cArr, 0, read);
                            } else {
                                try {
                                    break;
                                } catch (IOException unused) {
                                }
                            }
                        } catch (Exception unused2) {
                            bufferedReader = bufferedReader2;
                            if (bufferedReader != null) {
                                try {
                                    bufferedReader.close();
                                } catch (IOException unused3) {
                                }
                            }
                            return false;
                        } catch (Throwable th2) {
                            th = th2;
                            bufferedReader = bufferedReader2;
                            if (bufferedReader != null) {
                                try {
                                    bufferedReader.close();
                                } catch (IOException unused4) {
                                }
                            }
                            throw th;
                        }
                    }
                    bufferedReader2.close();
                    String sb3 = sb2.toString();
                    for (String str : f55132d) {
                        if (sb3.contains(str)) {
                            return true;
                        }
                    }
                } catch (Exception unused5) {
                } catch (Throwable th3) {
                    th = th3;
                }
            }
        }
        return false;
    }

    public final boolean c() {
        boolean z11;
        boolean z12;
        String str;
        String str2 = Build.FINGERPRINT;
        if (!str2.startsWith("generic")) {
            String str3 = Build.MODEL;
            if (!str3.contains("google_sdk") && !str3.toLowerCase().contains("droid4x") && !str3.contains("Emulator") && !str3.contains("Android SDK built for") && !Build.MANUFACTURER.contains("Genymotion")) {
                String str4 = Build.HARDWARE;
                if (!str4.equals("goldfish") && !str4.equals("vbox86")) {
                    String str5 = Build.PRODUCT;
                    if (!str5.equals("sdk") && !str5.equals("google_sdk") && !str5.equals("sdk_x86") && !str5.equals("vbox86p") && !Build.BOARD.toLowerCase().contains("nox") && !Build.BOOTLOADER.toLowerCase().contains("nox") && !str4.toLowerCase().contains("nox") && !str5.toLowerCase().contains("nox") && !Build.SERIAL.toLowerCase().contains("nox") && !str2.startsWith("unknown") && !str2.contains("Andy") && !str2.contains("ttVM_Hdragon") && !str2.contains("vbox86p") && !str4.contains("ttVM_x86") && !str3.equals("sdk") && !str3.contains("Droid4X") && !str3.contains("TiantianVM") && !str3.contains("Andy") && (!Build.BRAND.startsWith("generic") || !Build.DEVICE.startsWith("generic"))) {
                        z11 = false;
                        if (!z11) {
                            if (!a(f55131c, "Geny") && !a(f55135g, "Andy") && !a(f55136h, "Nox") && !b() && !a(f55133e, "Pipes") && !a()) {
                                int i11 = 0;
                                for (i8 i8Var : f55137i) {
                                    Context context = this.f55140a;
                                    String str6 = i8Var.f52991a;
                                    try {
                                        Class<?> loadClass = context.getClassLoader().loadClass("android.os.SystemProperties");
                                        str = (String) loadClass.getMethod("get", String.class).invoke(loadClass, str6);
                                    } catch (Exception unused) {
                                        str = null;
                                    }
                                    String str7 = i8Var.f52992b;
                                    if (str7 == null && str != null) {
                                        i11++;
                                    }
                                    if (str7 != null && str != null && str.contains(str7)) {
                                        i11++;
                                    }
                                }
                                if (i11 >= 5) {
                                    z12 = true;
                                } else {
                                    z12 = false;
                                }
                                if (!z12 || !a(f55134f, "X86")) {
                                    z11 = false;
                                }
                            }
                            z11 = true;
                        }
                        if (z11) {
                            if (this.f55141b.isEmpty()) {
                                return false;
                            }
                            PackageManager packageManager = this.f55140a.getPackageManager();
                            Iterator<String> it = this.f55141b.iterator();
                            while (it.hasNext()) {
                                Intent launchIntentForPackage = packageManager.getLaunchIntentForPackage(it.next());
                                if (launchIntentForPackage != null && !packageManager.queryIntentActivities(launchIntentForPackage, 65536).isEmpty()) {
                                    return true;
                                }
                            }
                            return false;
                        }
                        return z11;
                    }
                }
            }
        }
        z11 = true;
        if (!z11) {
        }
        if (z11) {
        }
    }

    public final boolean a() {
        if (!a(this.f55140a, "android.permission.INTERNET")) {
            return false;
        }
        String[] strArr = {"/system/bin/netcfg"};
        StringBuilder sb2 = new StringBuilder();
        try {
            ProcessBuilder processBuilder = new ProcessBuilder(strArr);
            processBuilder.directory(new File("/system/bin/"));
            processBuilder.redirectErrorStream(true);
            InputStream inputStream = processBuilder.start().getInputStream();
            byte[] bArr = new byte[1024];
            while (inputStream.read(bArr) != -1) {
                sb2.append(new String(bArr));
            }
            inputStream.close();
        } catch (Exception unused) {
        }
        String sb3 = sb2.toString();
        if (TextUtils.isEmpty(sb3)) {
            return false;
        }
        for (String str : sb3.split("\n")) {
            if ((str.contains("wlan0") || str.contains("tunl0") || str.contains("eth0")) && str.contains("10.0.2.15")) {
                return true;
            }
        }
        return false;
    }

    public final boolean a(Context context, String str) {
        int checkSelfPermission;
        try {
            if (Build.VERSION.SDK_INT < 23) {
                return context.checkCallingOrSelfPermission(str) == 0;
            }
            checkSelfPermission = context.checkSelfPermission(str);
            return checkSelfPermission == 0;
        } catch (Throwable unused) {
            return false;
        }
    }
}