2011-01-31 6 views
0

나는 서버에 다시 보고서를 위조 (일명 해킹)하지 않도록하는 게임용 점수 제출 시스템을 작성 중입니다.데이터 제출 프로그램을 해킹하는 방법

요청에 대한 인증 또는 암호화를 위해 암호 또는 개인 암호 키를 저장할 수 있지만 프로그램이 디 컴파일 된 경우 교활한 해커가 암호/암호 키를 추출하여 보고서를 위조 할 수 있음을 알고 있습니다.

완벽한 솔루션이 있습니까?

미리 감사드립니다.

답변

2

아니, 당신이 할 수있는 일은 사기꾼들이 힘들게 만드는 것입니다.

실행중인 환경을 말하지 않지만 코드 인증 문제 *를 해결하려고하는 것처럼 들리지만 실행중인 코드가 실제로 생각한 것임을 알 수 있습니다. 이것은 온라인 게임을 영원히 괴롭 히고 좋은 해결책이없는 문제입니다. 에 제출을 수정하는 디버거를 사용

  • 부정 행위를 할 수 있도록 바이너리를 수정

    • 캡처, 수정 및 제출의 재생을 서버
    • 에 : 이러한 시스템은 일반적으로 파괴되는

      일반적인 방법 - 프로그램이 서명/암호화/무엇이든 적용하기 전의 메모리

    펑크스터는 이러한 문제 중 일부를 해결하려고 시도하는 시스템의 예입니다. : http://en.wikipedia.org/wiki/PunkBuster

    또한이 게임을 위해 너무 열심히 아마, http://en.wikipedia.org/wiki/Cheating_in_online_games

    기회는 생각. 바이너리에서 공개 키를 숨기고 모든 것을 사인하면 아마도 보안 관점에서 당신을 훨씬 능가 할 것입니다.

    * 죄송 합니다만, 나는이 사실에 대한 공식 이름이 실제로 무엇인지 기억하지 않습니다. 나는 "코드 인증 실행"을 계속 생각하고 있지만 구글은 그 용어에 대해 아무 것도 제시하지 못했다.

  • +0

    그건 수치스러운 일입니다. 자세한 답변을 주셔서 감사합니다. – Garrows

    1

    당신이 할 수있는 한 가지 일이 있습니다 - 모든 사용자 입력을 기록하고 제출물의 일부로 서버로 전송하십시오. 그런 다음 서버는 점수를 결정하기 위해 게임 엔진의 로컬 복사본을 통해 입력을 재생할 수 있습니다. 물론 이것은 모든 유형의 게임에 적절하지 않습니다. 게임에 따라 재생 방지 기능이 필요할 수도 있습니다.


    게임의 일부 유형에 적합 할 수있는 또 다른 방법은 제출 내에서 높은 점수 플레이의 비디오 녹화를 포함하는 것입니다. 의심스러운 항목을 신고 할 수있는 링크와 함께 고득점 테이블의 동영상 링크를 제공하십시오. 이것은 당신에게 "군중 - 소스"치트 탐지를하게합니다 - 치어 리더의 점수가 1 위의 테이블에 도달하면 2 점에서 10 점 뒤에있는 플레이어가 비디오를 확인하는 데 큰 인센티브를줍니다. 점수가 충분히보고되면 비디오를 직접 확인하고 제거해야하는지 (그리고 사용자가 금지하는지) 결정할 수 있습니다.

    +0

    흠 ... 그건 꽤 똑똑 하네. 감사. – Garrows

    +0

    @ Garrows : 작동하는 방법에 대한 또 다른 아이디어가 있습니다. – caf

    +0

    아마도 최고가 될 것입니다.봇 또는 컴퓨터 지원 플레이어는 여전히 가능합니다. 그리고 게임을 작동시키는 이런 종류의 리플레이가 결정 론적 일 필요가있는 기술적 인 문제가 있습니다. 예를 들어, 순서가없는 특정 컨테이너에 대한 부동 소수점 반올림 또는 반복에 문제가있을 수 있습니다. 그리고 물론 멀티 스레딩은 올바른 잠금을 사용하더라도 비결정론으로 이어질 수 있습니다. – CodesInChaos

    관련 문제