3 điểm bởi GN⁺ 2023-10-01 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài viết giới thiệu PROJEKT: OVERFLOW, một trò chơi cờ bàn về assembly RISC-V.
  • Trò chơi này được tạo ra để dạy con gái của tác giả về buffer overflow theo cách vui nhộn và có tính tương tác.
  • Trò chơi xoay quanh việc tạo ra shellcode nhỏ trong bộ nhớ và dùng buffer overflow để nhảy tới đó, đưa đối thủ vào hàm game_over().
  • Tất cả người chơi cùng chia sẻ một vùng nhớ và chạy cùng một chương trình, mỗi người lần lượt thực thi 10 lệnh.
  • Trò chơi cũng bao gồm các cơ chế và lớp chiến thuật khác như thiết lập exception handler hoặc monkey patching.
  • Có thể chơi trực tuyến một mình hoặc cùng bạn bè, và cũng có phiên bản có thể in ra.
  • Trò chơi có nhiều điều kiện chiến thắng khác nhau tương ứng với các mức độ khó khác nhau.
  • Tác giả cũng cung cấp danh sách các lệnh hợp lệ trong trò chơi với mã máy từ 0 đến 4095 (RV32 JRI hoạt động trên a0, a4, a5, sp, ra).
  • Tác giả cũng đã tạo ra các trò chơi giáo dục tương tự để dạy Python, C, mã máy và lệnh UNIX.
  • Tác giả gửi lời cảm ơn tới nhiều người đã đóng góp cho việc phát triển và kiểm thử trò chơi.
  • Tác giả cung cấp thông tin liên hệ để nhận phản hồi hoặc báo lỗi.
  • Bài viết có kèm một hướng dẫn assembly với các liên kết tới nhiều tutorial và tài liệu về assembly RISC-V.
  • Tác giả cũng cung cấp danh sách bài tập thực hành và ví dụ mã để học assembly RISC-V.
  • Thiết kế của trò chơi theo phong cách tối giản, tập trung vào tính thực dụng và hiệu quả chi phí khi in ấn.
  • Tác giả không dùng syntax highlighting trong trò chơi, để người chơi tự đánh giá mức độ quan trọng của các thành phần khác nhau trong mã.

1 bình luận

 
GN⁺ 2023-10-01
Ý kiến trên Hacker News
  • Bài đăng về một trò chơi cờ bàn dùng hợp ngữ RISC-V, cho phép người chơi "hack" đối thủ
  • Một người bình luận bày tỏ sự thán phục việc tác giả dạy trò chơi này cho con gái 12 tuổi và hỏi về phiên bản CHERI.
  • Một người bình luận khác đặt câu hỏi về động cơ của tác giả, cho rằng đây có thể là một dự án phục vụ cái tôi.
  • Một người bình luận cho rằng với kích thước bộ nhớ máy tính hiện nay, các mnemonic ngắn là một lựa chọn kỹ thuật tồi.
  • Có ý kiến cho rằng sự tồn tại của những lỗ hổng như vậy cho thấy sự thất bại trong thiết kế toàn bộ hệ thống.
  • Một người cho biết họ dự định giới thiệu trò chơi này tại nơi làm việc.
  • Một người bình luận chia sẻ rằng bạn của họ đã học lập trình qua trò chơi, và cho rằng đây cũng có thể là một công cụ học tập tương tự.
  • Có câu hỏi về độ tuổi phù hợp để chơi trò này.
  • Nhiều người bình luận bày tỏ sự hào hứng với trò chơi và mong muốn được chơi nó tại nơi làm việc.
  • Một người ngạc nhiên và phấn khích trước ý tưởng về một trò chơi cờ bàn có bao gồm việc viết mã hợp ngữ.
  • Một người bình luận nhắc đến kiểm tra biên chuỗi/mảng và stack tăng dần của PL/I như những tính năng tích cực.
  • Có thảo luận về tương lai của mã RISC-V 64-bit và khả năng bị loại bỏ theo kế hoạch.