16. 간단한 게임 치트 도전 - 무적
본문 바로가기
Reversing & Cheat Engine

16. 간단한 게임 치트 도전 - 무적

by boosting 2024. 3. 1.
728x90

 

이번에는 다른 수치를 건드려보자

 

화면을 한 번 보셨으면 아시겠지만 가장 눈에 띄는건 역시 체력일 것입니다.

맞아도 체력이 안 떨어지는 식으로 설정을 하여 봅시다.

 

우선 이 게임에서의 체력은 Float 형으로 다루고 있습니다.

그러므로 Float 타입으로 맞추고 100을 스캔 후 맞으면서 넥스트 스캔을 해봅시다.

 

SCMarine

 

바로 이런식으로 2개의 주소가 나왔고 1개는 말 그대로 출력만 해주는 값이고

1개는 실제 피통 값입니다. 사실 이걸 100으로 고정을 하든 하면 끝이겠죠.

그러면 이걸 게임 실행때마다 계속 찾아야 하는 번거로움이 있겠죠.

이를 해결까지 하면 완벽할 것 같습니다.

 

 

실제 피값(여기선 1번째 주소)에다가 Find out accesses를 걸고 한 대 맞아봅시다.

 

SCMarine

 

맨 위에 카운팅이 엄청 높은건 피통의 내용을 계속해서 읽어가야 하기 때문에

도는거라고 가정하고 빼면 남은 8개가 맞았을 때 혹은 회복 아이템을 먹었을 때의 변동에

걸리는 명령어들입니다.

 

우선 첫번째로 나온 7FF77BDBDC0E - F3 0F10 89 A4000000  - movss xmm1,[rcx+000000A4] 에

디버깅을 걸어봤습니다.

 

SCMarine

 

근데 여기는 플레이어의 피통도 관리하지만 더불어 적, 그러니까 여기선 저그죠.

저그 유닛의 피통도 다 읽어와서 처리하는 구간입니다.

마땅히 플레이어의 피통 주소만 읽기에는 명확하게 구분 되어지는게 없는 듯 합니다.

 

그렇다면 저 rbx+A4들 가지고 노는 곳들 중에 플레이어의 피통만을 관리하는

명령어가 분명히 있긴 있을것입니다. 하나 하나 디버깅 걸어서 적군을 때렸을때

걸리는지 안 걸리는지 확인을 해봐야할 거 같아요.

 

SCMarine

 

쭉 해보시면 이 부분의 주소가 적을 때렸을 때 걸리지 않습니다.

지금 걸려있는건 제가 저그 유닛에게 맞아서 피통이 감소할 때 걸린 것입니다.

그러면 여기서 얻는 [rax+A4]가 내 실제의 피통이라는 뜻이겠죠.

 

SCMarine

 

이 부분을 간단하게 Hooking을 해보았습니다.

그런데 위에 보면 MyHealth라는 임의의 공간을 만들고 주소를 옮겨놨는데

이는 다음 글에서 다뤄볼 것입니다. 

 

이 Hooking만으로 나의 피통은 100이 고정이 되어서 적에게 아무리 맞더라도

죽지 않는 상태가 완성 되었습니다. 한 번 확인 해볼까요?

 

SCMarine

 

게임 치트의 경우 하나하나 찾아가면 연동 되어지는게 많다보니 다른 치트들도

걸려서 나오는 경우가 많기 때문에 노가다를 한다고 해서 손해는 절대 아닙니다.

뭐라도 건지게 되어 있어요.

한 번 쭉 보시면서 천천히 해보시길 바랍니다.

728x90