치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ④ 상점 구매 가격 조작하기
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ④ 상점 구매 가격 조작하기
나동빈
이번 시간에는 치트 엔진으로 자신의 컴퓨터 내의 포켓몬스터 파이어 레드 게임에서 상점 구매 가격을 조작해보는 실습을 해보도록 하겠습니다. 먼저 다음과 같이 상점에 들어가서 하나의 상품을 선택합니다.
이제 구매하려는 상품의 개수를 하나씩 늘려보면서 가격 정보를 스캔합니다. 포켓몬 볼의 가격은 200원이므로 초기에는 200원으로 변수를 스캔하고 이후에 개수를 늘린 뒤의 가격도 스캔하는 방식으로 메모리 내의 변수를 찾습니다.
결과적으로 찾은 변수를 주소 리스트에 등록합니다.
이후에 구매할 수 있는 최대 개수로 설정한 뒤에 구매할 가격 정보를 0원으로 수정합니다.
그러면 다음과 같이 실질적으로 구매할 가격이 0원으로 책정되는 것을 알 수 있습니다.
이제 한 번 다른 상품도 구매해보도록 하겠습니다.
이번에는 구매 비용 변수의 값을 항상 0이 될 수 있도록 고정(Fixed) 하시면 됩니다.
그러면 다음과 같이 어떠한 상품을 구매하든지 간에 항상 최종 가격이 0원으로 책정되어 무료로 구매할 수 있게 됩니다.
'게임 해킹을 통해 배우는 정보보안' 카테고리의 다른 글
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ③ 포켓몬 능력치 조작하기 (0) | 2018.09.03 |
|---|---|
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ② 경험치 및 레벨 조작하기 (0) | 2018.09.03 |
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ① 게임 실행 (0) | 2018.09.03 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 9단계 (0) | 2018.09.02 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 8단계 (6) | 2018.09.01 |
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ③ 포켓몬 능력치 조작하기
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ③ 포켓몬 능력치 조작하기
나동빈
이번 시간에는 자신의 컴퓨터 내에 설치된 포켓몬스터 파이어 레드 게임에서 포켓몬의 능력치를 조작해보는 시간을 가져보도록 하겠습니다. 기본적으로 능력치가 변경되는 순간은 레벨 업(Level Up)을 할 때입니다. 따라서 레벨 업을 했을 때 HP 정보를 확인합니다.
저는 따라서 다음과 같이 45로 변수를 스캔했습니다.
이후에 다시 레벨 업을 할 때 HP 정보를 다시 확인합니다.
다시 스캔하여 다음과 같이 HP 정보를 저장하는 변수를 주소 리스트에 담습니다.
저는 이름을 HP로 바꾸고 값을 999로 설정한 뒤에 값을 고정시켰습니다.
이후에 에뮬레이터를 종료하지 않은 상태로 게임을 재시작(Reset) 하시면 체력이 999로 고정되어 있습니다.
저는 다음과 같이 재시작해서 포켓몬의 레벨이 다시 초기화 되었음에도 체력 정보가 999로 고정되어 있는 것을 확인할 수 있습니다.
다만 이 때 레벨 업을 마치면 최대 체력은 999로 고정이 되어 있지만 현재 체력은 다시 초기화됩니다.
따라서 현재 체력 정보도 스캔해 봅시다.
결과적으로 현재 체력 정보도 다음과 같이 2개 찾아서 주소 리스트에 등록할 수 있었습니다.
다음과 같이 현재 체력 정보도 999로 고정을 해줄 수 있도록 합니다.
이후에는 항상 체력이 999/999로 고정되어 사실상 무적 상태가 되는 것을 알 수 있습니다.
결과적으로 이와 같은 방식으로 체력 정보를 제외하고 다른 정보도 조작할 수 있습니다.
저는 공격력(ATTACK) 정보도 변수를 스캔해보았습니다.
이어서 공격력 변수를 메모리에서 스캔하여 주소 리스트에 등록했습니다.
결과적으로 공격력 또한 999로 고정하여 완전히 한 번의 공격으로 상대방의 포켓몬을 이기게 되었습니다.
'게임 해킹을 통해 배우는 정보보안' 카테고리의 다른 글
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ④ 상점 구매 가격 조작하기 (1) | 2018.09.03 |
|---|---|
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ② 경험치 및 레벨 조작하기 (0) | 2018.09.03 |
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ① 게임 실행 (0) | 2018.09.03 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 9단계 (0) | 2018.09.02 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 8단계 (6) | 2018.09.01 |
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ② 경험치 및 레벨 조작하기
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ② 경험치 및 레벨 조작하기
나동빈
이번 강좌에서는 자신의 컴퓨터에 설치된 포켓몬스터 파이어 레드 게임 내에서 경험치를 조작해보는 시간을 가져보도록 하겠습니다. 이 방법은 이미 잘 알려진 방법으로 치트 엔진의 가장 기본적인 기능만 이용해서 쉽게 조작할 수 있습니다.
경험치 및 레벨을 조작하기 위해서는 일단 포켓몬 대전에서 승리를 해야 합니다. 승리 이후에는 얼마만큼의 경험치가 늘어났는지 출력됩니다.
포켓몬스터는 옛날 게임이며 과거에는 정수를 나타낼 때 INT 자료형 대신에 SHORT 자료형을 사용하곤 했습니다. 그래서 '2 Bytes'로 경험치에 해당하는 값을 가지는 변수를 스캔하면 됩니다.
이후에 스캔을 하면 매우 많은 변수가 나오게 됩니다. 그 중에서 정확히 어떠한 변수가 경험치를 담고 있는지 알아내기 위해 한 번 더 대전을 해서 승리합니다.
이번에는 경험치 23을 얻었네요. 따라서 저는 다음과 같이 연속 스캔을 통해 경험치를 의미하는 변수만을 찾아보았습니다.
결과적으로 4개의 변수가 경험치와 관련되어 있다는 것을 확인할 수 있었습니다.
이제 이를 효과적으로 관리하기 위해 주소 리스트에 추가합니다.
이제 모든 변수의 값을 9999로 설정해 봅시다.
이후에 게임을 실행해보면 계속해서 레벨 업(Level Up)이 되는 것을 알 수 있습니다.
레벨 업이 될 때마다 4번째 변수만 값이 줄어드는 것을 확인할 수 있습니다.
따라서 값을 9999로 설정하고 변하지 않도록 고정해주었습니다.
그러면 다음과 같이 레벨이 50 이상으로 한 번에 쭉쭉 오르는 것을 확인할 수 있습니다.
'게임 해킹을 통해 배우는 정보보안' 카테고리의 다른 글
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ④ 상점 구매 가격 조작하기 (1) | 2018.09.03 |
|---|---|
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ③ 포켓몬 능력치 조작하기 (0) | 2018.09.03 |
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ① 게임 실행 (0) | 2018.09.03 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 9단계 (0) | 2018.09.02 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 8단계 (6) | 2018.09.01 |
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ① 게임 실행
치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ① 게임 실행
나동빈
이번 강좌에서는 치트 엔진을 이용해서 포켓몬스터 파이어 레드 버전 게임을 해킹해 보는 시간을 가져 볼 것입니다. 이번 강좌에서는 자신의 컴퓨터에 설치된 소프트웨어를 동적으로 분석하는 과정을 통해 어떠한 방법으로 컴퓨터 메모리 영역에 접근하여 데이터를 바꿀 수 있는지 학습하게 될 것입니다.
※ 포켓몬스터 파이어 레드 소개 ※
포켓몬스터 게임으로는 매우 많은 종류가 있습니다. 최신 게임 세대 분들은 잘 모르시겠지만 과거에 온라인 게임이 지금처럼 많이 발전하기 전에는 포켓몬스터 게임과 같은 CD 게임류를 정말 많이 즐겨 했습니다. 강좌의 대상으로 파이어 레드 게임을 잡은 이유는, CD 게임류를 해킹하는 것은 자신의 컴퓨터의 메모리만 조작하는 것이기 때문에 다른 사람에게 피해를 끼치지 않고 보안 공부가 가능하기 때문입니다.
국내에서는 포켓몬스터 골드(Gold) 버전 및 파이어 레드(Fire Red) 버전이 가장 유명합니다. 우리는 3세대 포켓몬스터 게임인 파이어 레드 버전을 대상으로 잡고자 합니다. 파이어 레드 버전은 2004년에 출시된 버전으로 지금까지도 사랑을 받고 있는 고전 게임이라고 할 수 있습니다.
※ 비주얼 보이 에뮬레이터 설치 ※
비주얼 보이 에뮬레이터는 다양한 옛날 게임을 현대의 컴퓨터에서 손쉽게 구동시키기 위해서 사용하는 가상환경 도구의 한 종류입니다. 비주얼 보이 에뮬레이터는 현재 오픈소스(Open Source)로 관리되고 있습니다. (깃 허브: https://github.com/visualboyadvance/visualboyadvance)
비주얼 보이 다운로드: https://romsmania.com/emulators/gameboy-advance/visualboyadvance-68
※ 포켓몬스터 파이어 레드 ※
본 강좌는 이 게임을 정품으로 구매한 사람이 직접 ROM 파일로 덤프(Dump)를 해서 자신의 PC에서 게임을 실행한다고 가정합니다.
(사실 유료 CD 게임들은 본인이 직접 구매해서 개인적인 목적으로만 덤프를 해서 사용하면 큰 문제가 없습니다. 다만 게임을 구매하지 않은 다른 사람에게 배포를 하면 법적인 처벌을 받을 수 있지요. 하지만 국내 포털 사이트를 포함하여 인터넷에 검색하면 포켓몬스터 골드, 파이어 레드 등의 게임을 매우 손쉽게 받을 수 있는 현실입니다.)
또한 본 강좌는 한글 패치 유무에 상관 없이 파이어 레드 게임에 동일하게 적용이 가능합니다.
※ 실행 화면 ※
일단 기본적으로 자신의 게임을 즐기면서 메모리를 조작 해보고 싶은 부분을 찾아보는 것을 추천드립니다.
저는 게임을 하면서 포켓몬의 레벨, 능력치 등의 요소를 조작해보고 싶다는 생각이 들었습니다.
※ 비주얼 보이 에뮬레이터 기본 사용 방법 ※
방향키: 게임 내에서 움직일 때 사용하는 키입니다.
Z: 게임 내에서 다양한 선택(Select)을 하도록 해주는 키입니다.
스페이스 바: 게임 실행 속도를 증가시킵니다.
'게임 해킹을 통해 배우는 정보보안' 카테고리의 다른 글
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ③ 포켓몬 능력치 조작하기 (0) | 2018.09.03 |
|---|---|
| 치트 엔진으로 포켓몬스터 파이어 레드 게임 해킹해보기 ② 경험치 및 레벨 조작하기 (0) | 2018.09.03 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 9단계 (0) | 2018.09.02 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 8단계 (6) | 2018.09.01 |
| 치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 7단계 (0) | 2018.09.01 |
