Ingeniería inversa de MCU

Desbloqueo de Microcontroladores - MikaTech

Nuestros valores y objetivos

Acerca de MikaTech

El tiempo pasó rápido, desde el día que hicimos nuestro primer proyecto de ingeniería inversa de MCU 8051 en 1998, hasta el día que establecimos nuestro laboratorio de ingeniería inversa de un millón de dólares en 2012, pasaron 14 años. Ahora comenzamos nuestro nuevo negocio de desarrollo de sistemas visuales embebidos, esperamos poder servir otros 10 años.

firma Peter Lee Co-Fundador y CEO

Ingeniería inversa de FPGA (Field-programmable gate array)

  • Una matriz de puertas programables en campo (FPGA) es un circuito integrado diseñado para ser configurado por el cliente o diseñador después de la fabricación, de ahí lo de "programable en campo". La configuración de la FPGA se especifica generalmente mediante un lenguaje de descripción de hardware (HDL), similar al utilizado para un circuito integrado de aplicación específica (ASIC) (anteriormente se usaban diagramas de circuitos, pero esto es cada vez más raro). Las FPGA contemporáneas disponen de grandes recursos de compuertas lógicas y bloques de RAM para implementar cálculos digitales complejos. Dado que los diseños de FPGA emplean E/S muy rápidas y buses de datos bidireccionales, se convierte en un desafío verificar el tiempo correcto de los datos válidos dentro del tiempo de establecimiento y retención. La planificación del diseño (floor planning) permite asignar recursos dentro de la FPGA para cumplir con estas restricciones de tiempo.[1] Las FPGA pueden implementar cualquier función lógica que pueda realizar un ASIC. La capacidad de actualizar la funcionalidad después del envío, la reconfiguración parcial de una parte del diseño[2] y los bajos costos de ingeniería no recurrente en comparación con un diseño ASIC (a pesar del costo unitario generalmente más alto) ofrecen ventajas para muchas aplicaciones.[3]

    Las FPGA contienen componentes lógicos programables llamados "bloques lógicos" y una jerarquía de interconexiones reconfigurables que permiten que los bloques se "cableen entre sí", de manera similar a muchas compuertas lógicas (cambiables) que se pueden interconectar en diferentes configuraciones. Los bloques lógicos se pueden configurar para realizar funciones combinacionales complejas o simplemente compuertas lógicas simples como AND y XOR. En la mayoría de las FPGA, los bloques lógicos también incluyen elementos de memoria, que pueden ser simples flip-flops o bloques de memoria más completos.[3]

    Algunas FPGA tienen características analógicas además de las funciones digitales. La característica analógica más común es la velocidad de respuesta programable y la intensidad de accionamiento en cada pin de salida, lo que permite al ingeniero establecer velocidades lentas en pines poco cargados que de otro modo sonarían inaceptablemente, y velocidades más fuertes y rápidas en pines muy cargados en canales de alta velocidad que de otro modo funcionarían demasiado lentos.[4][5] Otra característica analógica relativamente común son los comparadores diferenciales en los pines de entrada diseñados para conectarse a canales de señalización diferencial. Algunas "FPGA de señal mixta" tienen convertidores analógico-digitales (ADC) y convertidores digital-analógicos (DAC) periféricos integrados con bloques de acondicionamiento de señal analógica que les permiten operar como un sistema en un chip.[6] Estos dispositivos difuminan la línea entre una FPGA, que maneja ceros y unos digitales en su tejido de interconexión programable interno, y una matriz analógica programable en campo (FPAA), que maneja valores analógicos en su tejido de interconexión programable interno.


  • Lista de ingeniería inversa de MCU FPGA Xilinx de Mikatech:
  • Serie XCxx: descifrado de protección de copia de microprocesador: X9536 XC9572 XC95108 XC95144 XC95288 XC95216 ...

    Serie XCxxXL: ingeniería inversa de microcontroladores: X9536XL XC9572XL XC95108XL XC95144XL XC95288XL XC95216XL ...


  • Más información
  • FPGA (Field Programmable Gate Array): Tecnología, seguridad y visión general de la ingeniería inversa

    1. Historia y origen

    El ecosistema FPGA evolucionó a partir de primeros componentes programables como PROM y PLD, que admitían tanto programación por lotes en fábrica como configuración en campo. Estos primeros dispositivos tenían interconexiones de compuertas fijas, careciendo de la flexibilidad de enrutamiento dinámico que define a las FPGA modernas. Para satisfacer la demanda de hardware reconfigurable a gran escala, el Departamento de Guerra Naval financió el proyecto de Steve Casselman a finales de los 80 para construir un sistema con 600,000 compuertas reprogramables, lo que resultó en una arquitectura patentada que sentó las bases de la lógica programable de alta densidad moderna. Las teorías fundamentales para matrices lógicas y estructuras de bloques se definieron en patentes de 1985 de David W. Page y LuVerne R. Peterson, formando la base teórica del diseño de hardware programable actual.

    En 1985, los fundadores de Xilinx, Ross Freeman y Bernard Vonderschmitt, lanzaron el XC2064, la primera FPGA comercialmente exitosa. A diferencia de los PLD anteriores, contaba con compuertas lógicas totalmente programables e interconexiones flexibles, marcando el nacimiento del mercado comercial de FPGA. El XC2064 contenía solo 64 bloques lógicos configurables con LUT de 3 entradas duales, una especificación modesta para los estándares modernos. Freeman fue incluido posteriormente en el Salón de la Fama de los Inventores Nacionales por este logro innovador. Xilinx dominó el mercado hasta mediados de los 90, cuando surgieron competidores como Actel y capturaron casi el 18 por ciento de la cuota de mercado mundial.

    La década de 1990 fue testigo de un rápido avance en la complejidad y el volumen de producción de las FPGA. A principios de la década, las FPGA se limitaban a infraestructuras de telecomunicaciones y redes. A finales de los 90, la mejora de la densidad y la rentabilidad expandió su uso a sistemas embebidos automotrices, industriales y de consumo. Esta adopción generalizada fue impulsada por nodos de proceso más pequeños, capacidades DSP integradas y una integración simplificada a nivel de placa para escenarios de codiseño con MCU y microcontroladores.

    2. Arquitectura híbrida moderna de FPGA

    Una tendencia moderna dominante integra el tejido lógico tradicional de FPGA con núcleos de procesador embebidos para crear un sistema en un chip programable. Este concepto se originó en el diseño Burroughs SB24 de 1982, que combinaba lógica de CPU reconfigurable en un solo dado. Las implementaciones comerciales actuales incluyen Xilinx Zynq-7000 con un núcleo ARM Cortex-A9 de doble núcleo a 1.0 GHz, Altera Arria V con un procesador ARM de doble núcleo a 800 MHz y Atmel FPSLIC que combina un núcleo AVR con lógica programable. Actel SmartFusion integra además un núcleo Cortex-M3, flash embebido, RAM y periféricos analógicos en un tejido FPGA basado en flash.

    Lanzado en 2010, el Xilinx Zynq-7000 definió la categoría de SoC totalmente programable, fusionando hardware de microcontrolador ARM endurecido con lógica FPGA para reducir las barreras de desarrollo para ingenieros embebidos. Fabricado en proceso de 28 nm, unifica el procesamiento de software en serie y la aceleración de hardware en paralelo, abordando la creciente complejidad de los diseños embebidos modernos. La integración monolítica reduce el consumo de energía, minimiza las interconexiones de PCB, reduce los costos de componentes y aumenta la fiabilidad del sistema, ya que la mayoría de las fallas electrónicas provienen de conexiones de chips a nivel de placa, no de defectos internos del dado.

    Los diseñadores también pueden implementar núcleos de procesador blandos como MicroBlaze, Nios II y Mico32 completamente dentro de los recursos lógicos de la FPGA en lugar de usar macros endurecidas. Las FPGA contemporáneas admiten reconfiguración parcial en tiempo de ejecución, lo que permite la computación reconfigurable donde la lógica de hardware se adapta dinámicamente a los requisitos de la tarea. Más allá de las FPGA tradicionales, dispositivos híbridos como el Stretch S5000 combinan matrices de procesador configurables por software y lógica similar a FPGA en un solo dado para ofrecer rendimiento de computación adaptativa.

    3. Crecimiento de densidad, escala de mercado y comparación con ASIC

    La densidad de compuertas de las FPGA ha crecido exponencialmente a lo largo de las décadas: 8,192 compuertas en la plataforma Burroughs de 1982, 9,000 en los dispositivos Xilinx de 1987, 600,000 en el prototipo naval de 1992 y millones de compuertas a principios de los 2000. El mercado comercial se expandió de $14 millones en 1987 a más de $385 millones en 1993, $1.9 mil millones en 2005 y una proyección de $2.75 mil millones en 2010. Los inicios de diseño de FPGA a nivel mundial aumentaron de 80,000 en 2005 a 90,000 en 2008, lo que refleja una creciente adopción en la industria.

    Históricamente, las FPGA estaban por detrás de los ASIC en velocidad, eficiencia energética y densidad lógica, requiriendo 40 veces el área, 12 veces la potencia dinámica y operando a un tercio de la velocidad de implementaciones ASIC equivalentes. Familias modernas como Xilinx Virtex-7 y Altera Stratix han cerrado esta brecha, rivalizando con el rendimiento de ASIC con costos de material más bajos y reconfiguración sobre la marcha. Diseños complejos que antes requerían de 6 a 10 ASIC discretos ahora pueden consolidarse en una sola FPGA avanzada.

    Las FPGA ofrecen reprogramabilidad en campo para corregir errores de firmware implementado, acortar el tiempo de comercialización y eliminar costosos gastos de ingeniería no recurrente. Muchos desarrolladores adoptan un flujo de trabajo híbrido, creando prototipos en FPGA antes de realizar la fabricación final de ASIC para producción de alto volumen. Xilinx identifica el aumento de los costos de IC, los ciclos de desarrollo de ASIC más largos, la reducción de recursos de I+D, los riesgos de ingresos por lanzamientos retrasados y las restricciones de costos económicos como tendencias clave que hacen que las FPGA sean ideales para aplicaciones de volumen medio a alto.

    4. Diferencias fundamentales entre CPLD y FPGA

    La distinción entre CPLD y FPGA es principalmente arquitectónica. Los CPLD utilizan matrices lógicas de suma de productos rígidas combinadas con registros cronometrados limitados, ofreciendo retardos de tiempo predecibles y una alta relación lógica-interconexión con flexibilidad de diseño limitada. Las FPGA son dominantes en enrutamiento, ofreciendo una flexibilidad de diseño mucho mayor, pero con un cierre de tiempos más complejo para los desarrolladores. En la práctica, las FPGA proporcionan una capacidad de recursos mucho mayor y comúnmente integran multiplicadores, memoria y SERDES de alta velocidad, características raramente vistas en CPLD.

    Una diferencia clave de hardware radica en el almacenamiento no volátil: la mayoría de los CPLD integran memoria flash en la placa para mantener los datos de configuración para una operación instantánea al encenderse. Las FPGA tradicionales basadas en SRAM dependen de almacenamiento externo, lo que las hace vulnerables a ataques de lectura durante la inicialización del arranque, lo que se relaciona directamente con flujos de trabajo de ingeniería inversa y extracción de firmware dirigidos a sistemas de microcontroladores embebidos.

    5. Seguridad de FPGA, ingeniería inversa y vectores de ataque de hardware

    La seguridad de las FPGA presenta compensaciones únicas en comparación con los ASIC y los microcontroladores seguros. Los dados de FPGA en blanco no contienen lógica fija durante la fabricación, lo que reduce el riesgo de implantación maliciosa de hardware durante la producción. Sin embargo, las FPGA tradicionales basadas en SRAM exponen su flujo de bits al cargarlo desde una flash externa, creando vulnerabilidades que los atacantes explotan para volcar contenidos de flash y realizar recuperación de datos no autorizada. Los proveedores modernos mitigan esto con cifrado de flujo de bits AES de hasta 256 bits y autenticación para almacenamiento externo.

    Las FPGA basadas en flash, como Microsemi ProAsic 3 y Lattice XP2, almacenan la configuración internamente, eliminando la exposición externa del flujo de bits sin cifrado obligatorio. Estos dispositivos también ofrecen resistencia a la radiación SEU para aplicaciones espaciales, mejorando la fiabilidad en entornos extremos. Para dispositivos FPGA y MCU comerciales bloqueados, la seguridad se aplica mediante registros de lockbit dedicados y fusibles de hardware programables que activan un estado de bloqueo global para bloquear el acceso de depuración no autorizado y el sondaje de memoria.

    Para desbloquear chips protegidos, los adversarios emplean tanto técnicas no invasivas como físicas. El glitching de voltaje durante el muestreo de fusibles en el arranque puede deshabilitar temporalmente la aplicación de lockbit, permitiendo a los atacantes volcar sectores críticos de EEPROM que almacenan huellas del dispositivo y metadatos de seguridad. Para chips bloqueados permanentemente con fusibles quemados, la decapsulación precisa elimina la resina epoxi del chip para exponer el dado de silicio, permitiendo la modificación láser de fusibles programables de una sola vez para deshabilitar permanentemente las barreras de seguridad de hardware.

    Después de un volcado exitoso de datos de flash y EEPROM, los ingenieros realizan una extracción completa de firmware para recuperar los archivos de configuración binarios sin procesar. La siguiente etapa es la recuperación de código, donde las herramientas de descompilación reconstruyen el HDL legible por humanos o pseudocódigo a partir de los datos del flujo de bits capturados. Mediante una ingeniería inversa detallada, los analistas decodifican la lógica de control oculta, los mecanismos de autenticación y las rutinas de interacción periférica integradas en el diseño original.

    Los datos de diseño recuperados pueden modificarse para eliminar las restricciones anticlonación, lo que permite a los actores maliciosos programar el flujo de bits modificado en hardware en blanco y crear un duplicado exacto del dispositivo bloqueado original. Este riesgo de piratería amenaza la propiedad intelectual industrial, especialmente para sistemas de control basados en FPGA utilizados en hardware automotriz y aeroespacial. Los investigadores de seguridad éticos utilizan las mismas técnicas para identificar debilidades de lockbit, optimizar esquemas de configuración de fusibles y fortalecer la seguridad nativa de FPGA contra la duplicación ilegal.

    6. Aplicaciones, arquitectura y flujo de diseño

    Las FPGA sirven a diversos campos, incluyendo DSP, radio definida por software, creación de prototipos de ASIC, imágenes médicas, visión por computadora, criptografía y sistemas de detección industrial. Originalmente utilizadas como lógica de conexión simple en PCB para reemplazar CPLD, ahora funcionan como SoC completos después de integrar multiplicadores dedicados a finales de los 90. Tradicionalmente utilizadas para productos de bajo volumen debido a los costos unitarios programables, las dinámicas de costos modernas han expandido su uso a mercados de consumo de alto volumen.

    Las aplicaciones verticales clave cubren aviónica DO-254, procesamiento de banda base en telecomunicaciones, infoentretenimiento automotriz, codificación de video broadcast, enrutamiento en centros de datos, supercomputación HPC, control de motores industriales y equipos de escaneo médico. La minería de criptomonedas temprana también aprovechó las fortalezas de computación paralela de FPGA antes del cambio a hardware de minería basado en ASIC.

    La arquitectura estándar de FPGA consiste en una cuadrícula de bloques lógicos configurables, pads de E/S periféricos y canales de enrutamiento uniformes. Las celdas lógicas típicamente incluyen una LUT, sumador completo y flip-flop; los dispositivos de gama alta modernos adoptan LUT de 6 entradas para una mayor eficiencia. Redes de enrutamiento global dedicadas gestionan señales de reloj de bajo skew por separado de las pistas de interconexión general. Los segmentos de enrutamiento terminan en cajas de conmutación, que pueden encadenarse para formar rutas de señales de larga distancia a través de la matriz.

    Los bloques embebidos endurecidos, incluidos multiplicadores DSP, bancos de memoria y transceptores, mejoran el rendimiento en comparación con los equivalentes generados por lógica. Las FPGA son fundamentales para la validación de ASIC pre-silicio y el desarrollo de firmware, acelerando el tiempo de comercialización de nuevos productos de chips. Proveedores como Xilinx y Tabula han desarrollado FPGA apiladas en 3D utilizando interpositores de silicio para aumentar la densidad sin expandir el tamaño del paquete.

    El flujo de diseño estándar de FPGA utiliza VHDL o Verilog para la entrada de diseño, seguido de síntesis, colocación y ruteo, análisis de tiempos y simulación para generar un flujo de bits de configuración. El flujo de bits se carga a través de JTAG o memoria externa. Herramientas de alto nivel como LabVIEW simplifican la programación, mientras que los núcleos IP preconstruidos aceleran el desarrollo. Los equipos de diseño realizan simulaciones de tiempos a nivel RTL, de compuertas y post-ruteo para verificar la funcionalidad antes del despliegue.

    7. Tecnología de proceso y fabricantes

    Las tecnologías de proceso de FPGA incluyen SRAM para reprogramación ilimitada, antifusible de una sola vez para máxima seguridad, componentes PROM/EPROM obsoletos, EEPROM reconfigurable eléctricamente, dispositivos flash optimizados en densidad y hardware basado en fusibles bipolares heredados. CMOS es la tecnología de transistores dominante para todos los productos de lógica programable modernos.

    Xilinx e Intel Altera controlan más del 80 por ciento del mercado global de FPGA, proporcionando software de diseño gratuito para plataformas Windows y Linux. Los competidores de nicho incluyen el especialista en bajo consumo Lattice Semiconductor, Microsemi centrado en seguridad aeroespacial, Achronix de alta velocidad y QuickLogic orientado a dispositivos portátiles. La arquitectura FPGA de multiplexación en tiempo de Tabula de 2010 ofrecía optimización de densidad mediante el uso compartido virtual de recursos lógicos.

