나는 서버에 다시 보고서를 위조 (일명 해킹)하지 않도록하는 게임용 점수 제출 시스템을 작성 중입니다.데이터 제출 프로그램을 해킹하는 방법
요청에 대한 인증 또는 암호화를 위해 암호 또는 개인 암호 키를 저장할 수 있지만 프로그램이 디 컴파일 된 경우 교활한 해커가 암호/암호 키를 추출하여 보고서를 위조 할 수 있음을 알고 있습니다.
완벽한 솔루션이 있습니까?
미리 감사드립니다.
나는 서버에 다시 보고서를 위조 (일명 해킹)하지 않도록하는 게임용 점수 제출 시스템을 작성 중입니다.데이터 제출 프로그램을 해킹하는 방법
요청에 대한 인증 또는 암호화를 위해 암호 또는 개인 암호 키를 저장할 수 있지만 프로그램이 디 컴파일 된 경우 교활한 해커가 암호/암호 키를 추출하여 보고서를 위조 할 수 있음을 알고 있습니다.
완벽한 솔루션이 있습니까?
미리 감사드립니다.
아니, 당신이 할 수있는 일은 사기꾼들이 힘들게 만드는 것입니다.
실행중인 환경을 말하지 않지만 코드 인증 문제 *를 해결하려고하는 것처럼 들리지만 실행중인 코드가 실제로 생각한 것임을 알 수 있습니다. 이것은 온라인 게임을 영원히 괴롭 히고 좋은 해결책이없는 문제입니다. 에 제출을 수정하는 디버거를 사용
일반적인 방법 - 프로그램이 서명/암호화/무엇이든 적용하기 전의 메모리
펑크스터는 이러한 문제 중 일부를 해결하려고 시도하는 시스템의 예입니다. : http://en.wikipedia.org/wiki/PunkBuster
또한이 게임을 위해 너무 열심히 아마, http://en.wikipedia.org/wiki/Cheating_in_online_games
기회는 생각. 바이너리에서 공개 키를 숨기고 모든 것을 사인하면 아마도 보안 관점에서 당신을 훨씬 능가 할 것입니다.
* 죄송 합니다만, 나는이 사실에 대한 공식 이름이 실제로 무엇인지 기억하지 않습니다. 나는 "코드 인증 실행"을 계속 생각하고 있지만 구글은 그 용어에 대해 아무 것도 제시하지 못했다.
당신이 할 수있는 한 가지 일이 있습니다 - 모든 사용자 입력을 기록하고 제출물의 일부로 서버로 전송하십시오. 그런 다음 서버는 점수를 결정하기 위해 게임 엔진의 로컬 복사본을 통해 입력을 재생할 수 있습니다. 물론 이것은 모든 유형의 게임에 적절하지 않습니다. 게임에 따라 재생 방지 기능이 필요할 수도 있습니다.
게임의 일부 유형에 적합 할 수있는 또 다른 방법은 제출 내에서 높은 점수 플레이의 비디오 녹화를 포함하는 것입니다. 의심스러운 항목을 신고 할 수있는 링크와 함께 고득점 테이블의 동영상 링크를 제공하십시오. 이것은 당신에게 "군중 - 소스"치트 탐지를하게합니다 - 치어 리더의 점수가 1 위의 테이블에 도달하면 2 점에서 10 점 뒤에있는 플레이어가 비디오를 확인하는 데 큰 인센티브를줍니다. 점수가 충분히보고되면 비디오를 직접 확인하고 제거해야하는지 (그리고 사용자가 금지하는지) 결정할 수 있습니다.
흠 ... 그건 꽤 똑똑 하네. 감사. – Garrows
@ Garrows : 작동하는 방법에 대한 또 다른 아이디어가 있습니다. – caf
아마도 최고가 될 것입니다.봇 또는 컴퓨터 지원 플레이어는 여전히 가능합니다. 그리고 게임을 작동시키는 이런 종류의 리플레이가 결정 론적 일 필요가있는 기술적 인 문제가 있습니다. 예를 들어, 순서가없는 특정 컨테이너에 대한 부동 소수점 반올림 또는 반복에 문제가있을 수 있습니다. 그리고 물론 멀티 스레딩은 올바른 잠금을 사용하더라도 비결정론으로 이어질 수 있습니다. – CodesInChaos
그건 수치스러운 일입니다. 자세한 답변을 주셔서 감사합니다. – Garrows