Bir arduino kartından kod çıkarmak mümkün mü?


14

Onaltılık bir dosya olarak bile bir arduino için kod vermenin bir yolu var mı?


2
Evet, güvenlik sigortası ayarlanmadığı sürece komut satırından ort. O zaman bile mümkün olabilir, ancak kasıtlı olarak çok daha zor ve bu güvenlik mekanizmasını henüz yenip yenmediği açık değil.
Chris Stratton

@ChrisStratton Nasıl yenildiğini anlattıkları bir defcon konuşması dinliyordum. Hangisi olduğunu hatırlayamıyorum, ancak google hatırlayabilir.
Hair_of_the_Dog

Bazı mikrodenetleyiciler için yenildi, (en azından kamuoyu için, fiziksel diseksiyon eksikliği) henüz diğerleri için değil.
Chris Stratton

Evet, eminim disseke edildi.
Hair_of_the_Dog

Yanıtlar:


7

Https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders adresindeki Arduino önyükleyicilerinin kaynak kodlarına bakıldığında, aslında flash bellek için stk500 geri okuma işlevini destekledikleri anlaşılıyor, böylece hedefinizi avrdude gibi bir istemci programı ile gerçekleştirin.

Yani sorunun cevabı size bootloader erişebilir eğer, o zaman evet sen, bir ikili veya altıgen biçiminde flaş belleğin içeriğini okumak olmasıdır olmadan harici programcı başvurmadan.

Önyükleyiciye erişemiyorsanız (sorunları sıfırlayın veya bozulmamış önyükleyici mevcut değilse), güvenlik sigortası ayarlarının bunu engellememesi şartıyla, harici bir programlayıcı ile bunu yapabilirsiniz.


1
Sadece bir geri okuma desteklenmediği, varsayılan avrdudedoğrulama davranışının , bir arabelleği okuyarak ve bilgisayarda karşılaştırma yaparak çalıştığı için buna bağlı olduğu ortaya çıkıyor. Aslında, IDE'nin avrdudevarsayılan yapılandırmayla çağrılmasına izin vererek ATmega tabanlı Arduino'ya kod yükleyen herkes de dolaylı olarak bir tane okudu.
Chris Stratton

5

Evet, önyükleme çekirdeğini ISCP aracılığıyla bir Arduino Kartından başarıyla çektim ve diğerine ittim. Güvenlik sigortaları ayarlanmamış. avrdude çalışacak. O zamanlar bir GUI'ye sahip olduğu için AVR Studio'yu bir STK500 ile kullandım ve tüm avrdude anahtarlarını öğrenmem gerekmedi. İkisi de işe yarayacak.

Sigortanın ayarlanması açık kaynağı bozar. Önyükleme çekirdeği IDE'de sağlandığını söyledi. .. \ Arduino \ donanım \ arduino \ bootloaders \ atmega8 \ ATmegaBOOT.hex ve diğer varyant çipleri.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.