Arduinoボードからコードを抽出することは可能ですか?


14

arduinoのコードを16進ファイルとしてエクスポートする方法はありますか?


2
はい、セキュリティヒューズが設定されていない限り、コマンドラインからavrdudeを使用します。その場合でも可能かもしれませんが、意図的にずっと難しく、だれかがまだそのセキュリティメカニズムを破ったかどうかは明確ではありません。
クリスストラットン

@ChrisStratton私はデフコンの話を聞いていましたが、彼らはそれがどのように敗北したかについて話しました。私はそれがどれだったか覚えていませんが、グーグルは覚えているかもしれません。
Hair_of_the_Dog

一部のマイクロコントローラでは無効になっていますが、他のマイクロコントローラではまだ無効になっています(少なくとも物理的な知識が不足しているため)。
クリスストラットン

ええ、私はそれが解剖されたと確信しています。
Hair_of_the_Dog

回答:


7

https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloadersにあるArduinoブートローダーのソースコードを見ると、フラッシュメモリのstk500リードバック機能を実際にサポートしているようです。 avrdudeなどのクライアントプログラムで目標を達成します。

そこで質問への答えは、あなたがブートローダにアクセスできる場合、[はいあなたは、バイナリまたは進形式でフラッシュメモリの内容を読み出すことができるということであるなしに外部プログラマに頼ります。

ブートローダーにアクセスできない場合(トラブルのリセット、またはブートローダーの損傷がない場合)、外部のプログラマーでアクセスできる場合があります。ただし、セキュリティヒューズ設定がこれを妨げない場合に限ります。


1
リードバックがサポートされているだけでなく、デフォルトのavrdude検証動作、バッファをリードバックしてPCで比較を実行することで機能するため、これに依存していることがわかります。したがって、本質的に、IDEをavrdudeデフォルト構成で呼び出すことによりATmegaベースのArduinoにコードをアップロードしたことのある人は誰でも暗黙のうちにコードを読み取っています。
クリスストラットン

5

はい、ISCPを介してArduinoボードからブートカーネルを正常にプルし、別のボードにプッシュしました。セキュリティヒューズが設定されていません。avrdudeが機能する場所。当時、GUIがあり、すべてのavrdudeスイッチを学習する必要がないため、STK500でAVR Studioを使用しました。どちらも機能します。

ヒューズを設定すると、オープンソースが無効になります。つまり、ブートカーネルはIDEで提供されます。.. \ Arduino \ hardware \ arduino \ bootloaders \ atmega8 \ ATmegaBOOT.hexと他のバリアントチップ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.