2017년 2월 11일 토요일

오버워치 에임핵 ct의 모든 것 3 - 좌표편2 - VisibleHook 패치법

지금까지 MouseHook, SpeedUp 부분을 살펴보았고, 마지막 남은 후킹 포인트는 VisibleHook 부분이다. 이전 포스팅에서 벽구분 결과를 파인드하면 나오는 옵코드가 mov [rbx+78],al 였는데 바로 거기다. 이해가 안되면 아래 영상을 다시 보도록 하자. 당연히 여러 같은 결과들 중에서 콜을 몰아 준곳만 후킹한다.

먼저 적 번호에 대한 이야기를 하겠다. 아래 사진을 보자.

mov rbx,[rsi+60] 에 적 번호를 넣어주는 것을 알 수 있다. 에임핵에서 적 번호는 많은 적 중에서 마우스 이동을 최소로 하는 적을 찾아 내기 위해 활용된다. Overwatch.exe+113EC5B - inc [rsi+60] 는 적 번호를 증가시키는 코드다. 좀더 아래를 보면 적 번호를 가지고 루프를 도는 것도 알 수 있다. 눈치가 있다면 총 적 수를 어떻게 구하는지도 감이 올 것이다. 바로 Overwatch.exe+113EC6B - cmp eax,[rsi+50] 에 나와 있다. 게임이 패치됬을 때는 적 번호를 어떻게 구하는지 옵코드를 다시 살펴보고 스크립트를 수정하면 된다.


두번째로 적 좌표와 자신의 좌표를 넣는 구간이다. 아래를 보자.


스크립트 주석에 친절하게도 enemy, me라고 적혀져 있다. 이전 포스팅에서도 말했지만 Overwatch.exe+113EC29 - lea rcx,[rbp+000000A0] 여기가 적과 나의 좌표가 모두 있는 곳이라고 설명했다. 따라서 xmm0 레지스터엔 오프셋 0인 [rbp+A0], xmm1 레지스터엔 오프셋 10인 [rbp+B0]의 내용이 복사된다. 게임이 패치되면 적절히 옵코드를 다시 살펴보고 스크립트를 수정하면 된다.

VisibleHook 스크립트의 나머지 부분은 위와 같이 얻은 적 번호와 좌표를 가지고 연산을 하여 조준점이 적을 향하게 한다. 지금까지 ct패치법은 모두 설명했다. 다음 장부터 설명할 내용은 에임핵의 원리에 대한 내용이다.

댓글 3개: