Difference between revisions of "Domotica Arduino Reverse engineering"
From Aino Wiki
(→Ottenere uno sketch dal microcontrollore) |
(→Ottenere uno sketch dal microcontrollore) |
||
| Line 1: | Line 1: | ||
=Ottenere uno sketch dal microcontrollore= | =Ottenere uno sketch dal microcontrollore= | ||
| − | Ottenere la progrmmazione del microcontrollore, quindi da una scheda Arduino, ovvero ricavarne lo sketch in C++.<br /> | + | Ottenere la progrmmazione del microcontrollore, quindi da una scheda Arduino, ovvero ricavarne lo sketch in '''C++'''.<br />Sicuramente si può recuperare il compilato in formato binario '''.hex''' Allo scopo si posson usare dei tools come <code>'''Avrdue'''</code> (che comunque l'''Arduino IDE'' usa internamente) per scaricare il file vinario che è nella flash memoru del controllore. Questo processo implica: |
| − | Sicuramente si può recuperare il compilato in formato binario '''.hex''' Allo scopo si posson usare dei tools come <code>'''Avrdue'''</code> (che comunque l'''Arduino IDE'' usa internamente) per scaricare il file vinario che è nella flash memoru del controllore. Questo processo implica: | + | |
* '''Hardware Hookup''' (collegamento all'hardware): connessione tramite un ''In-System Programmer'' (ISP), o un altro ''Arduino configurato come ISP'', che punta ai pin destinazione della scheda ICSP. | * '''Hardware Hookup''' (collegamento all'hardware): connessione tramite un ''In-System Programmer'' (ISP), o un altro ''Arduino configurato come ISP'', che punta ai pin destinazione della scheda ICSP. | ||
| − | * Software Tools: usare un programma come [https://www.hackster.io/LithiumION/how-to-get-code-program-back-from-arduino-2ed9ff AVRDUDESS (Hackster.io)] o l'utility <code>'''Avrdue'''</code> da linea comando per leggere il contenuto della memoria flash e salvarla su un file del proprio computer. | + | * Software Tools: usare un programma come [https://www.hackster.io/LithiumION/how-to-get-code-program-back-from-arduino-2ed9ff AVRDUDESS (Hackster.io)] o l'utility <code>'''Avrdue'''</code> da linea comando per leggere il contenuto della memoria flash e salvarla su un file del proprio computer. |
| − | L'estrazione del file '''.hex''' può, tra l'altro, essere uploadato su altre schede Arduino uguali, | + | |
| + | L'estrazione del file '''.hex''' può, tra l'altro, essere uploadato su altre schede Arduino uguali, effettuando una copia del programma, ma non modificarlo. | ||
| + | |||
| + | Il file binario è una sequenza di instruzioni in codice machina instruzioni ottimizzate per uno specifico microcontrollore '''ATmega'''. Effettuare il reverse engineer per tornare al codice C++ comporta: | ||
| + | |||
| + | * '''Disassemblaggio''': usando tools come '''avr-objdump''' per convertire il codice macchina in linguaggio Assembler, che è umanamente leggibile ma veramente di basso livello quindi lontano dallo sketch originale in C++. | ||
| + | * '''Manual Effort''': Reconstructing the original logic, structure, and functionality from the assembly code is a painstaking and time-consuming manual process. The resulting code will look very different from the original sketch, lacking meaningful variable names, function names, and comments. | ||
| − | + | '''Conclusion'''<br />While the raw data running on the chip can be accessed, recovering the original, editable source code is practically impossible. It is highly recommended to use version control systems like GitHub or regular backups to protect your source code. | |
| − | + | ||
| − | + | ||
| − | '''Conclusion'''<br /> | + | |
| − | While the raw data running on the chip can be accessed, recovering the original, editable source code is practically impossible. It is highly recommended to use version control systems like GitHub or regular backups to protect your source code. | + | |
=Etc= | =Etc= | ||
Latest revision as of 14:15, 13 January 2026
Ottenere uno sketch dal microcontrollore
Ottenere la progrmmazione del microcontrollore, quindi da una scheda Arduino, ovvero ricavarne lo sketch in C++.
Sicuramente si può recuperare il compilato in formato binario .hex Allo scopo si posson usare dei tools come Avrdue (che comunque l'Arduino IDE usa internamente) per scaricare il file vinario che è nella flash memoru del controllore. Questo processo implica:
- Hardware Hookup (collegamento all'hardware): connessione tramite un In-System Programmer (ISP), o un altro Arduino configurato come ISP, che punta ai pin destinazione della scheda ICSP.
- Software Tools: usare un programma come AVRDUDESS (Hackster.io) o l'utility
Avrdueda linea comando per leggere il contenuto della memoria flash e salvarla su un file del proprio computer.
L'estrazione del file .hex può, tra l'altro, essere uploadato su altre schede Arduino uguali, effettuando una copia del programma, ma non modificarlo.
Il file binario è una sequenza di instruzioni in codice machina instruzioni ottimizzate per uno specifico microcontrollore ATmega. Effettuare il reverse engineer per tornare al codice C++ comporta:
- Disassemblaggio: usando tools come avr-objdump per convertire il codice macchina in linguaggio Assembler, che è umanamente leggibile ma veramente di basso livello quindi lontano dallo sketch originale in C++.
- Manual Effort: Reconstructing the original logic, structure, and functionality from the assembly code is a painstaking and time-consuming manual process. The resulting code will look very different from the original sketch, lacking meaningful variable names, function names, and comments.
Conclusion
While the raw data running on the chip can be accessed, recovering the original, editable source code is practically impossible. It is highly recommended to use version control systems like GitHub or regular backups to protect your source code.
Etc
(Mappa e Link)
Tematiche avanzate | Arduino indice | Integrazioni tipiche | Arduino Progetti
C++ Info fondamentali | ESP32 indice | ESP8266 | Domotica | Dizionario Elettronica | Elettronica | Elettronica Appunti
Parole chiave:
