2012-03-09 8 views
2

네트워크로 연결된 약간의 플래시 게임을하고 있습니다. C/Linux에 내장 된 자체 서버가 있고 플래시 소켓을 통해 서버에 연결합니다. 나는 게임 논리의 부하를 클라이언트 또는 서버에 넣을 것인지에 대해 논쟁 중입니다. 주요 관심사는 누군가 코드를 해킹하고 다른 사람들을 위해 게임을 파괴하는 것입니다.hackable은 (는) ActionScript 코드입니다.

내가 할 수있는만큼 많은 논리를 서버에 넣었을지라도 누군가가 코드를 해킹하여 서버로 전송되는 내 메시지를 파악하면 모든 침입을 막을 수없는 것처럼 보입니다.

어떻게해야하며 AS3 해커에 대해 걱정해야합니까?

+1

"해킹 가능성"에 대한 통계는 무엇입니까? –

+0

코드를 난처하게 만들 수 있습니다. 그렇게하는 앱이 몇 가지 있습니다. – Eric

답변

3

예, swf를 디 컴파일하여 원하는대로 쉽게 수정할 수 있습니다. 위험은 상당히 낮습니다. 그러나 가능한 큰 화폐 보상이 있다면, 그렇습니다. 나는 조심합니다.

그래서, 내 조언은 다음과 같습니다

  • 클라이언트
  • 에 높은 위험 로직을 넣지 마십시오 그러나 클라이언트에서 높은 비용 알고리즘을 넣어 않습니다.

편집 : 나는 한 번 더 포인트를 추가하고 싶습니다. 서버가 클라이언트에 게임의 일부 상태를 의지하는 경우 Charles과 같은 도구를 사용하여 요청을 프록시, 검사 및 수정할 수 있습니다. 누군가는이 도구를 사용하여 요청에 대한 중단 점을 설정 한 다음 서버로 전달하기 전에 결과를 수정할 수 있습니다. swf를 디 컴파일하고 수정하는 것보다 훨씬 쉽습니다.

수업은 정직한 클라이언트 사용에 의존해서는 안됩니다.

+0

감사합니다. 그러나 서버에 내 논리를 모두 넣더라도 내 클라이언트가 서버에 보내는 메시지를 찾아 내면 혼란이 야기 될 수 있습니다. 나는 그것을 피할 수있는 방법을 모른다. 그렇지? –

+0

예, 클라이언트가 항상 클라이언트 응용 프로그램이 속일려고한다는 것을 결코 믿지 않습니다. 모든 패킷을 확인하십시오. 그것은 게임이기 때문에 클라이언트는 어쨌든 "벙어리"해야합니다. 클라이언트에 게임 논리가 없습니다. 예측을 위해 일부 로직을 미러링하는 것은 괜찮지 만 서버가 담당 서버인지 확인하십시오. – Feltope

+0

이것은 지금까지 가장 큰 해답 중 하나입니다. 최근에 C#, Java 및 Delphi 코드로 프로젝트 디 컴파일러를 완벽하게 실행하는 것을 보았지만 이것이 응용 프로그램 작성을 중단하지는 않습니다. 최선의 해킹 방법을 따르십시오. 모든 것이 정상입니다. 모든 파일을 컴파일하기가 어렵다면 즉시 컴파일 할 수 있습니다. –

0

플래시 코드는 매우 쉽게 해킹 할 수 있습니다. 나는 틀릴 수도 있지만 swf를 디 컴파일 할 때 완전한 디 컴파일이라고 생각합니다. 변수의 원래 이름과 모든 것을 제공합니다. 게임이 실행되는 동안 메모리를 수정하기 위해 Cheat Engine과 같은 도구를 사용하는 것도 상당히 쉽습니다. 의도적으로 코드와 데이터 구조를 난독 화하지 않는 한 대부분의 계산을 서버에 두는 것이 좋습니다.

+0

기본적으로 모든 코드가 해킹 당할 수 있지만이 코드는 해킹 당할 수 있습니다. (예 : html-js 프로젝트) 즉석에서 보냄이 쉽다는 것을 의미합니다. –