3 คะแนน โดย GN⁺ 2023-10-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้แนะนำ PROJEKT: OVERFLOW ซึ่งเป็นเกมกระดานตั้งโต๊ะแอสเซมบลี RISC-V
  • เกมนี้ถูกสร้างขึ้นเพื่อสอนเรื่อง buffer overflow ให้ลูกสาวของผู้เขียนด้วยวิธีที่สนุกและโต้ตอบได้
  • เกมเกี่ยวข้องกับการสร้างเชลล์โค้ดขนาดเล็กในหน่วยความจำ แล้วใช้ buffer overflow เพื่อกระโดดไปยังมันและส่งคู่ต่อสู้ไปยังฟังก์ชัน game_over()
  • ผู้เล่นทุกคนใช้หน่วยความจำร่วมกันและรันโปรแกรมเดียวกัน โดยแต่ละคนจะรันคำสั่ง 10 คำสั่งตามลำดับ
  • เกมยังมีชั้นเชิงกลไกและกลยุทธ์อื่น ๆ เช่น การตั้งค่า exception handler หรือ monkey patching
  • เกมสามารถเล่นคนเดียวทางออนไลน์หรือเล่นกับเพื่อนได้ และยังมีเวอร์ชันสำหรับพิมพ์ด้วย
  • ภายในเกมมีเงื่อนไขชัยชนะหลากหลายตามระดับความยากต่าง ๆ
  • ผู้เขียนยังให้รายการคำสั่งในเกมที่ใช้ได้พร้อม machine code ตั้งแต่ 0 ถึง 4095 (RV32 JRI ทำงานกับ a0, a4, a5, sp, ra)
  • ผู้เขียนยังสร้างเกมการศึกษาในลักษณะคล้ายกันสำหรับสอน Python, C, machine code และคำสั่ง UNIX
  • ผู้เขียนกล่าวขอบคุณหลายคนที่มีส่วนร่วมในการพัฒนาและทดสอบเกม
  • ผู้เขียนให้ข้อมูลติดต่อสำหรับข้อเสนอแนะหรือการรายงานบั๊ก
  • บทความมีคู่มือแอสเซมบลีที่รวมลิงก์ไปยังบทเรียนและแหล่งข้อมูลเกี่ยวกับแอสเซมบลี RISC-V หลากหลายรายการ
  • ผู้เขียนยังให้รายการแบบฝึกหัดและตัวอย่างโค้ดสำหรับเรียนรู้แอสเซมบลี RISC-V
  • การออกแบบของเกมเป็นแบบมินิมัล เน้นการใช้งานจริงและความคุ้มค่าด้านต้นทุนสำหรับการพิมพ์
  • ผู้เขียนไม่ใช้ syntax highlighting ในเกม เพื่อให้ผู้เล่นตัดสินใจเองเกี่ยวกับความสำคัญขององค์ประกอบต่าง ๆ ของโค้ด

1 ความคิดเห็น

 
GN⁺ 2023-10-01
ความเห็นบน Hacker News
  • โพสต์เกี่ยวกับเกมกระดานแนวเดสก์ท็อปสำหรับ RISC-V assembly ที่เปิดให้ผู้เล่นสามารถ “แฮ็ก” ฝ่ายตรงข้ามได้
  • ผู้แสดงความคิดเห็นคนหนึ่งชื่นชมที่ผู้สร้างสอนเกมนี้ให้ลูกสาววัย 12 ปี และถามถึงเวอร์ชัน CHERI
  • ผู้แสดงความคิดเห็นอีกคนตั้งคำถามถึงแรงจูงใจของผู้สร้าง และเสนอว่าอาจเป็นโปรเจกต์ที่ทำเพื่อสนองอัตตา
  • ผู้แสดงความคิดเห็นคนหนึ่งโต้แย้งว่า เมื่อพิจารณาจากขนาดหน่วยความจำคอมพิวเตอร์ในปัจจุบัน การใช้ mnemonic แบบสั้นเป็นตัวเลือกทางวิศวกรรมที่ไม่ดี
  • มีข้อเสนอแนะว่าการมีอยู่ของช่องโหว่ลักษณะนี้บ่งชี้ถึงความล้มเหลวในการออกแบบระบบโดยรวม
  • มีคนหนึ่งวางแผนจะแนะนำเกมนี้ในที่ทำงาน
  • ผู้แสดงความคิดเห็นคนหนึ่งเล่าว่าเพื่อนของเขาเรียนรู้การเขียนโค้ดผ่านเกม และเสนอว่าเกมนี้อาจเป็นเครื่องมือการเรียนรู้ที่คล้ายกันได้
  • มีคำถามเกี่ยวกับช่วงอายุที่เหมาะสมสำหรับเกมนี้
  • ผู้แสดงความคิดเห็นหลายคนแสดงความตื่นเต้นกับเกมนี้และอยากเล่นมันในที่ทำงาน
  • มีคนหนึ่งรู้สึกทั้งประหลาดใจและตื่นเต้นกับแนวคิดของเกมกระดานที่มีการเขียนโค้ด assembly รวมอยู่ด้วย
  • ผู้แสดงความคิดเห็นคนหนึ่งกล่าวถึงการตรวจสอบขอบเขตสตริง/อาร์เรย์ของ PL/I และสแตกแบบเติบโตขึ้นเป็นคุณสมบัติที่ดี
  • มีการพูดคุยเกี่ยวกับอนาคตของโค้ด RISC-V แบบ 64 บิต และความเป็นไปได้ที่จะถูกยกเลิกการใช้งานในอนาคต