Para todos aquellos a los que les apasiona el hacking, aquellos que compran cada uno de los gadgets que aparecen en el mercado (Raspberry Pi, Buspirate, Arduino) y que además so...
Para todos aquellos a los que les apasiona el hacking, aquellos que compran cada uno de los gadgets que aparecen en el mercado (Raspberry Pi, Buspirate, Arduino) y que además son aficionados a la electrónica: este es su libro de referencia. Iniciarse en el mundo de la programación de microcontroladores abre un gran abanico de opciones profesionales de futuro para todos aquellos que tengan ciertas aptitudes en el mundo del hacking y la electrónica. Este libro representa la guía ideal para lograr entender este complejo mundo del hacking enfocado al hardware, que crece cada día en importancia a pasos agigantados. La aparición constante de nuevos sistemas electrónicos como IoT (Internet de las cosas), y la gran presencia de todo tipo de aparatos que controlan nuestras vidas, justifican de forma más que sobrada el gran interés que despierta en los hackers analizar, entender y modificar el comportamiento de estos dispositivos. En breves y sencillos conceptos se explican los principios básicos de la electrónica, necesarios para realizar cada uno de los proyectos desarrollados específicamente para este libro. A fin de que el lector sea capaz de realizar cada una de las prácticas incluidas, se ha elegido cuidadosamente una serie de kits de desarrollo y componentes fáciles de obtener en el mercado y de bajo coste. Gracias a esta mínima inversión y a la ayuda de este libro, el lector podrá comprobar si dispone de las aptitudes necesarias para introducirse en este gran mundo del hacking de hardware y firmware.
Índice
INTRODUCCIÓN AUTORES DEL LIBRO CAPÍTULO 1. ELECTRÓNICA GENERAL 1.1 CONCEPTOS FÍSICOS 1.1.1 Voltaje y corriente eléctrica 1.1.2 Corriente continua y alterna 1.2 COMPONENTES ELECTRÓNICOS 1.2.1 Resistencias 1.2.2 Condensadores y bobinas 1.3 SEMICONDUCTORES 1.3.1 Diodos 1.3.2 Transistores 1.3.3 Circuitos integrados 1.4 ELECTRÓNICA DIGITAL 1.4.1 Sistema binario 1.4.2 Sistema hexadecimal 1.4.3 Códigos 1.5 ESQUEMA ELÉCTRICO 1.6 SOLDANDO 1.7 DESOLDANDO CAPÍTULO 2. MICROPROCESADOR 2.1 CPU 2.2 MICROCONTROLADOR 2.3 PUERTAS LÓGICAS 2.3.1 La puerta NOT 2.3.2 La puerta AND 2.3.3 La puerta NAND 2.3.4 Puerta lógica OR 2.3.5 Puerta NOR 2.3.6 Puerta XOR 2.3.7 Puerta XNOR 2.3.8 Utilización de puertas lógicas 2.4 FLIP-FLOP 2.5 REGISTROS 2.5.1 Registro de desplazamiento 2.5.2 Registros de rotación CAPÍTULO 3. MEMORIA 3.1 ORGANIZACIÓN DE LA MEMORIA 3.2 MEMORIA RAM CMOS 3.3 MEMORIA ROM 3.3.1 Memoria PROM 3.3.2 Memoria EEPROM 3.3.3 Memoria MROM 3.4 MEMORIA FLASH 3.4.1 Pendrive 3.4.2 Tarjeta de memoria 3.4.3 Memorias NAND y NOR 3.5 MEMORIA CACHÉ CAPÍTULO 4. COMUNICACIONES 4.1 INTERFAZ RS232 4.2 INTERFAZ RS422 4.3 INTERFAZ RS485 4.4 BUS I2C 4.4.1 Protocolo 4.5 JTAG 4.5.1 Ataques 4.5.2 Defensa CAPÍTULO 5. BUS PIRATE 5.1 PROBANDO EL BUS PIRATE 5.2 PRÁCTICA RTC 5.3 MACROS 5.4 OPERACIÓN DE LECTURA 5.5 OPERACIÓN DE ESCRITURA 5.6 OPENOCD 5.6.1 Compilando OpenOCD 5.7 CONECTANDO EL BUS PIRATE AL STM32 5.8 FLASHEANDO DISPOSITIVOS CON BUS PIRATE 5.8.1 Memoria EEPROM 5.8.2 Microcontrolador MIPS 5.8.3 Parar el procesador 5.9 VOLCADO DEL BOOTLOADER 5.10 ESCRITURA DEL BOOTLOADER CAPÍTULO 6. RASPBERRY PI COMO JTAG 6.1 RASPBERRY PI 6.2 INSTALANDO RASPBIAN 6.3 PREPARANDO LA RASPBERRY PI 6.4 PLACAS DE DESARROLLO BASADAS EN ARM M3 6.5 CONECTANDO LA RASPBERRY PI AL STM32 6.6 PROBANDO EL JTAG 6.7 INSTALACIÓN DEL ENTORNO DE COMPILACIÓN CRUZADA (CROSS-COMPILER) 6.7.1 Instalación de Binutils 6.7.2 Instalación de GCC 6.7.3 Instalación de Newlib 6.7.4 Concluyendo la instalación de GCC 6.7.5 Instalación de GDB 6.7.6 Instalación de la toolchain mediante apt-get 6.8 CREANDO UN PROGRAMA PARA LA PLACA STM32 6.9 FLASHEANDO EL MICROCONTROLADOR STM32 CON EL PROGRAMA RECIÉN CREADO 6.10 DEPURANDO UN PROGRAMA CON LA RASPBERRY PI COMO PLATAFORMA JTAG 6.11 EXTRACCIÓN Y REVERSING DE FIRMWARE CAPÍTULO 7. BARE METAL EN RASPBERRY PI 7.1 SECUENCIA DE INICIO DE LA RASPBERRY PI 7.2 HOLA MUNDO EN LA RASPBERRY PI BIBLIOGRAFÍA ÍNDICE ALFABÉTICO