Preguntas generales sobre extracción de firmware de microcontroladores


  • ¿Es seguro enviar un pago a MikaTech?

    Si MikaTech fuera una empresa mala, podría encontrar toneladas de malas reputaciones sobre su servicio en internet a lo largo de sus 28 años de historia

    Por lo tanto, ¡la respuesta es SÍ! Somos buena gente.

    Por qué elegir Mikatech, por favor haga clic aquí para averiguarlo


  • ¿Puede Mikatech romper circuitos integrados no listados en este sitio?

    Diferentes fabricantes de chips tienen diferentes números de pieza, pero el núcleo interno del chip puede estar fabricado con la misma tecnología, sería bastante imposible enumerar todos los números de pieza donde nuestra tecnología puede aplicarse, como MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.

    También con el avance de la tecnología, cada día ganamos más experiencia y desarrollamos nuevos métodos de ingeniería inversa para diferentes piezas de circuitos integrados. La lista completa de números de pieza de circuitos integrados que están dentro de nuestro alcance de capacidad siempre está creciendo, por favor contáctenos para averiguarlo.

  • ¿Se protegerá mi privacidad?

    Mikatech Innovative Limited comprende la importancia de la privacidad de sus clientes. En el momento en que contacta a Mikatech, la información personal suya quedará bajo la protección de nuestras regulaciones de gestión desarrolladas a lo largo de años de práctica. Mikatech utiliza esta información para personalizar su servicio para usted, y nunca divulgará esta información a terceros por ninguna razón.
    En cada proyecto que realizamos, eliminamos todos los datos, materiales y códigos 60 días después de entregar los archivos, lo que nos protege a nosotros y protege su privacidad.

  • ¿Es legal obtener servicios de Mikatech?

    Sí, es totalmente legal.
    Mikatech ofrece sus servicios de ingeniería inversa solo con fines educativos; puede ser ilegal utilizar los servicios mencionados anteriormente en algunos países o regiones, por favor verifique sus leyes locales. Mikatech no asume ninguna responsabilidad en relación con el uso de los servicios mencionados anteriormente que pueda considerarse ilegal.


  • Le envié un correo electrónico, ¿por qué no hay respuesta?

    • A. Nuestro servidor de correo está temporalmente averiado, su mensaje no ha sido entregado a nuestro buzón aunque en la pantalla se muestre el mensaje de envío exitoso; por favor, contáctenos nuevamente.
    • B. Nuestro correo electrónico es reconocido como correo no deseado por su servidor, por lo que nuestra respuesta ha sido rechazada o desviada a su bandeja de correo no deseado; por favor, elimine nuestra cuenta de la lista de correo no deseado o revise su bandeja de spam, o use otra cuenta de correo como Gmail.
    • C. Su correo es reconocido como spam por nuestro servidor, por lo que fue puesto en nuestra bandeja de spam; por favor, use otra cuenta de correo para contactarnos nuevamente.



    tiempo de hackeo de microcontrolador

    Años

    28 +
    países de hackeo de microcontrolador

    Países

    110 +
    clientes de ataque a microcontrolador

    Clientes

    5000 +
    proyectos de microcontrolador desbloqueados

    Proyectos

    60000 +