เหตุการณ์นี้เริ่มต้นขึ้นเมื่อนักพัฒนาอิสระนามว่า [PRBS23] ต้องการซ่อมแซมสายไฟของเตาย่าง Gravity 800 แต่ความอยากรู้อยากเห็นทำให้เขาแกะแผงวงจรควบคุมหลักออกดู ซึ่งพบว่าหัวใจหลักใช้ชิปยอดนิยมอย่าง ESP-32 และมีพอร์ตสำหรับโปรแกรมที่ระบุตำแหน่งไว้อย่างชัดเจน ส่วนอื่น ๆ ของบอร์ดก็ไม่มีความซับซ้อนมากนัก โดยประกอบไปด้วยช่องเชื่อมต่อเซนเซอร์วัดอุณหภูมิ 4 จุด, สวิตช์เปิด-ปิดฝาเตา, วงจรควบคุมพัดลม, หน้าจอ LCD แบบ 16 ส่วน และลำโพงบัซเซอร์
กระบวนการวิเคราะห์ย้อนกลับเริ่มต้นจากการดึงข้อมูลเฟิร์มแวร์เก่าออกจากชิปผ่านเครื่องมือ espflash ซึ่งนำไปสู่การค้นพบระบบการทำงานภายใน รวมถึงฟังก์ชันการชดเชยค่าอุณหภูมิที่ค่อนข้างแปลกประหลาดของเฟิร์มแวร์ดั้งเดิม และด้วยข้อมูลจากเอกสารทางเทคนิคของชิปควบคุมหน้าจอ CS1621 ทำให้การเขียนโปรแกรมควบคุมส่วนแสดงผลทำได้ง่ายขึ้นอย่างมาก
ในที่สุด ความพยายามทั้งหมดก็ถูกรวบรวมออกมาเป็นเฟิร์มแวร์ตัวใหม่ที่สมบูรณ์แบบ ซึ่งมาพร้อมกับฟีเจอร์ที่เหนือกว่าเดิม เช่น การอัปเดตซอฟต์แวร์ผ่านสัญญาณไร้สาย (OTA), ระบบควบคุมอุณหภูมิแบบ PID ที่แม่นยำ และหน้าเว็บอินเตอร์เฟสสำหรับควบคุมการทำงานแบบเรียลไทม์ นับเป็นอีกหนึ่งตัวอย่างที่น่าสนใจของการปลดปล่อยอุปกรณ์ IoT จากซอฟต์แวร์แบบปิดของบริษัทผู้ผลิต
🏷️ หมวดหมู่: Reverse Engineering, custom firmware, ESP32, firmware
🔗 อ่านบทความฉบับเต็ม: hackaday
