Error: XML Validation error : EntityRef: expecting';'


   Cuando os encontréis este error en alguna conexión/servicio web que tengáis que hacer mediante XML, significa que hay algún carácter en el código que tenéis que "escapar". Muchas veces pasa cuando en el xml tenemos que poner alguna url y tienen el carácter &.

Por ejemplo tenemos el siguiente xml:

<Nodo>     
            <titulo>Este es el titulo</titulo>       
            <url>http://www.direccion.com?parametro1=1233&parametro2=dasflkjdf</url>                     
</Nodo>

   En este caso tenemos que escapara el carácter & utilizando &amp; ( no olvidaros del ; ) . Nos quedaría así:

<Nodo>     
            <titulo>Este es el titulo</titulo>       
            <url>http://www.direccion.com?parametro1=1233&parametro2=dasflkjdf</url>                     
</Nodo>

   En general para cualquier carácter la sintáxis sería &nombre;

   Otra forma de hacerlo es usar una sección CDATA para meter la url:

<Nodo>     
            <titulo>Este es el titulo</titulo>       
            <url><![CDATAhttp://www.direccion.com?parametro1=1233&parametro2=dasflkjdf]]</url>                     
</Nodo>

Ingeniería inversa en aplicaciones Android


   Resulta muy fácil decompilar una aplicación android para ver el código en el que está realizada. Por eso os voy a explicar como hacerlo en unos sencillos pasos.

   Lo primero de todo es saber a qué nos referimos con ingeniería inversa. Según la wikipedia, la ingeniería inversa es:

"Obtener información o un diseño a partir de un producto, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado."

   En nuestro caso significa que tenemos un programa ya compilado (.apk) para Android, y queremos ver el código de la aplicación, para obtener información de cómo se ha desarrollado.

   Para realizar esta tarea vamos a contar con dos aplicaciones para decompilar y ver el código, más la aplicación que queremos decompilar.


   Nos sirve para convertir un archivo .dex a un archivo .jar


   Con esta aplicación podemos ver los ficheros .class que son los que contienen el código de la aplicación.


   PASO 1   

   Cogemos nuestra apk de android y lo renombramos cambiando la extensión por .zip. Ahora tenemos un fichero que podemos descomprimir. Lo descomprimimos y vemos que en los ficheros hay un fichero con extensión .dex






   PASO 2   

   Abrimos una consola y nos situamos en el directorio de Dex2jar (previamente lo hemos tenido que descomprimir) y ejecutamos el comando:

d2j-dex2jar.bat "ruta fichero .dex"



   El fichero .dex está en la carpeta que hemos descomprimido en el PASO 1.




   PASO 3   

   Nos ha creado un fichero llamado classes-dex2jar. Abrimos el programa jd-gui y abrimos ese fichero. Podemos ver y acceder a las clases que componen el programa.