¿ Se puede copiar/clonar el firmware de un arduino a otro ?

1.- ¿ Se puede copiar/clonar el Firmware de un arduino a otro ?

2.- Como funciona la seguridad del Firmware en los arduinos 328p, mega2560 y Due

3.- ¿ Se puede Desensamblar el Firmare desde un arduino y poder leer su código fuente ?

P.D. Si ignoras la respuesta:
1.- Por favor no te sientas obligado a responder, porque responderías con un "no se responder, porque no conozco la respuesta".
2.- Si necesitas y te hace mucha falta parlotear, enfocate en arduino y mis preguntas sobre el firmware, yo no necesito saber si tienes 20 años de zoofilia.

  1. Paso, no se responderte.
  2. Existen unos FUSIBLES de programación que si los activas tienes diferentes configuraciones de seguridad. Todo esta en la hoja de datos de cada Chip 328, 2560 o el ARM que usa el DUE.
  3. Circulaba un código que supuestamente desensamblaba el hexa presente cuando es posible leerlo, pero de hacerlo solo vas a ver un tremendo programa en Assembler inentendible para la gran mayoría de los participantes de este foro. Sin etiquetas de ninguna naturaleza, salvo alguna indicación a los registros del ATMEGA si tienes suerte.

De todas formas tus tres preguntas tienes dos visiones:

  1. Una que COMPARTO y tiene que ver con armar un proyecto y darle seguridad.
  2. Otra que NO COMPARTO. Tiene que ver con COPIAR un código de otro programador.

Para que lo necesitas o preguntas?

riphet:
1.- ¿ Se puede copiar/clonar el Firmware de un arduino a otro ?

Arduino no protege los firmware y se puede extraer con su grabador adecuado tanto en hardware como en softwarme. Luego haces cipias a otros Arduino. La filosofía de Arduino es abierto.
Dejo claro que puedes protegerlo.

2.- Como funciona la seguridad del Firmware en los arduinos 328p, mega2560 y Due

En la programación le indica sobre protección total o parcial en zonas de memoria Flash e incluso la EEPROM interna si lo posee. Directamente con WinPic800 o el propio grabador oficial e incluso hasta Willem, de las en las opciones y lo hacen directamente.
Tambien estaba tratando de resolver; en el IDE de Arduino se puede poner una opción en la que al compilar, en la última línea de la ventanita de mensajes, aparece la ruta del .hex; cogemos este archivo y lo cargamos en un ATMega328P (tal cual viene de fabrica, con sus fuses por defecto) con un programador y después, le cargamos estos fuses:


Y ya está :slight_smile:
todo esto haciendo una plaquita de aplicación con el micro, el cristal de 16MHz y los condensadores de 22pF y los de 100nF de la alimentación; si lo que quieres es usar la placa de desarrollo de Arduino para aprovechar el Bootloader, supongo que con reprogramar los fuses de LockBits y dejando el resto tal cual los programa Arduino, funcione igual.
Saludos!!!
PD: Estos son los fuses por defecto de Arduino UNO:

3.- ¿ Se puede Desensamblar el Firmare desde un arduino y poder leer su código fuente ?

Sí, pero hay peros, de forma que será en ensamblador lo que vas a ver, si no sabes sobre ello, no te servidrá, es como leer Chino. Es más, si está programado directamente en C, el asm es mucho mayor que programarlo en asm directamente, también pasa con los PIC y lo tengo muy estudiado hasta las entrañas, esto último solo con los PIC, el asm de los AVR suele ser más cantidad y complicado, por eso casi nadie hace proyecto sobre ellos exceptuando algún curioso, entre ello me incluyo, pero no significa que domine el tema.

Jugar con los fusibles sin tener criterio hará que tu Arduino deje de recibir modificacioines al sketch.
Es solo para la etapa final de producción.
Y assembler no es es chino, es para alguien que tiene la intención de aprenderlo y usarlo.
Quienes trabajamos en electrónica antes (hace 20 años atras) no teníamos otra alternativa que hacerlo. Ahora es poco usado salvo cuando se requiere el máximo de eficiencia/velocidad en cierta rutina.

Se perfectamente lo de los fuses.

En lo de chino lo dije por su mayoría lo que le puede parecer, solo una expresión.

El asm lo tengo visto hasta las cejas, lo uso en cosas pequeñas para los PIC, en instituto y universidadades te lo enseñan y su arquitectura interna. En mi caso lo aprendí siendo autodidacta.

Partes del C puedes incluir asm para tener mejor rendimiento.

Cada vez se usa menos.

¿a quien le perjudica: Dejar en claro lo “abierto” que queda el firmware con el IDE de arduino ?

a saber: con el avrdude op -U r (read) se pueden bajar (el mismo que usa el IDE)

Esto es un echo independiente de mojigatas visiones.

No se puede lograr seguridad con fundamento en la ignorancia.

+++

Me encontré desemsambladores “online” de archivos intel hex pero no decompilan avr.

¿Que hay de malo en la ingenieria inversa?
Si fuera no por la desencriptación (Turin), no existiera la tecnología actual.

+++

aprecio el aporte relativo a los lockbits

Sabiendo que todo esta en la hoja de datos (ingles), me gustaría que este hilo concluyera en idioma español tanto su funcionamiento como procedimientos para modificarlos.

Gracias de nuevo Metaconta.