0 votos

Se comparan las firmas de dos aplicaciones diferentes dentro del código de una aplicación

Para una aplicación móvil en particular, estoy tratando de entender el código del lado del cliente de un apk descompilando el apk usando Jadx-GUI. Mientras revisaba el código, encontré un interesante fragmento de código (mostrado en la imagen). La firma de la aplicación existente se está comparando con la de la aplicación llamada "Android".

Screenshot of a code snippet He observado este tipo de comparación en más de una aplicación. Busqué los detalles del certificado y descubrí que ambos son diferentes y los certificados son autofirmados (no están usando Google Play Signing)

Entonces, mi pregunta es ¿Por qué los desarrolladores comparan la firma de dos aplicaciones diferentes? ¿En qué casos es útil este tipo de verificación de firmas?

0voto

pr0nin Puntos 353

El fragmento de código no compara la firma de la propia aplicación con una aplicación ordinaria, sino que la compara con el paquete android más conocido como "Sistema Android".

"Android System", como su nombre indica, es una aplicación del sistema firmada con la clave de firma del sistema de la ROM. Por lo tanto, el fragmento de código que has encontrado compara si la aplicación especificada por su nombre de paquete en el parámetro str fue firmado por la clave del sistema.

Yo asumiría que la aplicación que contiene este código primero obtiene la lista de todos los paquetes instalados y luego llama a este método para cada nombre de paquete instalado.

Al final esto permitiría identificar todas las apps que tienen permisos de sistema. Lo que no se puede determinar por el código es por qué se genera esta lista. Podría ser por razones de seguridad para comprobar si hay "aplicaciones extrañas" con permiso del sistema o, alternativamente, la construcción de la lista de aplicaciones del sistema podría ser el primer paso en una aplicación que intenta atacar el sistema tratando de encontrar vulnerabilidades en las aplicaciones del sistema.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X