Comprovació d’appz android

MeldAlguna vegada he necessitat comprovar que una aplicació android no baixada del Market (Google Play) sigui fiable i no contingui malware per exemple. Per algun tipus d’aplicacions això podria ser força difícil i costós de comprovar manualment, però per algun altre es pot fer en un moment si es disposa de les eines necessàries, un descompilador d’apks i un comparador de fitxers.

Els casos on pot ser bastant ràpida la comprovació és quan a més de la versió dubtosa del programa es disposa d’una versió fiable. Per exemple en bastants programes del Market hi ha una versió gratuïta (amb publicitat i/o certes limitacions) i una versió de pagament. Anem a veure un cas pràctic amb l’aplicació Cartoon Camera, que disposa de versió free i de pagament.

Per un costat tinc l’aplicació gratuïta baixada del market, i per altra banda tinc l’aplicació sencera/crackejada baixada d’algun fòrum de warez. L’objectiu és comprovar que la suposada versió complerta/pirata sigui de fiar i no contingui codi addicional perjudicial.

El primer pas seria descompilar ambdós programes per obtenir el codi font en llenguatge smali (tipus assembler). I a continuació utilitzar un programa que permeti visualitzar totes les diferències. Estant en un ordenata amb ubuntu, he utilitzat l’eina apktool per descompilar els .apk i el programa Meld per comprovar les diferències.

Tenint les eines necessàries correctament instal·lades, només cal obrir un terminal i executar:

apktool d pgm_fiable.apk dbg_fiable
apktool d pgm_dubtos.apk dbg_dubtos

Amb això descompilem els dos programes, cadascú a la seva carpeta. Seguidament obrim el Meld i fem una nova comparació de directoris. Al cap d’un moment surt la llista de tots els fitxers, i destacats en vermell i negreta tots els que tenen diferències. Fent doble clic s’obren els dos fitxers en paral·lel per poder veure els canvis que tenen.

Aplicat en concret a l’app Cartoon Camera, manualment es pot veure molt ràpidament que les poques diferències existents són per algun literal (enlloc de “Cartoon Camera” surt “Cartoon Camera Pro”, …) i a nivell de codi l’únic canvi detectat és que una rutina dins LicenseCheck.smali retorna un 0 enlloc d’un 1 (ejem, crackea jacta est ;-). Per tant es pot considerar que l’aplicació dubtosa és correcta i està lliure de codi perillós.

Un altre programa que també vaig comprovar d’aquesta manera era l’app del teclat SwiftKey X, amb resultats molt similars. Aquest senzill mètode també pot ser d’utilitat en cas de disposar d’un programa crackejat per algú altre i poder veure quines modificacions s’han fet per tal de saltar-se les limitacions (enginyeria re-inversa ;-). Als programadors els pot servir per saber com protegir millor els seus programes, i als curiosos per saber com altres persones ho han resolt. De totes maneres, si creieu que una aplicació és útil i està ben feta, val la pena ajudar els seus desenvolupadors… ;-)

M´agrada
2
Aquesta entrada s'ha publicat a Smartphones i etiquetat amb , , , , . Afegiu a les adreces d'interès l'enllaç permanent.

Deixa un comentari

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *