# MIDI 메시지를 통한 원격 코드 실행

> Clean Markdown view of GeekNews topic #18599. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18599](https://news.hada.io/topic?id=18599)
- GeekNews Markdown: [https://news.hada.io/topic/18599.md](https://news.hada.io/topic/18599.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-01-06T14:34:03+09:00
- Updated: 2025-01-06T14:34:03+09:00
- Original source: [psi3.ru](https://psi3.ru/blog/swl01u/)
- Points: 3
- Comments: 0

## Topic Body

### 시작

- Yamaha PSR-E433 신디사이저를 오랫동안 소유하고 있었으며, 내부 구조에 대한 호기심으로 분해하게 됨.
- 메인 회로 보드에서 "YAMAHA SWL01U" 칩을 발견했으나, 온라인에서 관련 정보를 찾을 수 없었음.
- 몇 달 후, 유사한 신디사이저의 서비스 매뉴얼을 발견하고, 칩의 핀 설명을 확인하게 됨.
- JTAG 테스트 포인트와 UART 인터페이스를 통해 칩의 정보를 얻으려 시도함.

### 펌웨어 덤프

- JTAG 인터페이스를 통해 칩의 IDCODE를 읽어보려 했으나, 예상치 못한 IDCODE가 나옴.
- ARM7TDMI 코어로 추정하고 OpenOCD를 사용하여 칩과 통신을 시도함.
- 전류 변화를 통해 ARM7TDMI 코어와의 통신이 성공적임을 확인함.
- 펌웨어를 덤프하여 분석을 시작함.

### 펌웨어 리버싱

- Ghidra를 사용하여 펌웨어를 리버싱하기 시작함.
- 펌웨어의 문자열을 통해 시스템의 구조를 이해하려고 시도함.
- 쉘 명령어 목록을 발견하고, 이를 통해 시스템의 작동 방식을 이해함.

### 쉘코드

- MIDI 메시지를 통해 신디사이저의 메모리에 접근할 수 있는 방법을 발견함.
- 메모리 쓰기 명령을 사용하여 RAM에 코드를 주입하고 실행할 수 있음을 확인함.
- "HeloWrld" 문자열을 LCD에 출력하는 간단한 어셈블리 코드를 작성하여 실행함.

### Bad Apple

- MIDI를 통해 신디사이저의 LCD에 "Bad Apple" 영상을 출력하는 프로젝트를 진행함.
- MIDI 메시지를 통해 신디사이저의 내부 메모리에 접근하고, 이를 통해 영상을 출력함.

### 링크

- 프로젝트의 전체 과정과 관련된 링크를 제공함.

이 프로젝트는 MIDI 메시지를 통해 신디사이저의 내부 메모리에 접근하고, 이를 통해 다양한 기능을 구현할 수 있음을 보여줌. 이를 통해 신디사이저의 잠재력을 최대한 활용할 수 있는 가능성을 제시함.

## Comments



_No public comments on this page._
