0

본인은이 소프트웨어를 직접 작성하지는 않지만 문제를 해결하는 방법을 알지 못합니다. 문제를 설명하는 가장 좋은 방법으로, 나는클라이언트 상태 업데이트에 대한 서버의 난독 화 또는 숨기기

  • 플레이어 A는 서쪽
  • 플레이어 B에 직면 일부 수풀에 숨어 ... 가상의 멀티 플레이어 1 인칭 슈팅 게임에서 특정 시나리오를 설명 할 것이다 동쪽에서 A 플레이어에게 몰래 뛰어 오르거나 플레이어 A 뒤에 숨어있다.

이 게임을 위해 작성된 인기있는 "해킹"은 플레이어 A가 플레이어 B의 위치를 ​​보여주는 레이더를 갖게하는 것이다. 그는 화면에서 플레이어 B를 볼 수 없으며 게임은 레이더를 지원하지 않습니다. 이 해킹은 서버가 특정 범위 (모든 플레이어 A의 클리핑 플레인) 내의 모든 플레이어에 대한 정보를 플레이어 A의 클라이언트에게 전송하기 때문에 가능합니다. 서버가 플레이어 A의 뷰 프레임 내의 플레이어에 대해서만 플레이어 A의 클라이언트에게 정보를 보내려고 시도하는 것은 현실적이지 않습니다 (아는 한). 서버는 근처의 모든 플레이어에 대한 정보를 플레이어 A의 클라이언트에게 보내야하기 때문에 플레이어 A는 레이더를 화면에 오버레이하는 해킹을 작성할 수 있습니다.이 해킹은 클라이언트로 전송 된 데이터를보고 적의 플레이어 상태 업데이트를 가져와 채워집니다. 나는 이것이 일반적으로 "레이더"또는 "벽"해킹으로 알려져 있다고 생각합니다.

클라이언트에게 보낸 정보에서 적 플레이어의 상태 업데이트를 난독 화하거나 숨길 수있는 방법이 있습니까? 내가 아는 바로는 암호화가 실시간 솔루션에 적합하지 않을까요? 서버가 플레이어 A의 뷰 프레임 내의 플레이어에 대해서만 상태 업데이트를 보낼 수 있었던 경우에도 플레이어 A의 해킹을 통해 위장이나 숨겨진 개체 (아마도 사소한 방식으로 투명했을 가능성이 높음) 뒤에 숨어있는 플레이어가 표시 될 수 있습니다.

내가 실제로 생각할 수있는 유일한 방법은 "펑크 더 (punkbuster)"솔루션을 구현하는 것입니다. 즉, A 플레이어의 클라이언트가 불법적 인 프로세스를 정기적으로 스캔하게합니다. 대중적인 해킹이 모니터 될 것이라는 아이디어입니다. 대중적이지 않은 해킹은 너무 작아서 지나칠 수없는 플레이어 기반에 영향을 미칩니다.

답변

2

그게 유일한 방법입니다. 펑크 더에 덧붙여, Warden (위키 피 디아를 넘어, 내가 여기에 링크하지 않을 흥미로운 것들이 많이있다.)에 관한 연구를해야한다. 그것은

클라이언트는 적의 손에 ... laws of online world design 주어진 매우 흥미로운 싸움이다.

또 다른 요소는 비디오 드라이버를 장점을 제공하는 수정 된 드라이버로 대체한다는 것입니다 (불투명하거나 강조 표시되며 플레이어는 "눈이 멀게"할 수 없습니다). 어떤 게임이 modded 드라이버를 확인하는지 모르겠습니다.

+0

소장님이 한 번 나를 소유 :> – Konstantinos

+0

hehehe, imho 만약 당신이 속이고 있지 않다면 노력하고있는 것이 아닙니다! : D –

+0

블리자드가 다른 게임에 대해 와든의 사용을 허가한다면 어떤 생각이 드나요? 돈을 인쇄 할 수있는 라이센스에 대해 이야기하십시오 (WoW 외에). – Ross

1

Everquest 게임에서 이와 같은 작업을 수행하는 "eqmon"이라는 프로그램이있었습니다. 처음에는 게임 패킷이 완전히 암호화되지 않았고 전체 레벨에 대해 모든 문자 (PC와 NPC 모두)가 포함되었습니다. 결국, 그들은 암호화를 사용하여 패킷을 스누핑하는 것을 더 어렵게 만들었지 만, eqmon은 암호화 키를 강요하여 주위를 둘러 쌌습니다 (서버에 레벨을 입력 할 때마다 새 키가 생성되어 때로는 몇 분이 걸렸습니다. 키를 해독하기 위해). 그런 다음 클라이언트가 특정 위치 범위 내의 PC 또는 NPC에 대한 업데이트 만 수신하도록 변경했습니다. 이것은 eqmon을 캠핑과 "희귀 한 산란"을 동일한 수준에서 멀리 모니터링하는 데 덜 도움이되었습니다.

2

간단한 암호화는 오늘날의 하드웨어에서 실시간으로 실행될 수 있지만 클라이언트가 암호화 된 데이터에 액세스하려면 키가 있어야합니다.클라이언트가 키를 가지고 있다면 치타 프로그램이 키를 찾아서 검색하는 것이 너무 어렵지는 않습니다. 가장 좋은 방법은 서버가 B를보기 위해 가능한 한 B의 위치를 ​​A에게 전송하는 것입니다. 속임수는 가능하지만 다소 적게는 가능합니다.

B가 숨어 있지만 작은 부분이 보일 수있는 경우 가능한 해결책은 서버가 단순히 이라는 문자가 B 위치에이라고 말하는 것입니다. 그것은 바위 또는 이것 저것일지도 모른다. 문제는 클라이언트가 뭔가를으로 렌더링 할 수있게하려면 서버가 상당히 정확한 설명을 제공해야한다는 것입니다. 오늘날의 멀티 플레이어 게임은 서버의 기능을 시뮬레이션하여 대기 시간을 가짜로 만든다는 점을 감안할 때, 대기 시간이 매우 짧은 네트워크를 구축해야만 가능성이 높습니다.