Leer programa de un Atmega

Hola a todos, me gustaría saber si hay alguna forma de obtener el programa de un Atmega y cómo.
Saludos

Lo único que creo que se puede leer de un atmega, es el binario compilado, ya que el código escrito, no se graba en el chip, si no binario compilado (que normalmente, se guarda en un archivo en hexadecimal (.HEX)

Comprendo, y a partir del .hex no es posible obtener el código sin morir en el intento? Porque he visto que dicen en otros temas del foro que se puede sacar el ensamblador, pero sería horrible interpretarlo para sacar el código...
Gracias, un saludo

Me parece que te acabas de responder tú mismo...

jo, pues vaya, entonces no hay nada para pasar de ensamblador a C más que conocer ensamblador e interpretar línea a línea para pasarlo a C?

Es muy complejo el programa? Porque con la idea un programador puede repetir la funcionalidad sin que te des cuenta.

Lo que buscas es hacer ingeniería inversa pero antes que nada deberías disponer de dicho archivo .hex porque si el atmega tiene quemado los fusibles no es posible leerlo.

Me gustaría saber cómo realizar la lectura del programa, ya que intentaré descifrar el código.
Para ello que necesitaría, un programador de Atmel... y qué programa necesitaría para leer el código grabado?

Saludos

Porque no lo haces al revés? Mira el equipo que incluye el arduino.
Todo su hardware.
DOcumenta todo lo que hace, y haz tu el programa.
Eso es mas rápido que lo que tu quieres hacer a menos que, tenga protocolos especiales.

Veamos, es una placa que tiene un atmega y controla otra placa con un módulo GSM y un módulo GPS y una sonda de temperatura y manda periódicamente datos a través de GSM con la ubicación y la temperatura. Eso es lo que hace, pero no sé exactamente cómo, ya que los módulos GPS y GSM están en una tarjeta externa y el atmel tiene varias conexiones a puntos de esa tarjeta y me gustaría saber para qué son y que hace con las salidas que tiene conectadas a la otra placa. Por eso es por lo que me gustaría obtener el programa. Lo ves factible?

Bueno, es facilmente reproducible salvo por el sitio al que manda la información.
Si es un sitio web o no lo es.
Si solo te envia un SMS por decir algo, es mas facil aun.

De todas formas no dices nada que no se pueda hacer sin entrar en la locura que no tienes idea del trabajo de locos en el que te metes para entender un código assembler.
Si a veces no pedes entender el C de otra persona que no esta comentado.
SI yo te doy un C para arduino en RUSO, tu dime si lo entiendes... quieres hacer la prueba?
Imagina en assembler, a menos que seas gurú de assembler.

Lo que quieres hacer es un tracker con indicación de temperatura?

Un tracker para arduino. GPS+GPRS/GSM.
Bueno hay que buscar otro ejemplo pero esta bastante bueno en cuanto a la información general.
El código no esta.

La idea es que los datos del gps se representen en un mapa(tipo google maps) y la temperatura se mande a una web. Por lo que había pensado en mandar toda la información a una pagina web para no petar el móvil con sms y así poder ver la trayectoria que ha seguido como se ve en el enlace que me has pasado.

Todo eso que dices es mas facil de hacer que intentar la ingeniería inversa (que es lo que tu propones hacer)