본문 바로가기

해킹-보안

크롬 공룡게임 해킹

반응형

인터넷 연결이 끊겼을 때 크롬 브라우저를 열면 공룡 게임이 나온다.
공룡 게임 이름은 "T-Rex run"이고 아래 주소로 접속해서도 할 수 있다.
chrome://dino/

게임을 시작하고 요소추출(Ctrl+Shift+C)로 공룡 게임의 메인 화면을 가리키면
게임이 "runner-container"라는 div 클래스에서 실행되는 것을 알 수 있다.



여기서 canvas 태그는 게임 진행 상황을 화면에 그리는 역할을 한다.
그 상위 요소인 div 태그에 우클릭하고 브레이크 포인트를 설정한다.



게임을 다시 시작하고 게임 오버를 하면 디버거는 해당 코드가 실행되는 구간에서 일시 중지된다.



디버거의 CallStack은 호출된 함수를 저장하는 공간이고 Scope는 스크립트가 일시 중지되었을 때 지역/객체/전역 변수를 보여주는 창이다.
Local 내에 this는 Runner를 가리키므로 해당 함수의 속성을 조회하여 게임 로직과 관련된 정보가 있는지 확인한다.



instance_ 기능 중 currentSpeed가 현재 공룡의 이동 속도를 결정하는 것으로 생각된다.
자바스크립트의 모든 함수는 생성되는 동시에 프로토타입 객체가 같이 생성되므로
Runner 함수의 프로토타입 객체를 조회하여 어떤 함수들이 연결되어있는지 확인한다. 

> Runner.prototype


게임 플레이에 큰 영향을 줄 수 있는 함수는 두 가지 정도로 보인다.
gameOver/setSpeed 함수는 각각 게임 패배를 결정, 공룡의 이동 속도를 제어하는 함수이다.
각 함수에 대하여 Console 창에 아래 명령을 적용하면 기존에 있던 게임 패배 로직이 지워지면서 무적이 되고,
속도 설정 함수를 적용하여 속도를 비정상적으로 변경할 수 있다.

> Runner.prototype.gameOver = function(){}
> Runner.instance_.setSpeed(1000)




반응형

'해킹-보안' 카테고리의 다른 글

WI-FI deauth 공격  (2) 2020.12.22
SOP와 CORS 개념  (2) 2020.12.21
모의해킹 컨설턴트 QNA  (0) 2020.12.15
OWASP-ZAP 웹 스캐닝  (0) 2020.10.16
Burpsuite XSS Validator  (0) 2020.10.15