체력 부분을 썼으니 이번에는 총기 부분을
사실 어지간한 fps가 이런 노가다를 하면 총기 관련 핵(치트)을 찾을 수 있긴 합니다.
한 가지를 찾게 되면 다음이 꽤 쉬워지는 그런 편이라고 할까요.
우선 이전에 찾았던 총알 증가 명령어 쪽을 통해 총알 개수 주소를 찾아봅시다.
[rcx+2CC] 부분이 총알 개수가 담기는 곳이었죠.
현재 빨간색으로 드래그해놓은 곳이 총알 개수 값이 담긴 곳입니다.
주변을 보면 뭔가 4Byte, 8Byte 열로 끊었을 때 뭔가 주소라든가 Value가 담겨 있는 걸 볼 수 있습니다.
이것은 현재 들고 있는 총의 정보가 담겨 있는 그런 테이블이라고 보시면 편한데요.
제일 쉬운 막일은 4바이트씩 끊어서 find out accesses를 하면서 총을 쐈을 때
걸리는 곳이 있느냐 없느냐입니다.
이런 식으로 주변 메모리에 걸고 총을 쐈을때 반응하는 곳이 분명 있습니다.
반응하는 곳이 있다면 이 부분의 Value를 바꿔본다던가 하면 어떤 역할인지
정확하게 알 수 있겠지요.
내렸을 때 Float 형으로 0.079999..로 돼있습니다. 사실상 0.08이라 보면 될 거 같아요.
그러면 이거를 1로 올려보겠습니다.
1로 올리니까 총 쏘는 속도가 현저히 느려졌습니다.
그러면 이 부분은 총을 쏘는 총속에 해당한다 봐야겠네요. 그러면 0.07을 0.01로
바꿔 보도록 하겠습니다.
다음과 같이 정말 총 속이 되었습니다.
그러면 아까 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번 슬롯을 번갈아가며 쏴보니까
둘 다 걸리는 거 봐서는 이 명령어에서 모든 총의 발사 속도를 관리하는 것 같습니다.
이런 식으로 간단하게 hook을 짜보았습니다.
적용을 해보시면 모든 총기가 총속이 엄청 빨라지는 것을 확인할 수 있습니다.
생각보다 크게 어려운 작업이 아니죠?
근데 총속만 떡하니 쓰니까 화면이 반동 덕에 너무 위로 올라가고 흔들립니다.
이 반동을 없애버릴 수 있는 방법도 있으면 좋겠죠?
다음 시간엔 반동 부분으로 다뤄보도록 하겠습니다.
'Reversing & Cheat Engine' 카테고리의 다른 글
20. 간단한 게임 치트 도전 - 스피드핵 (0) | 2024.03.05 |
---|---|
19. 간단한 게임 치트 도전 - 무반동 (0) | 2024.03.04 |
17. 간단한 게임 치트 도전 - 데미지 (0) | 2024.03.02 |
16. 간단한 게임 치트 도전 - 무적 (0) | 2024.03.01 |
15. 간단한 게임 치트 도전 - 총알무한 (2) | 2024.02.29 |