es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Magisk Hide ha eludido la detección de root implementada para mi aplicación de Android.

He implementado código de detección de root para mi aplicación nativa de Android actual. Pero recientemente, utilizando Magisk Hide, el mecanismo de root fue eludido. He utilizado el siguiente código para la detección de root en mi lado:

public class RootUtil {
    public static boolean isDeviceRooted() {
        return checkRootMethod1() || checkRootMethod2() || checkRootMethod3();
    }

    private static boolean checkRootMethod1() {
        String buildTags = android.os.Build.TAGS;
        return buildTags != null && buildTags.contains("test-keys");
    }

    private static boolean checkRootMethod2() {
        String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
                "/system/bin/failsafe/su", "/data/local/su", "/su/bin/su"};
        for (String path : paths) {
            if (new File(path).exists()) return true;
        }
        return false;
    }

    private static boolean checkRootMethod3() {
        Process process = null;
        try {
            process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" });
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
            if (in.readLine() != null) return true;
            return false;
        } catch (Throwable t) {
            return false;
        } finally {
            if (process != null) process.destroy();
        }
    }
}

¿Cómo podemos resolver este caso?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Una forma de hacer que la detección de root sea más efectiva es utilizar una combinación de diferentes métodos de detección que apunten específicamente a diferentes aspectos de los dispositivos con root. Por ejemplo, puedes agregar comprobaciones adicionales como:

    • Verificar la presencia de aplicaciones o paquetes de root conocidos, como Magisk o SuperSU.
    • Verificar la integridad de los archivos y binarios del sistema, ya que algunos métodos de root suelen modificar estos archivos.
    • Inspeccionar las propiedades del sistema y la información de compilación en busca de signos de manipulación o modificaciones personalizadas.
    • Examinar el estado y el modo de cumplimiento de SELinux del dispositivo, ya que muchos métodos de root requieren desactivar SELinux.

    Es importante tener en cuenta que no existe una forma infalible de detectar todos los tipos de acceso root, ya que constantemente surgen nuevos métodos y técnicas de bypass. Sin embargo, al implementar un conjunto de comprobaciones más completo y mantenerse al día con las últimas actualizaciones de seguridad, puedes minimizar el riesgo de acceso no autorizado y proteger la integridad de tu aplicación.

Comments are closed.