기타게임 게임 스피드핵에 대해 알아보자(feat::cheatengine)
컨텐츠 정보
- 21 조회
- 0 추천
- 0 비추천
-
목록
본문
작성자: 작성자 없음
안녕하세요
여러분들이 잘알다싶이하는 스피드핵에 대해 알아볼려고합니다
여러분들도 게임을 하다보면 막 사람이 수수숙~ 지나가거나 스킬을 빨리쓰는모습을 볼수잇을텐데요
이게 스피드핵입니다
이제 스피드핵의 원리를 알아보기 전에 여러분들도 잘알다싶이(?)한 cheatengine을 먼저 설명드릴려고합니다.
(치트엔진을 모르시는분들은 : http://www.cheatengine.org/ 여기서 다운받으실수 있습니다)
[이미지 링크 만료]
[이미지 링크 만료][이미지 링크 만료]
최신버전인 6.7버전입니다.
여기서 컴퓨터 처럼생긴 아이콘을 클릭해주시면
[이미지 링크 만료]
이렇게 process list 가 나옵니다.
핀볼을 클릭해주시고 오픈을 누르시면
창이 활설화 되면서 누를수 없는 부분을누룰수잇습니다
[이미지 링크 만료]
이 enable speedhack 을 눌러주시면
[이미지 링크 만료]
이런식으로 창이 뜹니다
[이미지 링크 만료]
한번 speed 5로 핀볼플레이를 해보겟습니다.
[이미지 링크 만료]
bandicam 2017-12-24 21-45-33-668.avi
이렇게 게임속도가 엄청빨라집니다 !!!
온라인 게임에서 이런식으로 된다면 정말 큰일이겟죠?
[이미지 링크 만료]
( 스피드핵 엔블 dll이 인젝션된 timegettime 함수입니다)
사실 이것만 봐도 대충 스피드핵의 기본은 알게된겁니다
---------------------------------------------------------------------------------------------------------------------------------------------------------------
이제 중요한 스피드핵의 원리에대해 설명하겟습니다
스피드핵은 대부분(GETTICKCOUNT/TIMEGETTIME) 두개의 함수를 후킹합니다 (치트엔진은 3개인데 1개가 query 뭐시란데 기억이안나네요)
여기서 우리가 볼 함수는 TIMEGETTIME의 함수입니다
timegettime 은 ntdll.alldiv를 호출합니다
여기서 파라미터
PUSH 00
PUSH 0002710
PUSH EDX
PUSH EAX
이렇게 4개의 인자를 가지고 call 하게됩니다
여기서 3번쨰 파라미터인 [PUSH 00002710] << 가 스피드를 결정하는 숫자입니다
2710이란?! 16진수값으로 10진수로는 10000 의 값입니다
이걸 5000으로 바꾼다면 스피드가 2배가되고 20000으로 바꾼다면 2배 느려집니다...
느릴필요는없겟죠? 그래서 이 인자값을 1388(16h) = 5000(10h) 으로 바꾼다면 스피드가 2배 9c4(16h)=2500(10h) 이면 4배가 되겟죠???
이렇게 쉽게 인자를 바꾸면 될거같지만 실제 온라인게임에선 이런방식을 대부분알고 안티스피드핵을 구현해놧을겁니다
왜냐하면 모든 주소에서 이함수를 call하는 호출주소가 엄청많기떄문에 팅길우려도잇기떄문입니다
그래서 사람들은 IAT 후킹 이라는걸 하게됩니다만
이건 본문의 내용가 맞지않기때문에 설명은하지않겟습니다(검색 ㄱㄱ)
이상으로 스피드핵에 대해 알아보앗고 마치겟습니다.
봐주셔서 감사합니다 ^^
-
등록일 00:20
-
등록일 08.20
-
등록일 08.10VMware 네트워크 IP 설정댓글 2
-
등록일 08.08