Skocz do zawartości

Jak wyeksportować kod z płytki Arduino?


Pomocna odpowiedź

Napisano

Cześć,
Posiadam płytkę arduino, na której jest wgrany jakiś szkic. Co mam zrobić, aby podejrzeć ten kod podłączając płytkę do dowolnego komputera z IDE? Trudno w to uwierzyć, ale to zagadnienie sprawiło mi problem...

Zasadniczo nijak.

Nie wiem jakie możliwości daje bootloader arduino ale podejrzewam że nie ma możliwości sczytania zawartości pamięci.

Do tego nie wiem czy bootloader blokuje opcję odczytu przez programator.

Jeśli nie jest zablokowana możliwość odczytu to można to zrobić używając programatora. Jednak plik który uzyskasz to będzie plik z kodem maszynowym - raczej ciężko będzie "podejrzeć ten kod", a już na pewno nie będzie on podobny do C czy czegoś innego. Będzie to po prostu ciąg znaków, z którego na pierwszy i drugi rzut oka nic nie zrozumiesz.

Co mam zrobić, aby podejrzeć ten kod podłączając płytkę do dowolnego komputera z IDE?

Niestety nie ma takiej możliwości. Nie ma opcji, która pozwalałaby odczytać z Arduino wgrany program i przedstawić go w taki sposób jak wyglądał przed wgranie.

W samym Arduino nie ma opcji by zabezpieczyć kod, można go odczytać np. programem AVR LAB++ czy jakimś podobnym (właściwie to robi AVRDUDE sterowany takimi nakładkami graficznymi, można też wklepać linijkę wg helpa AVRDUDE). Bez problemu można go wgrać na inne, takie samo Arduino. Odczytany kod można zdekompilować i otrzymać kod assemblera. Dalsze przekształcenie do C to deasemblacja, już mało prawdopodobne by otrzymać to samo co napisał autor, bo to samo w assemblerze można otrzymać stosując różne zapisy w C/C++. Oczywiście wszystko powyższe to łamanie praw autorskich, legalna droga to kontakt z autorem.

Od kiedy deasemblacja jest łamaniem praw autorskich? Możesz podać konkretny paragrafik?

Zgłoś się na forum prawne z tym pytaniem. W dzisiejszych czasach potrzebny paragrafik, rozbawiłeś mnie. Ustawa o prawie autorskim i prawach pokrewnych, jest opisane bardziej w komentarzach co można uznać za legalną dekompilację i jaką część programu można dekompilować, więc co do ogólnej zasady legalna nie jest. Dalszej dyskusji nie przewiduję.

Ciekawe, nawet nie wiedziałem ale faktycznie.

Mówi o tym 7 rozdział ustawy, dopuszczona jest deasemblacja w kilku sytuacjach. I wychodzi na to że jeśli program na układ (uC) potraktujemy jako program komputerowy (a możemy tak potraktować, bo w ustawie nie jest sprecyzowane co takim programem jest) to jakakolwiek dekompilacja tego programu będzie nielegalna - ciężko tu byłoby mówić o deasemblacji w celach które ustawa przewiduje.

Można dekompilować tylko w celu napisania programu który by współpracował z tym który chcemy zdekompilować. Więc wychodzi że wszystkie tego typu zabawy dla mikrokontrolerów, gdzie w ogólności nie można uruchomić drugiego programu, będą nielegalne. No chyba że program jest dla jakiegoś systemu operacyjnego i mamy możliwość uruchomienia innego programu który mógłby współpracować z tym pierwszym - wtedy mogłoby to być legalne.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...