arduino 보드에서 코드를 추출 할 수 있습니까?


14

arduino의 코드를 16 진수 파일로 내보내는 방법이 있습니까?


2
예. 보안 퓨즈가 설정되어 있지 않은 경우 명령 행에서 avrdude를 사용하십시오. 그때는 가능하지만 의도적으로 훨씬 더 어려울 수 있으며, 누군가 그 보안 메커니즘을 아직 물리 쳤는지 확실하지 않습니다.
Chris Stratton

@ChrisStratton 나는 그들이 어떻게 패배했는지에 대해 이야기하는 데프콘 대화를 듣고있었습니다. 나는 그것이 어느 것인지 기억하지 못하지만 Google은 기억할 수 있습니다.
Hair_of_the_Dog

일부 마이크로 컨트롤러에서는 패배했지만 (적어도 공개 지식이 부족하고 물리적 해체 부족) 아직까지는 그렇지 않았습니다.
Chris Stratton

네, 해부 된 것 같습니다.
Hair_of_the_Dog

답변:


7

https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders 에서 Arduino 부트 로더의 소스 코드를 살펴보면 플래시 메모리에 대한 stk500 리드 백 기능을 실제로 지원하는 것으로 보입니다. avrdude와 같은 클라이언트 프로그램으로 목표를 달성하십시오.

따라서 질문에 대한 대답은 부트 로더에 액세스 할 수 있다면 외부 프로그래머에게 의지 하지 않고 플래시 메모리의 내용을 이진 또는 16 진수 형식으로 읽을 수 있다는 것 입니다.

부트 로더에 액세스 할 수없는 경우 (재설정 문제 또는 손상되지 않은 부트 로더가없는 경우) 보안 퓨즈 설정으로이를 방지 할 수없는 경우 외부 프로그래머가 액세스 할 수 있습니다.


1
읽기 지원 만 지원되는 것이 아니라 기본 avrdude확인 동작 버퍼를 다시 읽고 PC에서 비교를 수행함으로써 작동 하므로 기본 확인 동작에 의존합니다 . 따라서 기본적으로 IDE를 avrdude기본 구성으로 호출하여 ATmega 기반 Arduino에 코드를 업로드 한 사람은 암시 적으로 코드를 읽었습니다.
Chris Stratton

5

예, ISCP를 통해 한 Arduino 보드에서 부팅 커널을 성공적으로 가져와 다른 커널로 밀어 넣었습니다. 보안 퓨즈가 설정되지 않았습니다. avrdude가 작동하는 곳. 당시에는 GUI가 있었기 때문에 AVR Studio를 STK500과 함께 사용했으며 모든 avrdude 스위치를 배울 필요가 없었습니다. 작동합니다.

퓨즈를 설정하면 오픈 소스가 무효화됩니다. 그것은 부트 커널이 IDE에서 제공된다고 말했다. .. \ Arduino \ hardware \ arduino \ bootloaders \ atmega8 \ ATmegaBOOT.hex와 다른 변형 칩.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.