1. 해당 게임에서 사용하는 메모리 영역 스캔떠놓고 현재 레벨로 검색 (예를들면43) 2. 게임에서 쓰는 메모리중에 43인걸 모두 검색해줌, 이후에 레벨업 해서 44로 만듦 3. 게임에서 쓰는 메모리중에 44인걸 모두 검색함 보통 두번하면 다 추적되는데 안되면 한번 더하면(45로 만든다음에 검색) 딱 하나의 메모리가 찾아지고 그 값이 레벨값 저장하는 메모리임 그걸 에디터로 수정할수 있음
수정 후 레벨값을 가지고 다른 여러가지 값들을 계산해서 사용한다면 상관 없는데 레벨별 능력치 테이블같은걸 가지고 있어서 51에 해당하는 능력치 값들을 가져와야하는 상황이 발생하면 값을 불러오지 못해 에러가 발생할수 있음
삼국지 영걸전이나 대항해시대2, 프린세스 메이커2 같은 게임을 메모리 편집툴사용해서 돈이나 능력치를 뻥튀기 시키면서 놀았던 30년전의 제 중학생 시절이 문득 생각나네요.ㅋㅋ
게임이 레벨업을 어떻게 구혔했느냐에 따라 다르겠지만. RPG게임이면 아마도 경험치에 따른 레벨테이블을 가지고 있을거에요. 경험치를 저장하고. 그것을 레벨업에 필요한 경험치 테이블에 맞게 계산해서 현재 레벨을 결정하는 방식이죠. 레벨업에 제한이 있다면. 몇 레벨 이상일 경우 더이상 경험치가 쌓이지 않는다거나.. 하는식의 제한일 텐데. 그 제약에 대한것은 메모리편집으로 뚫는것이 불가능하다고 생각합니다. 예를들어 레벨 제한이 50인데 그 레벨 제한이 몇인지에 대한 내용이 코드상에 하드코딩 되어 있는것이면 메모리 해킹으로 그 참조를 수정할 수 없기때문에 레벨제한 해제가 불가능할 것입니다. 만약 메모리의 어느공간에 변수형태로 선언하여 참조하고 있다고 가정하더라도 그것이 메모리의 어느 위치에 있는지 찾는것은 매우 어렵겠죠. 다른 값처럼 플레이어가 그 값을 변화하게 하고 메모리 검색을 통해 그것이 저장된 주소를 추적할 수 있는 것이 아니니까요.
실행파일(바이너리)를 디컴파일하여 코드를 분석하는 방법이 있겠지만… 난독화(클래스명. 메서드명. 변수명을 알기 어렵게 전부 고쳐서 컴파일함)를 거치고 릴리즈된 게임이라면 디컴파일하여 코드를 구할 수 있다고 해도. 코드를 알아볼 수가 없습니다. 난독화를 하지 않아서 온전한 코드를 얻게 된다면 가능성은 생깁니다만. 코드 분량이 상당히 방대할 것이니. 어떤 단서없이는 마치 서울에서 핸드폰도 없는 김서방 찾는 느낌일 것이고. 수정을 하는데 성공했다 해도. 개발환경을 세팅하여 다시 코드를 빌드하는것이 쉬운일은 아닙니다.
위에 고수 분들이 이미 설명을 많이 하셨네요. 제가봐도 렙제는 못풀겁니다. 대신 아래는 직접 해보거나 선배가 짠 걸 보긴 했습니다.
- (직접사용) PCTools 로 삼국지 1 세이브파일 열어서 장수 능력치 올리기 - (직접사용) PCTools 로 젤리아드 세이브파일 열어서 못구한 열쇠 채우기 - (직접구현) 싸이월드 시절, 애니팡같은 게임이었는데, 같은 그림 찾아주는 프로그램 제작 - (직접구현) 귀무자2 에서 퍼즐 푸는 프로그램 제작 - (직접구현) 스마트폰 게임 Unblock Me 푸는 프로그램 제작 - (직접구현) 핸드폰게임 푸시푸시 (소코반) 푸는 프로그램 제작 (후반부는 한나절 돌려도 안되서 포기) - (옆에서 봄) 디아블로 2, 아마존 공속 프레임 표시하는 프로그램 개발 - (옆에서 봄) 디아블로 2, 뭔 버튼 누르면 자동으로 조던링이 상대방 창으로 이동시키는 프로그램 개발 - (옆에서 봄) 디아블로 2, 아이템 매니아였나? 게시판에 아이템 판다고 글 올렸는데 시간 지나 다음창으로 넘어가면 자동으로 글삭제 -> 새글 올림 하는 프로그램 개발
무슨 게임 하시는지는 몰라도 저거 공부하고 개발해서 이바닥에서 뛰실 거 아니면 그냥 1만원, 2만원 현질해서 고급 무기 사다 장착하는 걸 추천드립니다. ^^
게임 엔진은 별도로 구동하고 속성값 같은걸 따로 Xml이나 json 형태로 만들어두고서 그 값을 읽어서 게임 엔진을 통해 그 값들을 구현하는 방식으로 작동하는 게임들이 있습니다. 예를 들면 문명 같은 시리즈류는 그 xml파일의 값들을 분석해서 바꾸면 쉽게 모드를 만들수 있어요. 다른 게임들중에 비슷한 방식의 게임이라면 종종 자체적인 특이한 파일 확장명을 가진 파일을 에디터로 바로 열어보거나 zip으로 바꿔서 풀어보시면 내용을 확인해 볼 수 있습니다.