• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

클라이언트의 소스 자체를 해커가 바꿀경우..

21.05.24 22:10 작성 조회수 135

0

안녕하세요, 스승님..

질문이 있습니다.

Speed를 서버를 통해 받아오더라도.,

updateMoving()의 소스 자체를 해킹 당하면

캐릭터 이동속도 핵은 생기지 않나 궁금합니다.

예를 들어 스르륵 이동하는 코드의 Speed를 서버에서 받아오더라도,

transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime ;

=> 

transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime *2; 

이렇게 수정한다면, Destination 에 더빨리 도착하여

더 빨리 이동하겠다는 패킷을 빨리 보낼 수 있지 않나 싶어서요..

이 경우 서버에서도 스르륵 부분을 구현하여 대략 어느정도 도착할 시간을 비교해서 구별하는 부분을 추가하여 대처를 해야하는 것이 맞는 것인지 궁금합니다..

늦은 시간 질문드려 죄송합니다!

늘 상세히 답변 주시어 정말 감사드립니다.

답변 1

답변을 작성해보세요.

2

맞습니다.
강의에서는 귀찮아서(?) 스킵했지만
서버에서도 이동/스킬 등 모든 부분에 대한 연산을 러프하게 체크를 해줘야 합니다.
예전에 롤에서도 점멸을 쿨없이 쓰는 핵이 있었는데,
서버에서 쿨타임 체크를 누락하고 클라 말만 믿고 실행해서 생긴 버그겠죠.

댕진형님의 프로필

댕진형

질문자

2021.05.24

와우 빠른 답변 감사드립니다 ㅠ 러프하게 체크 후 서버에서 할 수 있는건 그 IP를 저장하고 팅기게 하는 법 밖에 없겠지요..? 물론 서버에서 아예 쿨 다되었다는 신호를 받은 다음에야 스킬을 쓰거나 이동하게 할 수도 있겠지만, 그 경우에는 아주 미세하게 컨트롤이 지연될 수 있으니까요..?

보통 킥해주는 선에서 마무리 되겠지만,
반복적이고 심각한 악용이 있다면
해커 계정에 대한 로그를 남겨서
나중에 퍼블리셔쪽에서 계정 블락을 해주면 됩니다.

클라에서 렉이 걸려서 순간적으로 틱이 튀면
서버와는 많이 다르게 좌표가 계산될 수 있기 때문에
대부분의 경우 그냥 킥 정도면 대부분 충분합니다.
저도 어릴적 해외에서 PC 리니지에 접속할 때,
스피드핵 의심된다면서 킥 당해서 재접하고 한 기억이 있네요.

댕진형님의 프로필

댕진형

질문자

2021.05.31

ㅠㅠ 소중한 답변 및 경험담 감사드립니다..

한번 완강하고 다시 첨부터 정주행하면서 온라인게임을 만들고 있습니다. (3~4번은 계속해서 반복해서 볼 예정입니다. )

미천하더라도 완성되는날 꼭 공유드릴 수 있도록 하겠습니다.. 감사합니다!