BetaBeers Córdoba https://twitter.com/betabeersODB • Codemotion Madrid https://www.facebook.com/Codemotion-Madrid-505998872792272/ • FOSDEM (Free and Open Source Software Developers’ European Meeting) https://fosdem.org 4/36
código nativo (C/C++) en aplicaciones Android. • Con NDK generas librerías binarias para cada arquitectura de procesador (arm, armv7, x86, etc) • Las librerías binarias se pueden invocar desde Java por medio de JNI (Java Native Interface). 8/36
de un fichero APK • Estos ficheros son solamente ficheros ZIP conteniendo recursos y un archivo Dalvik Executable (.dex) • Con las herramientas adecuadas, podemos extraer el código Java incluido dentro del fichero .dex • Elementos como los recursos gráficos y el fichero AndroidManifest.xml no van ofuscados 19/36
• ProGuard optimiza, reduce y ofusca el código de aplicaciones Android • Solo funcionará cuando hagamos la exportación a APK • Las reglas se escriben en fichero proguard-rules.pro 22/36
excluye): -optimizations !code/simplification/arithmetic -keep public class * extends android.app.Activity -keep public class * extends android.app.Fragment -keep public class * extends android.support.v4.app.Fragment -keepclasseswithmembernames,includedescriptorclasses class * { native <methods>; } 23/36
del apk como ficheros .so • Este código está compilado y ensamblado contra una arquitectura específica (ARM, x86, …) • En teoría es difícil leer un fichero ensamblado, pero… hay herramientas que ayudan: IDA como disassembler, apktool para desempaquetado y reempaquetado, etc. 26/36
nuestras funciones y variables de la tabla de símbolos ◦ Ofuscar el código, por ej. con O-LLVM LOCAL_CFLAGS += -ffunction-sections -fdata-sections -fvisibility=hidden Instructions Substitution: -mllvm -sub Bogus Control Flow: -mllvm -bcf Control Flow Flattening: -mllvm -fla Functions annotations 28/36
Desarrollo de NDK apps http://es.slideshare.net/RevistaSG/introduccion-al-desarroll o-de-ndk-apps-dev-day-4-woman-condesasama • Conectar programas C/C++ con apps Android http://www.nacho-alvarez.es/index.php/blog/2012/05/02/co nectar-programas-cc-con-aplicaciones-android/ 36/36