Comment on page
Analisis Estatico Android
Entre las herramientas más conocidas tenemos:
- Debuggable
Este atributo permite depurar la aplicación.
android:debuggable="true"|"false"
En el caso de no estar indicado el valor (es decir, si nos encontramos solamente
android:debuggable
), el apk NO es depurable.- AllowBackup
android:allowBackup="true"|"false"
En el caso de estar como "true", permite realizar backups de los datos que contiene a través de ADB.
adb backup -f app_backup.ab -apk [apkName.apk]
- WAKE_LOCK
<uses-permission android:name="android.permission.WAKE_LOCK" />
Permite que el dispositivo permanezca activo y evita que entre en estado de suspensión.
- GET_TASKS
<uses-permission android:name="android.permission.GET_TASKS" />
Permite a la aplicación acceder a los procesos que se encuentran activos/corriendo en el dispositivo.
- WRITE_EXTERNAL_STORAGE
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Permite a la aplicación acceso de escritura al contenido de la tarjeta SD.
En los WebView, debemos tener en cuenta
myWebView.settings.javaScriptEnabled = true
ya que puede facilitar la ejecución de XSS.Buscar palabras clave y llamadas a APIs usadas para almacenar información. Algunas de las clases y funciones son:
- clase
SharedPreferences
( almacena parejas de clave-valor) - clase
FileOutPutStream
(usa almacenamiento interno o externo) - funciones
getExternal*
(usa almacenamiento externo) - función
getWritableDatabase
(devuelve una bdd SQLiteDatabase con permisos de escritura)
Buscar en el código fuente:
this.db = localUserSecretStore.getWritableDatabase("Password");
- función
getReadableDatabase
(devuelve una bdd SQLiteDatabase con permisos de lectura) - funciones
getCacheDir
ygetExternalCacheDirs
(usan ficheros cacheados)
Ubicación común de claves/API keys/contraseñas:
- res/values/strings.xml
- build configs (local.properties o gradle.properties)
/data/data/<package-name>/shared_prefs
/data/data/<package-name>/files/
La ruta donde se almacenan las bdd de las aplicaciones es
/data/data/<package-name>/databases/
Copiar la base datos de la aplicación al entorno de pruebas con
adb pull /data/data/AppName/.. /destination/path/for/the/file
y posteriormente abrir SQLite e importar la base de datos.
Last modified 7mo ago