HardBreak - วิกิโอเพนซอร์สสำหรับการแฮ็กฮาร์ดแวร์สำหรับผู้เริ่มต้น
(hardbreak.wiki)- HardBreak คือวิกิความร่วมมือฟรีที่รวบรวมความรู้ด้านการแฮ็กฮาร์ดแวร์และการแฮ็ก IoT ไว้ในที่เดียว โดยจัดระเบียบข้อมูลที่กระจัดกระจายให้เป็นโครงสร้างเอกสารที่ผู้เริ่มต้นทำตามได้ง่าย
- คู่มือเริ่มต้นครอบคลุมต่อเนื่องตั้งแต่การเลือกอุปกรณ์เป้าหมายชิ้นแรก เครื่องมือที่จำเป็น methodology และกรณีศึกษาจริง เพื่อช่วยให้เข้าใจลำดับการเริ่มต้นแฮ็กฮาร์ดแวร์
- เอกสารแบ่งเป็น การแฮ็กฮาร์ดแวร์, การวิเคราะห์เครือข่าย และการแฮ็กวิทยุ โดยครอบคลุมตั้งแต่ UART, JTAG, SWD, SPI, I2C, voltage glitching, การวิเคราะห์เฟิร์มแวร์ ไปจนถึง reverse engineering โปรโตคอลโดรน
- ผู้มีส่วนร่วมสามารถส่ง pull request ไปยัง repository บน GitHub หรือรายงานข้อผิดพลาดได้ และเมื่อรวมเนื้อหาจากผู้เขียนคนอื่น ต้องอ้างอิงแหล่งต้นฉบับหรือบล็อกเดิม
- กลยุทธ์และคำแนะนำในวิกิจำกัดไว้เพื่อ วัตถุประสงค์ด้านการศึกษาและการให้ข้อมูล เท่านั้น ก่อนนำไปใช้จริงต้องตรวจสอบซ้ำและใช้งานอย่างรับผิดชอบ
วัตถุประสงค์และเส้นทางการเข้าถึงของ HardBreak
- HardBreak คือวิกิความร่วมมือฟรีที่รวบรวมความรู้เกี่ยวกับ การแฮ็กฮาร์ดแวร์ / การแฮ็ก IoT ไว้ในที่เดียว
- มีเป้าหมายเพื่อลดความยุ่งยากในการค้นหาข้อมูลที่กระจัดกระจายอยู่ตามบล็อกต่าง ๆ ในรูปแบบที่แตกต่างกัน และจัดให้อยู่ในแพลตฟอร์มที่เข้าถึงง่ายและใช้งานง่าย
- ดัชนีเอกสารทั้งหมดดูได้ที่ llms.txt และหน้านี้ยังมีให้ในรูปแบบ Markdown ด้วย
- ชุมชนรับการสนทนาเรื่องการแฮ็กฮาร์ดแวร์และความปลอดภัย IoT การแชร์โปรเจกต์ที่กำลังดำเนินอยู่ รวมถึงฟีดแบ็กและคำขอเกี่ยวกับเนื้อหาในวิกิผ่าน Discord
- ลิงก์เชิญ Discord: https://discord.gg/AWVsKxJHvQ
โครงสร้างเอกสารและขอบเขตการเรียนรู้
- ส่วนสำหรับผู้เริ่มต้นจะแนะนำตัวเลือกและขั้นตอนที่จำเป็นเมื่อเริ่มต้นแฮ็กฮาร์ดแวร์เป็นครั้งแรก
- How to start: การเลือกอุปกรณ์เป้าหมายชิ้นแรกและเครื่องมือที่จำเป็น
- Methodology: methodology สำหรับการเริ่มต้น
- Case Study: กรณีศึกษาจริง
- ส่วนการแฮ็กฮาร์ดแวร์จัดโครงสร้างโดยเน้น แนวทางแบบ top-down ในการตรวจสอบอุปกรณ์
- Basics: เครื่องมือฮาร์ดแวร์ เครื่องมือซอฟต์แวร์ และคอมโพเนนต์ฮาร์ดแวร์ที่พบบ่อย
- Reconnaissance: OSINT และการวิเคราะห์บอร์ด
- Interface Interaction: การระบุและใช้งานโปรโตคอลอย่าง UART, JTAG, SWD, SPI, I2C
- Extract firmware using UART: การดึงเฟิร์มแวร์โดยใช้โปรโตคอลดีบัก
- Voltage Glitching: เทคนิคการเลี่ยงกลไกความปลอดภัย
- Analyze Firmware: การวิเคราะห์เฟิร์มแวร์
- ส่วนการแฮ็กเครือข่ายและวิทยุครอบคลุมทั้งการวิเคราะห์โปรโตคอลและเครื่องมือไร้สาย
- Drone reverse engineering: reverse engineering โปรโตคอลโดรน
- RTL-SDR, Flipper Zero: เครื่องมือสำหรับการแฮ็กวิทยุ
- RFID, NFC: โปรโตคอลไร้สายและวิธีการแฮ็ก
ข้อควรระวังในการมีส่วนร่วมและการใช้งาน
- การมีส่วนร่วมทำได้โดยส่ง pull request ไปยัง GitHub repository หรือรายงานข้อผิดพลาด
- ผู้มีส่วนร่วมสามารถช่วยรักษาความถูกต้องของเนื้อหาได้
- เมื่อรวมเนื้อหาจากผู้เขียนคนอื่น ต้องอ้างอิง แหล่งต้นฉบับหรือบล็อกเดิม
- ขั้นตอนสำหรับ pull request ครั้งแรกมีคำแนะนำใน Contribution Guide
- วิกินี้สร้างขึ้นจากความรู้และเจตนาของผู้มีส่วนร่วม แต่ อาจมีข้อผิดพลาดได้
- ก่อนนำคำแนะนำหรือกลยุทธ์ไปใช้จริง ควรตรวจสอบอีกครั้ง
- กลยุทธ์และคำแนะนำของเว็บไซต์จำกัดไว้เพื่อวัตถุประสงค์ด้านการศึกษาและการให้ข้อมูลเท่านั้น
- ไม่สนับสนุนหรือส่งเสริมการกระทำที่ผิดกฎหมายหรือผิดจริยธรรม และผู้ใช้ต้องใช้ข้อมูลอย่างรับผิดชอบโดยยอมรับความเสี่ยงด้วยตนเอง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ขอบคุณสำหรับวิกิ แต่ในฐานะคนที่สนใจ การแฮ็กฮาร์ดแวร์ มาตลอดแต่ไม่รู้จะเริ่มตรงไหนจนรู้สึกท่วมท้น เนื้อหาแบบนี้ โดยเฉพาะกรณีศึกษา ดูเหมือนจะช่วยได้มาก
แต่อ่านแล้วรู้สึกว่าหลายส่วนถูกสร้างด้วย LLM หรืออย่างน้อยก็ถูก LLM เขียนใหม่ ทำให้น้ำเสียงค่อนข้างจืด
ตัวอย่างเช่น ในหน้ากรณีศึกษา(https://www.hardbreak.wiki/introduction/case-study-led-to-a-cve-update) มีสองย่อหน้าที่แทบจะเหมือนกันวางติดกัน โดยย่อหน้าที่สองดูเหมือนต้นฉบับ ส่วนย่อหน้าแรกเหมือนเวอร์ชันที่ LLM เขียนใหม่
ผมไม่ได้คัดค้านการใช้ LLM เพื่อแก้คำผิดหรือเกลาสำนวน แต่ก็ควรคงสไตล์การเขียนของตัวเองไว้ ตอนนี้เนื้อหามันเรียบเกินไปจนไม่ค่อยกระตุ้นให้อยากอ่านต่อ
ถ้าเข้าใจว่าโมเดลกำลังอธิบายอะไร ก็ไม่จำเป็นต้องไล่อนุมานเครื่องมือหลักของวิศวกรรมไฟฟ้าแบบห้องทดลองฟิสิกส์ทั้งหมด
AI ถ้าใส่ขยะเข้าไปก็ได้ขยะออกมา และอาจเป็นอันตรายกับนักเรียนได้
นักเรียนทุกคนควรเริ่มจาก Wave Machines ของ John Shive: https://www.youtube.com/watch?v=DovunOxlY1k
ย่อหน้าหนึ่งบอกว่าค้นหาชื่อรุ่น “ASUS RT-N12 D1” แล้วพบว่ารุ่นใกล้เคียง “ASUS RT-N12+ B1” มีอินเทอร์เฟซ UART ที่เปิดอยู่และเข้าถึง root ได้โดยไม่ต้องยืนยันตัวตน และย่อหน้าถัดมาก็แทบจะพูดเรื่องเดิมซ้ำอีกครั้งด้วยสำนวนที่ใกล้ต้นฉบับมากกว่า
มันไม่ใช่ โอเพนซอร์ส ในความหมายทั่วไป
ใต้หัวข้อ “Terms” ใน license.md [0] เขียนไว้ว่า “Exemptions: Commercial Use: For inquiries regarding commercial use, please contact the author.”
[0] https://github.com/f3nter/HardBreak/blob/fd3d2d4cd17624a3f62...
ผมหาแหล่งอ้างอิงที่แม่นยำไม่ได้ แต่ใจความคือ โอเพนซอร์ส หรือให้ชัดกว่านั้นคือซอฟต์แวร์เสรีและวัฒนธรรมเสรี ไม่ใช่แนวคิดเพื่อผู้สร้าง แต่เป็นแนวคิดที่รับประกันสิทธิของผู้ใช้ในการใช้งานผลงานตามที่ต้องการ รวมถึงสิทธิในการขายด้วย
คนชอบแก้กันว่า “ไม่ใช่ free แบบเบียร์ฟรี แต่เป็น free แบบเสรีภาพในการพูด” ประเด็นไม่ใช่ป้ายราคา แต่เป็นเสรีภาพของผู้ใช้ ซึ่งรวมถึงเสรีภาพในการนำกลับไปใช้เชิงพาณิชย์ด้วย ถ้าจะมีเสรีภาพไหนที่ถูกจำกัดได้ ก็แทบมีแค่เสรีภาพในการไปจำกัดเสรีภาพของคนอื่น
คุณอาจไม่เห็นด้วยก็ได้ แต่ประวัติศาสตร์ของขบวนการซอฟต์แวร์เสรี วัฒนธรรมเสรี และโอเพนซอร์ส ซึ่งสร้างโลกซอฟต์แวร์ส่วนใหญ่ในปัจจุบัน ก็เป็นแบบนี้
จังหวะดีมาก เพิ่งซื้อ micro:bit มาเพื่อเรียนรู้กับลูกสาวตัวเล็ก ๆ ช่วงนี้ ลูกชอบมาก แต่แค่จะปรับแต่งบอร์ดในระดับพื้นฐานที่สุดก็เริ่มรับมือไม่ไหวแล้ว
ตอนนี้ในลิ้นชักเต็มไปด้วย breadboard, คลิปปากจระเข้, สายจัมเปอร์, LCD และชิ้นส่วนอิเล็กทรอนิกส์อีกหลายอย่าง และผมก็อยู่ในจุดที่จำเป็นต้องเข้าใจพื้นฐานจริง ๆ ว่าของพวกนี้ทำงานอย่างไร
ถึงอย่างนั้น การควบคุมชิ้นส่วนฮาร์ดแวร์ของตัวเองด้วยโค้ดของตัวเองมันทั้งมหัศจรรย์และชวนติดใจมาก แค่เปิด LED และเขียนโปรแกรมให้ตัวรับอินฟราเรดก็สนุกมากแล้ว
เยี่ยมมาก จะเอาอันนี้ไปใส่ไว้ใน ชุดรวมแหล่งข้อมูล embedded
https://hardwareteams.com/docs/embedded/embedded-resources/
ดีเลย ถ้ามีการเพิ่มเทคนิค circuit bending ที่มักใช้ในการดัดแปลงอุปกรณ์ดนตรีและอื่น ๆ ในภายหลังก็คงดี
[1]. https://en.wikipedia.org/wiki/Circuit_bending
https://circuitbending.miraheze.org/wiki/Circuit_Bending
ติเล็กน้อย แต่ถ้าใส่คำอธิบายเว็บไซต์ไว้ใน meta/og description[0] ก็น่าจะดี เวลามีคนลิงก์ไปที่อื่นจะได้รู้ว่าเว็บนี้คืออะไร
เช่นใช้ข้อความจากเนื้อหาหน้าเว็บอย่าง “This page is a free and open-source wiki about hardware hacking!” ก็เพียงพอแล้ว
ผมลองแปะลิงก์ใน Slack แล้วมันขึ้นแค่ “hardbreak.wiki / Welcome to HardBreak | Hardbreak” ซึ่งสั้นเกินไป อาจมีการตั้งค่าในซอฟต์แวร์วิกิที่เติมแท็กพวกนี้ให้อัตโนมัติก็ได้
[0] https://ogp.me/
ดูเหมือนมันจะดึงชื่อหน้าแรก “Welcome to HardBreak” มา แล้วต่อท้ายด้วยชื่อเว็บไซต์ “HardBreak”
ดังนั้นคงต้องเปลี่ยนชื่อหน้าแรก แต่ชื่ออย่าง “HardBreak - a Hardware Hacking Wiki” ก็ดูแปลกเวลามองจากในเว็บไซต์เอง ตอนนี้ยังไม่เจอทางออกที่ดี
ขอโปรโมตตัวเองหน่อย แต่ถ้าใครอยากเริ่มทำ Rockchip SoC development มีเอกสารที่ทำโดยไม่ใช้ AI อยู่ที่นี่: https://danielc.dev/rk/
ยอดเยี่ยม
ปกติผมอยู่ฝั่ง application security มาตลอด แต่ช่วงหลังเริ่มสนใจ การแฮ็กฮาร์ดแวร์ มากขึ้นเรื่อย ๆ
เท่าที่หาดูคร่าว ๆ เนื้อหาความรู้มันกระจัดกระจายไปทั่ว และวิธีเรียนที่ดีที่สุดน่าจะเป็นการลงมือทำกับคนที่รู้จริง
การมีไกด์และ roadmap แบบนี้รวมอยู่ในที่เดียวเป็นทรัพยากรที่ดีมาก และผมตั้งใจจะใช้แน่นอน
นี่คือ คำไร้สาระที่สร้างโดย AI
ไปห้องสมุดสาธารณะใกล้บ้านแล้วหยิบหนังสืออะไรก็ได้ที่พิมพ์ก่อนปี 2020 มาอ่านยังดีกว่า
แทนที่จะใช้
strings[1] ในการค้นหา ผมแนะนำrz-bin[2] และrz-find[3]มันยืดหยุ่นกว่า และรองรับการค้นหาสตริงนอกส่วนข้อมูล ค้นหา Unicode และ encoding ที่ไม่ค่อยพบบ่อย รวมถึงค้นหากุญแจเข้ารหัสที่ฝังอยู่
ใน Rizin เองก็มีคำสั่งค้นหา
/อยู่แล้ว ส่วน entropy มีฮิสโตแกรมแบบโต้ตอบที่ปรับแต่งได้ ให้ดูคำสั่งp=และp==เช่นp==e[1] https://book.rizin.re/src/search_bytes/intro.html
[2] https://book.rizin.re/src/tools/rz-bin/strings.html
[3] https://book.rizin.re/src/tools/rz-find/intro.html