Crypto 101

Crypto 101 es un proyecto (en proceso) sobre criptografía. Éste es un libro electrónico orientado para programadores de todos los niveles y está enfocado en los sistemas criptográficos actuales, sus debilidades y como romperlos. El libro empieza con conceptos básicos y va avanzando hasta llegar a sistemas criptográficos completos como: SSL y TLS, OpenPGP y GPG y OTR (Off-The-Record Messaging). Los capítulos que podemos encontrar en el mismo son los siguientes:
Leer más

Compilador interactivo de C/C++

Cuando haces ingeniería inversa a un binario (del cual no dispones del código fuente), no es sólo importante tener conocimientos de ensamblador, la pila, montículo (heap), registros, etc sino también es importante conocer los pequeños trucos y patrones que usa el compilador/es a la hora de generar el código binario. ¿Cómo se traduce una instrucción if? ¿y un switch? ¿bucles? ¿operaciones con punteros? ¿arrays? ¿construtores/destructores en C++? ¿Intel, ARM? etc
Leer más

La sentencia prohibida

Últimamente se han descubierto un par de errores bastante serios relacionados con la comprobación de certificados digitales. El primero de los casos saltó a la palestra cuando Apple trató de parchear de forma silenciosa parte del código nativo en los sistemas de Apple que valida los certificados digitales. En este caso a Apple se le “escapó” un goto fail; que prácticamente invalidaba la función de validación. Este sólo parece que afectaba a Safari dentro los navegadores más conocidos, ya que Firefox y Chrome usan sus propias rutinas de comprobación y no la nativa del sistema.
Leer más

Aprende ensamblador de una manera fácil y segura

Para aprender a programar en ensamblador y sentir el hardware un poco más cerca, nada mejor que empezar con una arquitectura sencilla, con pocas instrucciones y simple. El proyecto YASP es un entorno de desarrollo de ensamblador totalmente funcional basado en la web, es decir, todo lo que necesitas es un navegador para poder usarlo. YASP provee de un ensamblador real, emulador y depurador, además de simulador de hardware sencillo.
Leer más

Crea tu propia versión de Flappy Bird

Creo que a día de hoy todos, al menos, hemos oído el nombre de FlappyBird. A mi personalmente me importa más bien poco el revuelo ocasionado por la retirada del juego del App Store de Apple o el Market de Android. Si alguien ha vivido bajo una piedra en la última semana, busca por Google. El motivo de esta entrada es el de hacer referencia a un tutorial sobre como programar FappyBird.
Leer más

Tutorial para crear un juego multijugador en Java usando libgdx

No os perdáis este completo tutorial para desarrollar paso a paso un juego multijugador en red usando libgdx (framework para desarrollo de juegos en Java). Puedes ejecutar y hacer debug directamente en el escritorio, haciendo más cómoda y rápida la programación. El objetivo de este tutorial es mostrar como los desarrolladores pueden crear juegos multiplayer integrando AppWarp cloud Java SDK con libgdx. En el juego de ejemplo, se usa de base el código de un juego para un sólo jugador ("
Leer más

Ingeniería Inversa "extrema" al clásico Tetris de Nintendo

Este espectacular artículo de ingeniería inversa que puedes ver completo en el enlace original mechanics of how Tetris works, then builds an AI to play the game, explica al detalle el mecanismo del clásico de Nintendo de 1989, Tetris. Para llevar a cabo este análisis, el autor del artículo explora a fondo y con un detalle realmente increíble, la ROM original. Como la NES estaba basada en el microprocesador MOS 6502, toca volver a desempolvar nuestros libros de nuestro querido ensamblador 6502.
Leer más

Las guías de Github

Github ha anunciado Github Guides, una serie de guías que nos ayudan a entender mejor conceptos específicos del ciclo de vida de nuestro proyecto sobre dicha plataforma. En estos momentos hay 4 guías disponibles: Understanding the GitHub Workflow Getting your project on GitHub Mastering Issues Mastering Markdown Además de las mismas, también existe un canal de youtube con varios vídeos donde podemos aprender de una forma más visual. Estas guías junto a los cursos oficiales son un gran recurso no sólo para aprender como user Github, sino Git propiamente dicho.
Leer más