เริ่มต้น

  • เคยเป็นเจ้าของซินธิไซเซอร์ Yamaha PSR-E433 มานาน และด้วยความอยากรู้เกี่ยวกับโครงสร้างภายในจึงได้ถอดมันออกมา
  • พบชิป "YAMAHA SWL01U" บนบอร์ดวงจรหลัก แต่ไม่พบข้อมูลที่เกี่ยวข้องบนอินเทอร์เน็ต
  • ผ่านไปหลายเดือน จนพบคู่มือบริการของซินธิไซเซอร์ที่คล้ายกัน และได้ตรวจสอบคำอธิบายพินของชิปได้
  • พยายามดึงข้อมูลชิปผ่านจุดทดสอบ JTAG และอินเทอร์เฟซ UART

การคัดลอกเฟิร์มแวร์

  • พยายามอ่าน IDCODE ของชิปผ่านอินเทอร์เฟซ JTAG แต่ได้ค่า IDCODE ที่ไม่คาดคิด
  • คาดว่าชิปเป็นคอร์ ARM7TDMI และลองสื่อสารกับชิปด้วย OpenOCD
  • การเปลี่ยนแปลงกระแสไฟฟ้าชี้ให้เห็นว่าการสื่อสารกับคอร์ ARM7TDMI สำเร็จ
  • ดึงเฟิร์มแวร์เพื่อเริ่มการวิเคราะห์

การวิศวกรรมย้อนกลับเฟิร์มแวร์

  • เริ่มการวิศวกรรมย้อนกลับเฟิร์มแวร์ด้วย Ghidra
  • พยายามทำความเข้าใจโครงสร้างระบบผ่านสตริงในเฟิร์มแวร์
  • พบรายชื่อคำสั่งเชลล์ และจากนั้นเข้าใจการทำงานของระบบได้

Shellcode

  • ค้นพบวิธีเข้าถึงหน่วยความจำของซินธิไซเซอร์ผ่านข้อความ MIDI
  • ยืนยันได้ว่าสามารถฉีดโค้ดลงใน RAM และรันได้โดยใช้คำสั่งเขียนหน่วยความจำ
  • สร้างโค้ดแอสเซมบลีขนาดเล็กที่พิมพ์สตริง "HeloWrld" บนจอ LCD แล้วรัน

Bad Apple

  • ทำโปรเจกต์เพื่อแสดงวิดีโอ "Bad Apple" บนจอ LCD ของซินธิไซเซอร์ผ่าน MIDI
  • เข้าถึงหน่วยความจำภายในซินธิไซเซอร์ผ่านข้อความ MIDI และใช้วิธีนี้เพื่อแสดงวิดีโอ

ลิงก์

  • ให้ลิงก์ที่ครอบคลุมทั้งกระบวนการทั้งหมดของโปรเจกต์

โครงการนี้แสดงให้เห็นว่าการเข้าถึงหน่วยความจำภายในซินธิไซเซอร์ผ่านข้อความ MIDI ทำให้สามารถสร้างฟังก์ชันต่างๆ ได้หลายอย่าง และแสดงให้เห็นถึงศักยภาพในการใช้งานซินธิไซเซอร์ให้เกิดประโยชน์สูงสุด

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น