Pregunta:
Entrar y depurar un programa Arduino desconocido
dingo_kinznerhook
2014-05-01 02:47:47 UTC
view on stackexchange narkive permalink

De acuerdo, tengo un Arduino que tiene un boceto (para el que no tengo el código fuente) que me gustaría realizar ingeniería inversa, y he descargado con éxito el flash y desarmado la pieza de ella. Me gustaría poder usar un dispositivo como el Atmel mkII para realizar un solo paso en mi Arduino, pero no estoy teniendo mucha suerte averiguando las opciones del menú para hacer la depuración en chip usando el mkII y Atmel Studio 6. ¿Es esto? posible usando Atmel Studio 6 y el mkII? ¿Hay alguna otra forma de realizar un solo paso en un Arduino para el que no tiene el código fuente original?

Es difícil decir que dejé de usar JTAG hace mucho tiempo (ahora solo uso el cargador de arranque para Atmel porque es más cómodo) y también AVR studio 5 detuvo el soporte nativo de C ++, así que me quedo en 2.7.0 pero en el pasado tuve Problema similar con ATMega168 y lo resuelvo con un emulador de fabricación propia. Así que trate de encontrar uno o escríbalo usted mismo ... También había algunos descompiladores de C / C ++ pero tenía que tener el correcto ... por cierto, un solo paso en HW real no es una buena idea si funciona con otros HW cosas que dependen del tiempo
One responder:
BraveNewCurrency
2014-06-02 01:49:30 UTC
view on stackexchange narkive permalink

No estoy familiarizado con esa herramienta, por lo que no tengo una respuesta para su pregunta específica. Pero aquí hay dos consejos:

1) hay muchos simuladores arduino que puede usar para realizar un solo paso a través del código.

2) El Arduino es lo suficientemente pequeño y simple como para que pueda realizar ingeniería inversa utilizando solo el (des) ensamblaje y su cerebro. (A diferencia del x86, que tiene cientos de formas de complicarle la vida). Sí, lleva tiempo, pero cuanto más lo haga, más rápido se volverá.

Simplemente comience a explorar la lista. Trate de encontrar subrutinas pequeñas e independientes. Averigüe cómo se ven sus entradas y salidas. Adivina cuál es su función. ("LED parpadeante", "rutina de suma de comprobación", "bit-bang un bus I2C adicional", "comprobar si hay presión de botón") Pronto, se convertirá en una bola de nieve, y las rutinas de nivel superior serán más fáciles de entender porque sabes qué los que hacen. A veces llegará al límite de su conocimiento, pero puede hacer conjeturas fundamentadas basándose en lo que sabe que hace el software. (es decir, "esto debe estar donde hace una transformación de Fourier")



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...