Trabajando en malware de Android, me he enfrentado a muchos malwares de Android que normalmente contienen URL que son página de phishing bancario . Este tipo de malware está creciendo en número, por lo que realmente se necesita un sistema de detección automatizado . El primer paso para detectar tales malwares es extracción de url / enlace .
Un simple enfoque estático es descompilar la aplicación y buscar cadenas que comiencen con "http" en el código fuente. Hay muchas herramientas y bibliotecas como stringoid , Diggy , NinjaDroid , Androguard y muchos otros, pero en la medida en que he probado estas herramientas, no pueden detectar las URL ocultas. Por ejemplo, considere este código:
this.c = "/something";
this.d = new String(Base64.decode(Application.a, 0));
this.a.loadUrl(this.d + this.c);
Está claro que el análisis estático solo es insuficiente, por lo que estoy buscando otras soluciones. Hasta ahora, he visto algunos enfoques en algunos artículos que intentan extraer tales cadenas confusas de los archivos APK de Android. Un ejemplo es ForceDROID que presenta una técnica híbrida (tanto estática como dinámica) para extraer información oculta. Esta técnica funciona cambiando las condiciones de flujo de control para ejecutar un determinado camino. Otro ejemplo se basa en la desobfuscación.
Todas estas técnicas son excelentes, pero el problema es que no hay ninguna implementación disponible.
Desafortunadamente, no estoy lo suficientemente capacitado para implementar tales técnicas. Un enfoque en el que pienso es usar primero un desobuscador como simplify y luego extraer las URL mediante análisis estático (utilizando las herramientas mencionadas anteriormente) .
¿Cuáles son otras formas de extraer automáticamente las URL ocultas? ¿Hay alguna herramienta o biblioteca por ahí?