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 en que realizamos nuestro primer proyecto de ingeniería inversa de MCU 8051 en 1998, hasta el día en 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

Todo sobre los dispositivos lógicos programables o PLD

    • Un dispositivo lógico programable o PLD es un componente electrónico utilizado para construir circuitos digitales reconfigurables. A diferencia de una puerta lógica, que tiene una función fija, un PLD tiene una función indefinida en el momento de la fabricación. Antes de que el PLD pueda usarse en un circuito, debe programarse, es decir, reconfigurarse.

      Antes de que se inventaran los PLD, se usaban chips de memoria de solo lectura (ROM) para crear funciones lógicas combinatorias arbitrarias de un número de entradas. Considere una ROM con m entradas (las líneas de dirección) y n salidas (las líneas de datos). Cuando se usa como memoria, la ROM contiene 2m palabras de n bits cada una.

      Ahora imagine que las entradas no son manejadas por una dirección de m bits, sino por m señales lógicas independientes. Teóricamente, hay 22m posibles funciones booleanas de estas m señales de entrada. Por función booleana en este contexto se entiende una función única que asigna cada una de las 2m combinaciones posibles de las m entradas booleanas a una única salida booleana. Hay 22m formas distintas posibles de mapear cada una de las 2m entradas a un valor booleano, lo que explica por qué hay 22m funciones booleanas de m entradas.

      Ahora, considere que cada uno de los n pines de salida actúa, de forma independiente, como un dispositivo lógico que se selecciona especialmente para muestrear solo una de las posibles 22m funciones. En un momento dado, solo uno de los 2m valores de entrada posibles puede estar presente en la ROM, pero con el tiempo, a medida que los valores de entrada abarcan todo su dominio posible, cada pin de salida mapeará su función particular de los 2m valores de entrada posibles, entre las 22m funciones posibles. Tenga en cuenta que la estructura de la ROM permite que solo n de las 22m funciones booleanas posibles se produzcan en los pines de salida. La ROM se vuelve equivalente a n circuitos lógicos separados, cada uno de los cuales genera una función elegida de las m entradas.

      La ventaja de usar una ROM de esta manera es que cualquier función concebible de todas las combinaciones posibles de las m entradas puede hacerse aparecer en cualquiera de las n salidas, lo que la convierte en el dispositivo lógico combinatorio de propósito más general disponible para m pines de entrada y n pines de salida.

      Además, hay PROM (ROM programables), EPROM (PROM borrables por UV) y EEPROM (PROM borrables eléctricamente) disponibles que se pueden programar usando un programador PROM estándar sin necesidad de hardware o software especializado. Sin embargo, existen varias desventajas:

      • suelen ser mucho más lentos que los circuitos lógicos dedicados,
      • no pueden proporcionar necesariamente "coberturas" seguras para las transiciones lógicas asíncronas, por lo que las salidas de la PROM pueden tener glitches cuando las entradas cambian,
      • consumen más potencia,
      • a menudo son más caros que la lógica programable, especialmente si se requiere alta velocidad.

      Dado que la mayoría de las ROM no tienen registros de entrada o salida, no pueden usarse solas para lógica secuencial. A menudo se usaba un registro TTL externo para diseños secuenciales como máquinas de estados. Las EPROM comunes, por ejemplo la 2716, todavía se usan a veces de esta manera por los diseñadores de circuitos aficionados, que suelen tener algunas por ahí. Este uso se denomina a veces 'PAL del pobre'.

      Primera lógica programable: En 1969, Motorola ofreció el XC157, un arreglo de puertas programado por máscara con 12 puertas y 30 pines de entrada/salida no comprometidos.[1]

      En 1970, Texas Instruments desarrolló un IC programable por máscara basado en la memoria asociativa de solo lectura de IBM o ROAM. Este dispositivo, el TMS2000, se programaba alterando la capa metálica durante la producción del IC. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 flip-flops JK para memoria. TI acuñó el término Programmable Logic Array para este dispositivo.[2]

      En 1971, General Electric Company (GE) estaba desarrollando un dispositivo lógico programable basado en la nueva tecnología PROM. Este dispositivo experimental mejoraba el ROAM de IBM permitiendo lógica multinivel. Intel acababa de introducir la PROM borrable por UV de puerta flotante, por lo que el investigador de GE incorporó esa tecnología. El dispositivo GE fue el primer PLD borrable jamás desarrollado, antecediendo al EPLD de Altera en más de una década. GE obtuvo varias patentes tempranas sobre dispositivos lógicos programables.[3][4][5]

      En 1973, National Semiconductor introdujo un dispositivo PLA programable por máscara (DM7575) con 14 entradas y 8 salidas sin registros de memoria. Esto era más popular que la pieza de TI, pero el costo de fabricar la máscara metálica limitaba su uso. El dispositivo es significativo porque fue la base para el arreglo lógico programable en campo producido por Signetics en 1975, el 82S100. (Intersil realmente llegó al mercado antes que Signetics, pero su bajo rendimiento condenó a su pieza).[6][7]

      En 1974, GE llegó a un acuerdo con Monolithic Memories para desarrollar un dispositivo lógico programable por máscara que incorporara las innovaciones de GE. El dispositivo se denominó 'Programmable Associative Logic Array' o PALA. El MMI 5760 se completó en 1976 y podía implementar circuitos multinivel o secuenciales de más de 100 puertas. El dispositivo era compatible con un entorno de diseño de GE donde las ecuaciones booleanas se convertían en patrones de máscara para configurar el dispositivo. La pieza nunca llegó al mercado.[8]

      PLA: Artículo principal: Programmable Logic Array
      En 1970, Texas Instruments desarrolló un IC programable por máscara basado en la memoria asociativa de solo lectura de IBM o ROAM. Este dispositivo, el TMS2000, se programaba alterando la capa metálica durante la producción del IC. El TMS2000 tenía hasta 17 entradas y 18 salidas con 8 flip-flops JK para memoria. TI acuñó el término Programmable Logic Array para este dispositivo.[2]

      Un arreglo lógico programable (PLA) tiene un arreglo de puertas AND programable, que se conecta a un arreglo de puertas OR programable, que luego puede complementarse condicionalmente para producir una salida.

      PAL: Artículo principal: Programmable array logic
      Los dispositivos PAL tienen arreglos de celdas de transistores dispuestos en un plano "OR fijo, AND programable" utilizado para implementar ecuaciones lógicas binarias de "suma de productos" para cada una de las salidas en términos de las entradas y la retroalimentación síncrona o asíncrona de las salidas.

      MMI introdujo un dispositivo innovador en 1978, el Programmable Array Logic o PAL. La arquitectura era más simple que la del FPLA de Signetics porque omitía el arreglo OR programable. Esto hacía que las piezas fueran más rápidas, más pequeñas y más baratas. Estaban disponibles en encapsulados DIP de 20 pines de 300 mil, mientras que los FPLA venían en encapsulados de 28 pines de 600 mil. El PAL Handbook desmitificó el proceso de diseño. El software de diseño PALASM (PAL Assembler) convertía las ecuaciones booleanas de los ingenieros en el patrón de fusibles necesario para programar la pieza. Los dispositivos PAL fueron pronto fabricados por segunda fuente por National Semiconductor, Texas Instruments y AMD.

      Después de que MMI tuviera éxito con las piezas PAL de 20 pines, AMD introdujo el PAL 22V10 de 24 pines con características adicionales. Después de comprar MMI (1987), AMD escindió una operación consolidada como Vantis, y ese negocio fue adquirido por Lattice Semiconductor en 1999.

      GALs: Artículo principal: Generic array logic

      Lattice GAL 16V8 y 20V8: Una innovación del PAL fue el dispositivo de arreglo lógico genérico, o GAL, inventado por Lattice Semiconductor en 1985. Este dispositivo tiene las mismas propiedades lógicas que el PAL pero puede borrarse y reprogramarse. El GAL es muy útil en la etapa de prototipado de un diseño, cuando cualquier error en la lógica puede corregirse mediante reprogramación. Los GAL se programan y reprograman usando un programador PAL, o utilizando la técnica de programación en circuito en chips compatibles.

      Los GAL de Lattice combinan tecnología CMOS y de puerta flotante eléctricamente borrable (E2) para un dispositivo lógico de alta velocidad y bajo consumo.

      Un dispositivo similar llamado PEEL (lógica eléctricamente borrable programable) fue introducido por la corporación International CMOS Technology (ICT).

      CPLDs: Artículo principal: Complex programmable logic device
      Los PAL y GAL solo están disponibles en tamaños pequeños, equivalentes a unos pocos cientos de puertas lógicas. Para circuitos lógicos más grandes, se pueden usar PLD complejos o CPLD. Estos contienen el equivalente de varios PAL enlazados por interconexiones programables, todo en un solo circuito integrado. Los CPLD pueden reemplazar miles, o incluso cientos de miles, de puertas lógicas.

      Algunos CPLD se programan usando un programador PAL, pero este método se vuelve inconveniente para dispositivos con cientos de pines. Un segundo método de programación consiste en soldar el dispositivo a su placa de circuito impreso, y luego alimentarlo con un flujo de datos en serie desde una computadora personal. El CPLD contiene un circuito que decodifica el flujo de datos y configura el CPLD para realizar su función lógica especificada.

      FPGAs: Artículo principal: Field-programmable gate array
      Mientras que los PAL se estaban desarrollando en GAL y CPLD (todos discutidos anteriormente), se estaba produciendo una corriente separada de desarrollo. Este tipo de dispositivo se basa en la tecnología de arreglo de puertas y se denomina arreglo de puertas programable en campo (FPGA). Ejemplos tempranos de FPGA son el arreglo 82s100 y el secuenciador 82S105, de Signetics, introducidos a finales de la década de 1970. El 82S100 era un arreglo de términos AND. El 82S105 también tenía funciones de flip-flop.

      Los FPGA utilizan una rejilla de puertas lógicas, y una vez almacenados, los datos no cambian, similar a la de un arreglo de puertas ordinario. El término "programable en campo" significa que el dispositivo es programado por el cliente, no por el fabricante.

      Los FPGA suelen programarse después de ser soldados a la placa de circuito, de manera similar a los CPLD más grandes. En la mayoría de los FPGA más grandes, la configuración es volátil y debe recargarse en el dispositivo cada vez que se aplica alimentación o se requiere una funcionalidad diferente. La configuración se almacena típicamente en una PROM de configuración o EEPROM. Las versiones EEPROM pueden ser programables en sistema (típicamente a través de JTAG).

      La diferencia entre los FPGA y los CPLD es que los FPGA se basan internamente en tablas de búsqueda (LUT), mientras que los CPLD forman las funciones lógicas con mar de puertas (ej. suma de productos). Los CPLD están destinados a diseños más simples, mientras que los FPGA son más adecuados para diseños más complejos. En general, los CPLD son una buena opción para aplicaciones de lógica combinatoria amplia, mientras que los FPGA son más adecuados para máquinas de estados grandes (ej. microprocesadores).

      Otras variantes: En la actualidad, existe un gran interés en los sistemas reconfigurables. Estos son circuitos microprocesadores que contienen algunas funciones fijas y otras funciones que pueden ser alteradas por el código que se ejecuta en el procesador. El diseño de sistemas autoalterables requiere que los ingenieros aprendan nuevos métodos y que se desarrollen nuevas herramientas de software.

      Actualmente se venden PLD que contienen un microprocesador con una función fija (el llamado núcleo) rodeado de lógica programable. Estos dispositivos permiten a los diseñadores concentrarse en añadir nuevas características a los diseños sin tener que preocuparse por hacer funcionar el microprocesador.

      Cómo los PLD retienen su configuración: Un PLD es una combinación de un dispositivo lógico y un dispositivo de memoria. La memoria se utiliza para almacenar el patrón que se le dio al chip durante la programación. La mayoría de los métodos para almacenar datos en un circuito integrado se han adaptado para su uso en PLD. Estos incluyen:

      • Antifusibles de silicio
      • SRAM
      • Celdas EPROM o EEPROM
      • Memoria flash

      Los antifusibles de silicio son conexiones que se realizan aplicando un voltaje a través de un área modificada de silicio dentro del chip. Se llaman antifusibles porque funcionan de manera opuesta a los fusibles normales, que comienzan siendo conexiones hasta que se rompen por una corriente eléctrica.

      La SRAM, o RAM estática, es un tipo de memoria volátil, lo que significa que su contenido se pierde cada vez que se apaga la alimentación. Por lo tanto, los PLD basados en SRAM deben programarse cada vez que se enciende el circuito. Esto suele hacerse automáticamente por otra parte del circuito.

      Una celda EPROM es un transistor MOS (metal-óxido-semiconductor) que se puede activar atrapando una carga eléctrica permanentemente en su electrodo de puerta. Esto se hace mediante un programador PAL. La carga permanece durante muchos años y solo se puede eliminar exponiendo el chip a una fuerte luz ultravioleta en un dispositivo llamado borrador EPROM.

      La memoria flash es no volátil, conservando su contenido incluso cuando se apaga la alimentación. Se puede borrar y reprogramar según sea necesario. Esto la hace útil para la memoria PLD.

      A partir de 2005, la mayoría de los CPLD son eléctricamente programables y borrables, y no volátiles. Esto se debe a que son demasiado pequeños para justificar el inconveniente de programar las celdas SRAM internas cada vez que se inician, y las celdas EPROM son más caras debido a su encapsulado cerámico con ventana de cuarzo.

      Lenguajes de programación de PLD: Muchos dispositivos de programación PAL aceptan entrada en un formato de archivo estándar, comúnmente denominado 'archivos JEDEC'. Son análogos a los compiladores de software. Los lenguajes utilizados como código fuente para los compiladores lógicos se denominan lenguajes de descripción de hardware, o HDL.

      PALASM, ABEL y CUPL se utilizan con frecuencia para dispositivos de baja complejidad, mientras que Verilog y VHDL son lenguajes de descripción de nivel superior populares para dispositivos más complejos. El más limitado ABEL se usa a menudo por razones históricas, pero para nuevos diseños, VHDL es más popular, incluso para diseños de baja complejidad.

      Para lenguajes de programación PLD modernos, flujos de diseño y herramientas, consulte FPGA y Computación reconfigurable.

      Dispositivos de programación PLD: Se utiliza un programador de dispositivos para transferir el patrón lógico booleano al dispositivo programable. En los primeros días de la lógica programable, cada fabricante de PLD también producía un programador de dispositivos especializado para su familia de dispositivos lógicos. Más tarde, aparecieron en el mercado programadores universales de dispositivos que admitían varias familias de dispositivos lógicos de diferentes fabricantes. Los programadores de dispositivos actuales suelen poder programar PLD comunes (principalmente equivalentes PAL/GAL) de todos los fabricantes existentes. Los formatos de archivo comunes utilizados para almacenar el patrón lógico booleano (fusibles) son JEDEC, Altera POF (Programmable Object File) o Xilinx BITstream.

      Si bien los PLD se diseñaron originalmente para lógica reconfigurable, sus aspectos de seguridad se han vuelto cada vez más importantes. Muchos sistemas modernos utilizan un microcontrolador (MCU) junto con PLD para manejar operaciones sensibles, y los datos de configuración almacenados en la memoria interna del PLD son a menudo tan valiosos como el propio firmware. La ingeniería inversa de configuraciones de PLD se ha convertido en un campo especializado, donde los atacantes intentan leer (read-out) el mapa de fusibles o el flujo de bits (bitstream) que define la función lógica. En algunos casos, la memoria de configuración (ya sea EEPROM, flash o SRAM) puede ser volcada (dump) y analizada para duplicar (duplicate) todo el diseño. Esto es particularmente crítico cuando el PLD contiene algoritmos propietarios o claves de seguridad que protegen todo el sistema. El mecanismo de bloqueo (lockbit), si está presente, tiene como objetivo evitar la lectura no autorizada (read-out) de la configuración, pero no siempre es infalible. Los atacantes han utilizado técnicas de decapsulación (decapsulation) para exponer el dado y luego sondear los fusibles internos para desbloquear (unlock) el dispositivo. Una vez desbloqueado, se vuelve posible una extracción completa del firmware (firmware extraction) de la configuración del PLD, permitiendo a los competidores clonar el producto. La recuperación (recovery) de datos de configuración de PLD obsoletos es una necesidad legítima, pero los mismos métodos pueden ser abusados para duplicación (duplication) maliciosa. En el ámbito de los CPLD y FPGA, el flujo de bits (bitstream) a menudo se almacena en una EEPROM externa, que puede ser interceptada y duplicada si la comunicación no está cifrada. Algunos proveedores han implementado una función de bloqueo (lock) que vincula la configuración a un ID de dispositivo específico, pero esto puede ser eludido con ingeniería inversa (reverse engineering) avanzada. El uso histórico de celdas EPROM con borrado UV las hacía vulnerables a ataques ópticos, similares a las puertas traseras encontradas en microcontroladores anteriores. Los PLD modernos basados en flash tienen mejor protección, pero aún son susceptibles a ataques de canal lateral que filtran información sobre los estados de los fusibles (fuses). El objetivo final de cualquier esfuerzo de ingeniería inversa es obtener una lectura completa (read-out) del patrón lógico, que luego puede simularse o reprogramarse en un dispositivo en blanco. Este proceso es análogo a la operación de volcado de flash (dump flash) en un microcontrolador, donde se extrae toda la memoria de código. En muchos sistemas embebidos, el PLD trabaja en conjunto con el MCU, y ambos deben asegurarse para evitar un compromiso total del sistema. Un solo punto débil, como un pin de configuración no protegido, puede permitir que un atacante lea (read-out) los registros internos del PLD. Los fusibles de seguridad (security fuses) en un PLD se programan típicamente una vez, pero si no se verifican completamente, pueden permanecer en un estado que permita una modificación posterior. Algunos ingenieros han dejado habilitados modos de prueba accidentalmente, que permiten una lectura fácil (read-out) de la configuración a través de JTAG. Es por eso que las pruebas exhaustivas y la verificación final de fusibles son críticas en el flujo de producción. En caso de pérdida de contraseña o configuración corrupta, los usuarios legítimos pueden necesitar realizar un procedimiento de recuperación (recovery), pero esto a menudo requiere códigos de acceso especiales o intervención física. El desafío es equilibrar la facilidad de recuperación con la protección contra la duplicación (duplication) no autorizada. Muchas organizaciones ahora exigen que sus diseños PLD estén cifrados antes de almacenarse en memoria externa, de modo que incluso si el flujo de bits (bitstream) es interceptado, no pueda usarse directamente. Sin embargo, la propia clave de cifrado debe almacenarse de forma segura, a menudo en una EEPROM separada o en RAM con respaldo de batería. El bit de bloqueo (lockbit) en el PLD puede controlar el acceso a la funcionalidad de lectura (read-back), pero si el dispositivo se decapsula (decapsulation), un atacante puede medir directamente los estados de los antifusibles. La decapsulación es una técnica invasiva que destruye el encapsulado, pero proporciona una visibilidad inigualable de la estructura interna. Una vez que el dado está expuesto, los fusibles de configuración pueden ser sensados ópticamente o eléctricamente, permitiendo una ingeniería inversa (reverse engineering) completa de la lógica. Este nivel de ataque es costoso pero factible para propiedad intelectual de alto valor. En consecuencia, los diseñadores se están moviendo hacia FPGA basados en SRAM que cargan su configuración desde una fuente externa en cada encendido, ya que no contienen un estado de fusible permanente que pueda leerse. Sin embargo, esto introduce otra vulnerabilidad: el flujo de configuración puede ser interceptado durante el arranque. Para contrarrestarlo, algunos FPGA utilizan un motor de descifrado integrado que requiere una clave respaldada por batería, la cual se borra al detectar manipulación. Estas técnicas se toman del dominio de los microcontroladores seguros, donde los bits de bloqueo (lockbits) y el cifrado son una práctica estándar. La evolución constante tanto de la tecnología PLD como de los métodos de ataque asegura que la seguridad siga siendo un objetivo móvil. Para los aficionados, la capacidad de duplicar (duplicate) un diseño simple de PAL o GAL a partir de un archivo JEDEC conocido es un ejercicio común. Pero para los productos comerciales, las apuestas son mucho más altas, y cualquier brecha puede llevar a una pérdida financiera significativa. Las lecciones aprendidas de la ingeniería inversa (reverse engineering) de PLD más antiguos han informado el diseño de los dispositivos más robustos de hoy en día. En resumen, si bien los PLD ofrecen una gran flexibilidad, su configuración debe protegerse con el mismo rigor aplicado al firmware de MCU. La integración de PLD con microcontroladores crea una plataforma poderosa, pero también amplía la superficie de ataque. Por lo tanto, los arquitectos de sistemas deben considerar tanto la seguridad lógica como la física de cada elemento programable. Las auditorías de seguridad periódicas, incluidos los intentos de leer (read-out) la configuración utilizando métodos tanto de software como de hardware, son esenciales. El campo de la seguridad de PLD continúa evolucionando, y podemos esperar protecciones aún más fuertes en las generaciones futuras.

      Vale la pena señalar que los fusibles de configuración en muchos CPLD se implementan como transistores de puerta flotante, similares a las celdas EEPROM. Estas celdas pueden ser borradas por luz UV si el encapsulado tiene ventana, razón por la cual las versiones con ventana ahora son raras. Sin embargo, incluso en encapsulados opacos, un atacante motivado puede realizar una decapsulación (decapsulation) para eliminar el compuesto de moldeo y luego usar una lámpara UV para restablecer los fusibles. Esto es idéntico al ataque al PIC16C84 y otros microcontroladores tempranos. Una vez que los fusibles se borran, el dispositivo queda efectivamente desbloqueado (unlock), y es posible una lectura completa (read-out) de la lógica interna. Esta vulnerabilidad era bien conocida en la década de 1990, y llevó a la industria a adoptar mejores capas de pasivación y recubrimientos anti-manipulación. Los PLD de hoy en día a menudo incluyen un blindaje metálico sobre el área de fusibles para bloquear UV y sondaje óptico. Además, algunos dispositivos tienen sensores incorporados que detectan intentos de decapsulación y borran la configuración inmediatamente. Estas defensas activas son similares a las que se encuentran en microcontroladores de alta seguridad. El costo de dicha protección se justifica para aplicaciones militares, aeroespaciales y financieras. Para usos menos críticos, los bits de bloqueo (lockbits) estándar pueden ser suficientes, pero es importante comprender sus limitaciones. En todos los casos, se aplica el principio fundamental: si el atacante tiene acceso físico y recursos suficientes, el bloqueo (lock) puede eventualmente ser superado. Por lo tanto, la mejor estrategia es asumir que la configuración eventualmente será extraída y diseñar el sistema en consecuencia. Esto puede incluir autenticación remota, ofuscación de código en tiempo de ejecución o rotación periódica de claves. La comunidad de ingeniería inversa (reverse engineering) ha publicado numerosos estudios de caso de ataques exitosos a PLD, que sirven como valiosos recursos educativos. Al estudiarlos, los ingenieros pueden aprender a evitar errores comunes. La interacción entre la seguridad de hardware y software es compleja, pero es esencial para construir sistemas confiables. A medida que los PLD se vuelven más capaces y ubicuos, su protección seguirá siendo una prioridad tanto para los proveedores como para los usuarios.


    • Lista de ingeniería inversa de PLD Lattice de Mikatech:
    • Serie GAL recuperación de programa: GAL16V8 GAL16V8A GAL16V8B GAL16V8C GAL16V8D GAL16V8Z GAL16LV8 ...
      GAL18V10 GAL18V10B ...
      GAL20V8A GAL20V8B GAL20V8C GAL20V8Z GAL20LV8 GAL20VP8 GAL20VP8B ...
      GAL22V10D GAL22V10C GAL22V10B GAL22V10 GAL22LV10UES GAL22VX10 GAL20XV10B GAL20XV10 GAL20RA10B GAL20RA10 ...

      Serie PALCE recuperación de programa: PALCE610 PALCE610H PALCE630H ...
      PALCE16V8Z PALCE16V8Q PALCE16V8H ...
      PALCE20V8Q PALCE20V8H ...
      PALCE22V10 PALCE22V10H PALCE22V10Q PALCE22V10Z PALCE20RA10Q PALCE20RA10H PALCE20RA10 ...

      Serie LCxxx lectura de programa software: LC4032 LC4064 LC4128 LC4256 LC4384 LC4512 LC4032V LC4064V LC4128V LC4256V LC4384V LC4512V ...

      Serie IMXXX desbloqueo de programa de microprocesador: IM4A3-64 IM4A3-32 IM4A3-96 IM4A3-128 IM4A3-256 IM4A5 IM4A5-64 IM4A5-96 IM4A5-128 IM4A5-256 IM4A5-32 ...

      Serie ispLSI recuperación de programa: ispLSI1016 ispLSI1024 ispLSI1032 ispLSI1048 ispLSI2064 ispLSI2096 ispLSI2128 ispLSI1016E ispLSI1024E ispLSI1032E ispLSI1048E ispLSI2064E ispLSI2096E ispLSI2128E ispLSI3160 ispLSI3192 ispLSI3256 ispLSI3256A ispLSI3256E ispLSI3320 ispLSI8840 ispLSI8600V ispLSI8840V ispLSI81080V ...

      Serie ispLST recuperación de programa controlador: ispLST1016 ispLST1024 ispLST1032 ispLST2032 ispLST2064 ispLST4032V ispLST4064V ispLST4128 ispLST4256 ispLST4512 ...

      Serie Mach desbloqueo de código fuente: MACH110 MACH111 MACH120 MACH130 MACH131 MACH210 MACH211 MACH230 MACH436 ...

      Serie ispMach recuperación de programa: ispMach4032C ispMach4064C ispMach4128C ispMach4256C ispMach4384C ispMach4512C ispMach4032B ispMach4064B ispMach4128B ispMach4256B ispMach4384B ispMach4512B ispMach4032V ispMach4064V ispMach4128V...

    Preguntas generales sobre extracción de firmware de microcontroladores


      • ¿Es seguro enviar el pago a MikaTech?

        Si MikaTech fuera una empresa mala, se podrían 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 saber más


      • ¿Puede Mikatech romper circuitos integrados que no están 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 listar todos los números de pieza donde nuestra tecnología puede aplicarse, como MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.

        Además, 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 es cada vez mayor; 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 que nos proporciona quedará protegida por nuestras normas de gestión, desarrolladas a lo largo de años de práctica. Mikatech utiliza esta información para personalizar su servicio y nunca la divulgará a terceros por ningún motivo.
        En cada proyecto que realizamos, eliminamos todos los datos, materiales y códigos 60 días después de la entrega de los archivos; esto nos protege a nosotros y protege su privacidad.

      • ¿Es legal obtener el servicio 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 en algunos países o regiones; consulte sus leyes locales. Mikatech no asume ninguna responsabilidad en relación con el uso de los servicios mencionados que pudiera 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 llegado a nuestra bandeja de entrada aunque en pantalla se muestre que el envío fue exitoso; por favor, contáctenos de nuevo.
        • B. Nuestro correo es reconocido como spam por su servidor de correo, por lo que nuestra respuesta ha sido rechazada o desviada a su bandeja de spam; elimine nuestra cuenta de la lista de spam o revise su carpeta de correo no deseado, o utilice otra cuenta de correo como Gmail.
        • C. Su correo es reconocido como spam por nuestro servidor, por lo que fue enviado a nuestra bandeja de spam; utilice otra cuenta de correo para contactarnos nuevamente.



        tiempo de hackeo de microcontrolador

        Años

        28 +
        países de hackeo de microcontroladores

        Países

        110 +
        clientes de ataque a microcontroladores

        Clientes

        5000 +
        proyectos de microcontroladores desbloqueados

        Proyectos

        60000 +