- 기사는 PROJEKT: OVERFLOW라는 RISC-V 어셈블리 탁상 보드 게임을 소개합니다.
- 이 게임은 저자의 딸에게 버퍼 오버플로우를 재미있고 상호 작용적인 방식으로 가르치기 위해 만들어졌습니다.
- 게임은 메모리에 작은 쉘코드를 생성하고 버퍼 오버플로우를 이용하여 이를 점프하여 상대방을 game_over() 함수로 이동시키는 것을 포함합니다.
- 모든 플레이어는 동일한 메모리를 공유하고 동일한 프로그램을 실행하며, 각각 10개의 명령어를 차례로 실행합니다.
- 게임은 예외 핸들러 설정이나 몽키 패칭 등 다른 메커니즘과 전략 계층도 포함합니다.
- 게임은 혼자서 온라인으로 플레이하거나 친구와 함께 할 수 있으며, 인쇄 가능한 버전도 있습니다.
- 게임에는 다른 난이도 수준에 따른 다양한 승리 조건이 포함되어 있습니다.
- 저자는 또한 0에서 4095(RV32 JRI가 a0,a4,a5,sp,ra에서 작동)까지의 기계 코드를 가진 유효한 게임 명령어 목록을 제공합니다.
- 저자는 Python, C, 기계 코드, UNIX 명령어를 가르치는 유사한 교육용 게임도 만들었습니다.
- 저자는 게임 개발과 테스트에 기여한 여러 사람들에게 감사의 말을 전합니다.
- 저자는 피드백이나 버그 보고를 위한 연락처 정보를 제공합니다.
- 기사에는 다양한 RISC-V 어셈블리 튜토리얼과 자료에 대한 링크가 포함된 어셈블리 가이드가 포함되어 있습니다.
- 저자는 또한 RISC-V 어셈블리를 배우기 위한 연습 문제와 코드 예제 목록을 제공합니다.
- 게임의 디자인은 최소주의적이며, 인쇄에 대한 기능성과 비용 효율성에 초점을 맞추고 있습니다.
- 저자는 게임에서 구문 강조를 사용하지 않고, 플레이어가 코드의 다른 요소의 중요성에 대해 자신의 판단을 내릴 수 있도록 합니다.