4 คะแนน โดย GN⁺ 2025-01-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • HardBreak คือวิกิความร่วมมือฟรีที่รวบรวมความรู้ด้านการแฮ็กฮาร์ดแวร์และการแฮ็ก IoT ไว้ในที่เดียว โดยจัดระเบียบข้อมูลที่กระจัดกระจายให้เป็นโครงสร้างเอกสารที่ผู้เริ่มต้นทำตามได้ง่าย
  • คู่มือเริ่มต้นครอบคลุมต่อเนื่องตั้งแต่การเลือกอุปกรณ์เป้าหมายชิ้นแรก เครื่องมือที่จำเป็น methodology และกรณีศึกษาจริง เพื่อช่วยให้เข้าใจลำดับการเริ่มต้นแฮ็กฮาร์ดแวร์
  • เอกสารแบ่งเป็น การแฮ็กฮาร์ดแวร์, การวิเคราะห์เครือข่าย และการแฮ็กวิทยุ โดยครอบคลุมตั้งแต่ UART, JTAG, SWD, SPI, I2C, voltage glitching, การวิเคราะห์เฟิร์มแวร์ ไปจนถึง reverse engineering โปรโตคอลโดรน
  • ผู้มีส่วนร่วมสามารถส่ง pull request ไปยัง repository บน GitHub หรือรายงานข้อผิดพลาดได้ และเมื่อรวมเนื้อหาจากผู้เขียนคนอื่น ต้องอ้างอิงแหล่งต้นฉบับหรือบล็อกเดิม
  • กลยุทธ์และคำแนะนำในวิกิจำกัดไว้เพื่อ วัตถุประสงค์ด้านการศึกษาและการให้ข้อมูล เท่านั้น ก่อนนำไปใช้จริงต้องตรวจสอบซ้ำและใช้งานอย่างรับผิดชอบ

วัตถุประสงค์และเส้นทางการเข้าถึงของ HardBreak

  • HardBreak คือวิกิความร่วมมือฟรีที่รวบรวมความรู้เกี่ยวกับ การแฮ็กฮาร์ดแวร์ / การแฮ็ก IoT ไว้ในที่เดียว
  • มีเป้าหมายเพื่อลดความยุ่งยากในการค้นหาข้อมูลที่กระจัดกระจายอยู่ตามบล็อกต่าง ๆ ในรูปแบบที่แตกต่างกัน และจัดให้อยู่ในแพลตฟอร์มที่เข้าถึงง่ายและใช้งานง่าย
  • ดัชนีเอกสารทั้งหมดดูได้ที่ llms.txt และหน้านี้ยังมีให้ในรูปแบบ Markdown ด้วย
  • ชุมชนรับการสนทนาเรื่องการแฮ็กฮาร์ดแวร์และความปลอดภัย IoT การแชร์โปรเจกต์ที่กำลังดำเนินอยู่ รวมถึงฟีดแบ็กและคำขอเกี่ยวกับเนื้อหาในวิกิผ่าน Discord

โครงสร้างเอกสารและขอบเขตการเรียนรู้

  • ส่วนสำหรับผู้เริ่มต้นจะแนะนำตัวเลือกและขั้นตอนที่จำเป็นเมื่อเริ่มต้นแฮ็กฮาร์ดแวร์เป็นครั้งแรก
    • 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 ความคิดเห็น

 
GN⁺ 2025-01-14
ความคิดเห็นจาก 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
    • ตัวอย่างเช่น ใน Case Study > Reconnaissance > OSINT มี สองย่อหน้า ต่อเนื่องกันที่พูดเรื่องเดียวกันด้วยถ้อยคำต่างกัน
      ย่อหน้าหนึ่งบอกว่าค้นหาชื่อรุ่น “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

  • ติเล็กน้อย แต่ถ้าใส่คำอธิบายเว็บไซต์ไว้ใน 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/

    • ใช่ ผมก็เจอปัญหาเดียวกัน น่าเสียดายที่ใน Gitbook เปลี่ยนได้แค่รูปพรีวิว และผมหาการตั้งค่าสำหรับเปลี่ยนข้อความพรีวิวไม่เจอ
      ดูเหมือนมันจะดึงชื่อหน้าแรก “Welcome to HardBreak” มา แล้วต่อท้ายด้วยชื่อเว็บไซต์ “HardBreak”
      ดังนั้นคงต้องเปลี่ยนชื่อหน้าแรก แต่ชื่ออย่าง “HardBreak - a Hardware Hacking Wiki” ก็ดูแปลกเวลามองจากในเว็บไซต์เอง ตอนนี้ยังไม่เจอทางออกที่ดี
  • ขอโปรโมตตัวเองหน่อย แต่ถ้าใครอยากเริ่มทำ Rockchip SoC development มีเอกสารที่ทำโดยไม่ใช้ AI อยู่ที่นี่: https://danielc.dev/rk/

  • ยอดเยี่ยม
    ปกติผมอยู่ฝั่ง application security มาตลอด แต่ช่วงหลังเริ่มสนใจ การแฮ็กฮาร์ดแวร์ มากขึ้นเรื่อย ๆ
    เท่าที่หาดูคร่าว ๆ เนื้อหาความรู้มันกระจัดกระจายไปทั่ว และวิธีเรียนที่ดีที่สุดน่าจะเป็นการลงมือทำกับคนที่รู้จริง
    การมีไกด์และ roadmap แบบนี้รวมอยู่ในที่เดียวเป็นทรัพยากรที่ดีมาก และผมตั้งใจจะใช้แน่นอน

  • นี่คือ คำไร้สาระที่สร้างโดย AI
    ไปห้องสมุดสาธารณะใกล้บ้านแล้วหยิบหนังสืออะไรก็ได้ที่พิมพ์ก่อนปี 2020 มาอ่านยังดีกว่า

    • สงสัยว่าที่บอกว่าไร้สาระนี่หมายถึงมันไร้สาระเฉย ๆ หรือเพราะมันเป็น AI กันแน่
  • แทนที่จะใช้ 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