






아주 평범한 게임, Cubic Ninja
그 게임에는 QR코드 맵 공유 기능이 있었음
문제는 QR코드 데이터의 사이즈를 검증하는 기능이 제대로 안 만들어져 있었고
QR코드를 이용해 닌텐도 3DS를 해킹이 가능해짐.
그 결과 닌텐도 3DS의 해킹의 문턱이 됨

더 풀어 설명하자면
저런 게임은 메모리에 숫자코드(바이트) 형태로 올라가서 실행되는데
그 메모리 공간은 실행되는 코드도 있을 수 있고 일반 저장용 데이터도 있을 수 있습니다.
심지어 저장용데이터가 주욱 있다가 갑자기 실행코드가 나올 수도 있습니다.
그런데 본문에서처럼 한 256바이트 정도 저장할 만한 입력기능을 만들었는데
크기 검사가 제대로 안되면 한 2만바이트 정도 넣어도 (게임이 잘못되어 깨지지 않는다면) 그냥 들어가 버리죠.
그걸 잘 조정해서 실행될 만한 위치에 내가 원하는 실행 코드가 삽입되게 하는 게 포인트.
[출처 : 오유-유머자료]