Introducción a la Organización del Ordenador Usando Ensamblador con un Raspberry Pi

*Subsistema del Ordenador* [Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi] (http://bob.cs.sonoma.edu/IntroCompOrg-RPi/frontmatter-1.html) es un libro electrónico y gratuito que nos enseña cómo funciona el hardware, a bajo nivel, de un ordenador desde el punto de vista del programador. Para ello, se basa en uno de nuestros “juguetes” favoritos: Raspberry Pi, con Raspbian y usando lenguaje ensamblador para la arquitectura de la CPU de dicho dispositivo: ARM. El objetivo del libro es que el lector llegue a entender como funciona un ordenador desde el nivel más bajo.
Leer más

Tutorial sobre ensamblador para ARM

*ARM assembly* Mientras la arquitectura x86/x64 es la reina del microprocesador para ordenadores personales, ARM la es para dispositivos móviles y de bajo consumo. El entender el sistema a bajo nivel no es quizás uno de los requisitos para un programador web, pero sí lo es para escritores de exploits, o conducir tareas de ingeniería inversa. En este caso, tener un buen control y entendimiento del lenguaje ensamblador es esencial.
Leer más

Emulador visual para aprender ARM

ARM es quizás, gracias a los dispositivos móviles y el famoso IoT, la arquitectura de procesadores más usada. Incluso Linus Torvalds augura que 2016 será el año de los portátiles con ARM. Por ello para cualquiera que requiera o simplemente desee tener conocimiento a bajo nivel de los sistemas, es esencial conocer el funcionamiento de ARM. Para ayudarnos con esta tarea, toda herramienta o ayuda es siempre bienvenida. Aquí es dónde VisUAL viene de perlas.
Leer más

Ejercicios de ingeniería inversa de arquitectura ARM

Ya hemos publicado alguna vez algún proyecto para la práctica de explotación de software compilado para arquitectura ARM. En esta caso, la entrada es motivo de otro pequeño proyecto sobre la ingeniería inversa de aplicaciones compiladas en dicha arquitectura. Son ejemplos de (código fuente en C, más decompilación en ensablador del mismo) patrones de uso común en cualquier aplicación, como por ejemplo son las arrays de cadenas o listas enlazadas.
Leer más

Explotando la corrupción de memoria en arquitectura ARM

Como ya he dicho muchas otras veces, la mejor forma de aprender es practicando (…y enseñando). Explotación de vulnerabilidades en general en arquitecturas x86, son bien conocidas y hay documentación por doquier, de forma gratuita online y en libros, pero cuando nos enfrentamos a arquitecturas ARM, la documentación ya no es tan abundante. Con el boom de la tecnología móvil y el famoso Internet of things (IoT), la arquitectura ARM está en nuestro día a día y posiblemente interactuemos con ella mucho más de lo que nos imaginemos.
Leer más

Introducción a la arquitectura y programación sobre ARM

Cada vez son más los dispositivos que salen al mercado con procesadores ARM. No sólo teléfonos móviles y tabletas, sino dispositivos embebidos y pequeños como Raspberry Pi, Beaglebone, etc también incorporan dicha arquitectura. Si estás interesado en aprender más sobre ARM, este tutorial está dividido en dos partes: Introduction to ARM y Efficient C for ARM. El índice de la primera parte: Introduction to ARM, es el siguiente: Start Why Learn Assembly Language?
Leer más

Emulador por hardware para juegos, consolas y ordenadores retro FPGA Arcade Replay

Se llama FPGA Arcade Replay y se puede configurar para emular videojuegos clásicos (y consolas como Colecovision, Odyssey 2 etc) además del hardware de ordenadores como Atari ST y Amiga. De momento se han probado que funcionan todos los juegos que tienen en su site FPGA Arcade así como emulación del core de un Atari ST y otro para Amiga (MiniMig) pero en breve estarán disponibles otras emulaciones como BBC Micro, Commodore 64 y otros.
Leer más

Ordenador completo ARM del tamaño de una memoria DIMM de portátil

Exactamente del tamaño SO-DIMM (módulo RAM para portátiles), es un PC de 68x26mm cuyo microprocesador es el mismo que da potencia al iPhone, un ARM de 800 MHZ Cortex A8. TRITON TX51 tendrá soporte para Windows CE 6.0 y Linux 2.6 y llevará un kit de desarrollo llamado StarterKit-5 con 128MB de RAM de serie, USB y ethernet, que a su vez sirve de placa de entrada y salida.
Leer más