epubgratis e ingeriería inversa

 

EpubgratisSi tienes un lector de ebooks es muy probable que te hayas encontrado con epubgratis, una web desde la que descargar libros en formato epub de gran calidad.

El sistema de descarga era bastante sencillo, te descargabas un .torrent lo abrías en tu cliente y se descargaba el libro, todo con muchos seeders y prácticamente instantáneo.

Todo cambió hace unos meses cuando decidieron hacer el sistema bastante peor, para poder descargarte un libro ahora es necesario descargar un .exe, el cual te marea con varias opciones durante la instalación (Sí, sí, instalación) que te instalan barras del navegador (Siempre de gran utilidad) y el buscador Babylon. 

El caso es que si vas con un poco de cuidado puedes hacer la instalación completa sin que te instale ninguna barra y conseguir el ansiado archivo .url (Que no es más que un .torrent) para poder descargar el libro como antes.

Ahora bien ¿Qué pasa si eres un usuario estándar? Pues que acabas con 20 barras en el navegador, así que eso se tenía que acabar así que me descargué la versión Free del Ida Pro un decompiler muy bueno y me puse a ver qué se escondía en el binario:

Ida

En seguida me di cuenta de una cosa, que no tenía ni idea de qué demonios estaba haciendo, pero decidí debuggearlo y encontré esto:

DLL

¿Podría ser que el archivo no estuviera en el propio .exe sino que se lo descargara de internet? Una rápida comprobación me confirmó que así era. Así que era momento de sacar el Wireshark:

TCP

Me di cuenta de que el único enlace que tenía algo de Harry Potter (El libro con el que estaba probando) era uno que contactaba con la web oneinstaler enviando algunos de mis datos (Como mi país de residencia, Francia en este caso por la VPN), así que tenía que probar algo diferente, así que empecé a hacer búsquedas por palabras claves como epub, book, id… Y justo fue con este último con el que tuve suerte:

id

Básicamente lo que hace es coger el número de node al que pertenece un libro:

http://epubgratis.me/node/35?page=1

Y hace una petición de este modo:

http://epubgratis.me/d.php?id=35

Así que sabiendo ya lo que  hacía creé una simple extensión de Chrome con la que descargar directamente el archivo .url, podéis encontrar la extensión en mi github.

Imagino que alguien más listo que yo podría haberlo hecho todo con el IDA, pero yo no sé usarlo. A ver si algún día me pongo a ello…



VPN permanente, mi experiencia

OpenvpnHace dos semanas contraté un servidor dedicado en ovh con la intención de instalar un servidor de openvpn y estar conectado de manera permanente a el. Lo primero que tenemos que tener en cuenta es que una VPN privada no te proporciona anonimidad, sólo una conexión cifrada de un punto a otro. Esto es ideal para conectarte a redes inseguras o públicas ya que, en principio, la VPN mantendría tus datos fuera de los ojos curiosos.

Mi principal objetivo es que la VPN funcionara dentro de la VPN de la universidad, la cual tiene varios puertos cerrados y te deja los justos para trabajar, así que al configurarla tuve que cambiar el protocolo de UDP a TCP e iniciarla por el puerto 443, después de recompilar el kernel del servidor (Era un kernel estático y no tenían el módulo tun).

El siguiente problema vino con la estabilidad de mi conexión actual, estoy conectado a través de un nodo de guifi.net a la universidad y haciendo que mi router resuelva la VPN, con lo que consigo una conexión a Internet transparente pero muy lenta e inestable.

Cada vez que perdía la conexión a Internet tenía que reiniciar el router y mi servicio de openvpn hasta que me programé un script que comprueba la conectividad y, si no la hay, reinicia tanto el router y la VPN.

Tras haber solucionado ese percance me enfoqué en mi móvil, en el que por fortuna ya era root. El mayor problema de los móviles es el no tener disponible de base el módulo tun.ko (Necesario para realizar el cifrado), así que me puse a buscar el kernel de mi móvil con poco éxito. Cuando ya estaba perdiendo las esperanza me encontré con Tun.ko repository que a través de su aplicación TUN.ko Installer te permite descargar e instalar módulos que ha compartido la gente. Una vez conseguido el módulo sólo quedó usar la aplicación OpenVPN Installer y OpenVPN Settings para tenerlo todo funcionando.

Tras tenerlo todo funcionando durante un tiempo me he dado cuenta de que tener el túnel siempre en el móvil me gasta muchísimo la batería. Ahora puedo hacer dos cosas, conectarlo manualmente cada vez que me conecta a una red wifi o no tener el móvil siempre conectado a Internet.

En fin, si tenéis cualquier duda no dudéis en comentar.