18. 간단한 게임 치트 도전 - 총속
본문 바로가기
Reversing & Cheat Engine

18. 간단한 게임 치트 도전 - 총속

by boosting 2024. 3. 3.
728x90

체력 부분을 썼으니 이번에는 총기 부분을

 

사실 어지간한 fps가 이런 노가다를 하면 총기 관련 핵(치트)을 찾을 수 있긴 합니다.

한 가지를 찾게 되면 다음이 꽤 쉬워지는 그런 편이라고 할까요.

 

우선 이전에 찾았던 총알 증가 명령어 쪽을 통해 총알 개수 주소를 찾아봅시다.

 

SCMarine

 

[rcx+2CC] 부분이 총알 개수가 담기는 곳이었죠.

 

SCMarine

 

현재 빨간색으로 드래그해놓은 곳이 총알 개수 값이 담긴 곳입니다.

주변을 보면 뭔가 4Byte, 8Byte 열로 끊었을 때 뭔가 주소라든가 Value가 담겨 있는 걸 볼 수 있습니다.

이것은 현재 들고 있는 총의 정보가 담겨 있는 그런 테이블이라고 보시면 편한데요.

 

제일 쉬운 막일은 4바이트씩 끊어서 find out accesses를 하면서 총을 쐈을 때

걸리는 곳이 있느냐 없느냐입니다.

 

 

SCMarine

 

이런 식으로 주변 메모리에 걸고 총을 쐈을때 반응하는 곳이 분명 있습니다.

반응하는 곳이 있다면 이 부분의 Value를 바꿔본다던가 하면 어떤 역할인지

정확하게 알 수 있겠지요.

 

SCMarine

 

내렸을 때 Float 형으로 0.079999..로 돼있습니다. 사실상 0.08이라 보면 될 거 같아요.

그러면 이거를 1로 올려보겠습니다.

 

1로 올리니까 총 쏘는 속도가 현저히 느려졌습니다.

그러면 이 부분은 총을 쏘는 총속에 해당한다 봐야겠네요. 그러면 0.07을 0.01로

바꿔 보도록 하겠습니다.

 

SCMarine

 

다음과 같이 정말 총 속이 되었습니다.

그러면 아까 find out accesses 했을 때 뜬 명령어 쪽을 한 번 봅시다.

 

SCMarine-Win64-Shipping.exe+19FCDD3 - F3 0F10 B7 B0020000   - movss xmm6,[rdi+000002B0]
SCMarine-Win64-Shipping.exe+19FCDDB - 45 33 C0              - xor r8d,r8d
SCMarine-Win64-Shipping.exe+19FCDDE - 33 C9                 - xor ecx,ecx
SCMarine-Win64-Shipping.exe+19FCDE0 - 48 8B F0              - mov rsi,rax

 

이 구간인데요. 샷건을 먹고 1,2번 슬롯을 번갈아가며 쏴보니까

둘 다 걸리는 거 봐서는 이 명령어에서 모든 총의 발사 속도를 관리하는 것 같습니다.

 

SCMarine

 

이런 식으로 간단하게 hook을 짜보았습니다.

적용을 해보시면 모든 총기가 총속이 엄청 빨라지는 것을 확인할 수 있습니다.

생각보다 크게 어려운 작업이 아니죠?

 

근데 총속만 떡하니 쓰니까 화면이 반동 덕에 너무 위로 올라가고 흔들립니다.

이 반동을 없애버릴 수 있는 방법도 있으면 좋겠죠?

다음 시간엔 반동 부분으로 다뤄보도록 하겠습니다.

728x90