플래시 게임 해킹 점수는 49700?? 플래시 게임의 보안을 개선하는 방법은 무엇입니까?

두 개의 플래시 게임이 있습니다(as3로 작성). 둘 다 최고 점수가 해킹됩니다. 각 게임 점수의 정상 범위는 5000을 넘지 않습니다(일반 사용자는 2000~3000점만 획득). 현재 해킹 방지 방법은 다음과 같습니다.게임을 마친 후 플래시는 post 파라미터 send:username=mike&score=2000&hash=md5(secret.username.score)를 사용합니다. PHP 페이지에서 해시!=md5(secret.username.score)의 경우 오류를 반환하고 데이터베이스에 데이터를 삽입하지 않는 것을 확인하였습니다.이 방법으로는 충분하지 않다고 생각합니다. 그렇지 않으면 제 플래시 게임은 해킹당하지 않습니다. 제 플래시 게임의 보안/해킹 방지를 개선하기 위해 제가 할 수 있는 일이 있습니까?해커는 어떻게 해킹합니까? 치트 엔진, 탬퍼 데이터(firefoxext), tamperIE 등의 타사 소프트웨어를 사용합니까? 모든 표준 해킹 방법을 나열할 수 있습니까? (해킹 방법/문제를 아는 것은 문제의 50%를 해결했음을 의미합니다. 적어도 문제가 어디에 있는지 알고 있고 그것에 대해 사전에 주의를 기울입니다) 글쎄요, 제 제목에는 49700이 있습니다. 두 게임 모두 최고 점수가 49700이기 때문입니다(실제로 이 점수 값의 대부분이 제 데이터베이스에 삽입되어 있습니다, 다른 사용자는 생각하고 있습니다). 그래서 저는 그들이 같은 방법을 사용하고 있다고 믿습니다.감사합니다, 당신은 결국 사람들이 당신의 시스템을 해킹하는 데 걸리는 시간을 늦추거나 시간을 낼 가치가 없도록 하려고 합니다. 약간의 복잡성을 증가시키기 위해 해시에 소금을 추가할 수 있습니다. 이는 플래시 게임에 값으로 전송되며(HTML의 플래시 객체에 파라미터로 추가), 해시 확인 코드에 포함할 수 있습니다. 어떤 종류의 세션 ID 또는 임의의 번호를 보낼 수 있기 때문에 항상 다릅니다. 다른 방법으로 두 개의 해시를 생성하고 둘 다 확인할 수도 있습니다.물론 사람들이 실제 게임 기능을 해킹하는 방법을 찾았을 가능성을 무시하지 마세요. 아니면 정말 좋은 선수들인지…

게임을 해킹하고 싶다면 게임을 디컴파일하여 md5 “비밀”을 찾을 수 있습니다. 당신의 플래시 게임 바이너리에서 제공되고 있다는 사실은 그것이 실제로는 비밀이 아니라는 것을 의미하므로 제가 비밀을 따옴표로 묶었다는 것을 주의하시기 바랍니다.점수를 해킹할 수 없도록 하는 것은 아마 불가능합니다. 당신이 할 수 있는 모든 희망은 점수를 더 어렵게 만드는 것뿐이에요.

완전히 클라이언트 측에서 실행되고 있는 경우 점수의 유효성 검사를 안전하게 하는 것은 실제로는 불가능합니다. 원격으로 보안을 유지하려면 서버 측에서 적어도 일부를 실행해야 합니다. 이 작업을 수행하는 두 가지 방법이 있습니다.정기적으로 스코어의 갱신을 서버로 송신해, 서버 측에서 스코어가 “별로”(게임 컨텍스트에서 정의됨) 점프하고 있지 않은지 확인합니다. 그것이 “점프”하면 플레이어가 해킹하고 있다고 안전하게 가정할 수 있습니다.게임 전체 이동 시퀀스(임의 스폰서 또는 모든 AI 이벤트와 함께)를 마지막으로 점수와 함께 서버로 보내 점수가 실제로 정확한지 확인합니다. 이것은 분명히 모든 게임에서 동작하는 것은 아니지만, 일부 게임에서는 작동할 가능성이 있습니다. 당신은 당신의 게임에 대해 구체적으로 아무 말도 하지 않았기 때문에, 저는 이것을 여기에 남깁니다.

당신이 말했듯이, 이것을 해킹하기 위해 수행되는 작업으로 인해 수정해야 할 다른 구멍이 있습니다. 메시지에 실제 정보를 전송하고 코드에 ‘비밀’이 포함되어 있기 때문에 훨씬 쉬운 대상이 됩니다. 보안을 개선하기 위해 할 수 있는 몇 가지 다른 해시 기능을 사용하십시오. MD5는 내용을 모른 채 동일한 서명으로 메시지를 생성할 수 있다는 알려진 결함이 있습니다. SHA1, SHA2는 보다 높은 보안을 제공하기 위해 MD5의 약점에 의한 공격을 방지합니다.각 메시지에 고유한 [비밀]을 지정합니다. 게시할 때마다 서버에서 전송하면 사람들이 동일한 해시를 계속 재사용하는 것을 막고 코드를 보고 해시를 생성하는 것이 더욱 어려워집니다.결과를 여러 번 해시합니다. 예를 들어 value=hash(…,salt),salt),salt)는 사람들이 프로그램을 디컴파일할 경우에는 도움이 되지 않지만 해시를 재생성하려는 경우에는 유용합니다. 그 자체로 SWF를 디컴파일로부터 보호할 소프트웨어를 찾아주세요. 플래시를 많이 사용하지 않기 때문에 이에 대한 신뢰할 수 있는 링크는 없습니다.

Flash에서 가장 쉬운 방법이며, 가장 물리치기 어려운 방법은 Cheat Engine을 사용하여 단순히 점수를 저장할 메모리 위치를 검색하고, 이후 값을 원하는 값으로 변경하는 것입니다. 전 세계의 모든 서버 제출 해시/솔팅/검증은 제출을 위해 훌륭한 유효 해시로 패키징하기 전에 게임이 유효하다고 생각하기 때문에 이 문제를 수정하지 않습니다.점수가 항상 사전 정의된 값 내에 속하는 경우 점수에 대해 ‘정상 검사’를 수행할 수 있지만 결정된 해커는 허용되는 최대치를 쉽게 파악하고 항상 해당 값을 제출할 수 있습니다.예를 들어, 점수치를 곱한 값에 저장한 후 점수치에 대한 getter 및 setter에 값의 곱셈/나눗셈을 포함하여 Cheat Engine에서 찾기 어렵게 만들기 위해 메모리에서 점수치를 난독화하려고 시도할 수 있습니다. 표시 및 점수 제출 위젯의 적절한 점수를 설정합니다. 이마저도 실리 전술일 뿐입니다.가짜 점수로 인해 비용이 발생하지 않는 한 부정행위를 하는 0.01%의 사람들에게 시간을 낭비하는 것을 걱정하지 마십시오. 또는 스코어 카드를 수동으로 조정해 주세요.부정행위를 방지하기 위해 고려해야 할 핵심사항은 ‘이게 실제로 얼마나 중요한가’입니다. 상금과 함께 일종의 고득점 기반 경쟁을 실행할 경우 우선순위가 매우 높습니다. 임의의 사람이 당신의 최고점 테이블을 엉망으로 만드는 것이 마음에 들지 않는 경우, 그들을 막을 시간은 없습니다. 일주일에 한 번만 확인해주시고 나쁜 점수는 버려주세요.

사용 중인 암호화 시스템은 HMAC와 매우 유사하지만 구현이 안전하지 않습니다. md5 알고리즘은 손상되었지만 MAC은 비밀의 시작 부분 때문에 해시 충돌을 생성하는 접두사 공격에 면역입니다. 공격자는 해시 충돌을 생성하기 위해 문자열 구걸을 제어할 수 있어야 합니다.Tamper Data는 브라우저에서 트래픽을 수정/캡처/재생하는 데 매우 유용한 해킹 툴입니다. 따라서 현재 날짜와 시간인 hmac(secret, date_time).score.username)을 인증하여 재생 공격을 방지해야 합니다.해커는 아마도 SWF 디컴파일러를 사용하여 SWF 파일에서 비밀 값을 찾고 있을 것입니다. 이에 대응하려면 http://www.amayeta.com/과 같은 SWF 난독화를 사용하여 비밀을 묻어야 합니다. 이 중 어느 것도 “은색 총알”이 아니라 해커를 더 어렵게 만듭니다. 당신은 클라이언트가 당신에게 정확한 점수를 알려줄 것을 신뢰하기 때문에 해커는 항상 자신의 점수를 수정할 수 있습니다. 권장 변경 사항을 적용할 경우에도 여전히 CWE-602를 위반하게 됩니다.

단순히 서버 측에서 게임을 진행하는 것만으로 점수 해킹을 막을 수 있지 않을까요?게임이 임의의 게임에서 실행되는 경우 임의의 값을 사용자의 브라우저로 전송하면 사용자가 트릭을 시도하는 것은 의미가 없으며 플래시 파일을 디컴파일해도 이점이 없습니다.

제가 생각한 것은 게임이 인증을 요구하는 것처럼 보이기 때문에 사용자 이름이나 기타 정보를 얻어야 하는 호출이 있다고 가정할 수 있다는 것입니다.다른 개발자의 조언은 Ajax 컴포넌트를 사용하는 것이었습니다.익. 대부분의 해커는 대부분의 보안 문제를 해결할 방법을 찾을 것입니다.게임이 동작하기 위해 필요한 것 이외의 것을 서버로 재전송하지 않도록 합니다.사용 가능한 음의 메모리의 양에 따라 랜덤으로 사용한 사람이 있습니까? 소프트웨어에서 특정 메모리 위치를 찾는 대신 왜 mem에 여러 개의 가짜 값을 전송하고 열린 메모리 위치를 기반으로 결과를 도출하지 않습니까?이 제안에 대해 저를 공격하지 마세요. 저는 다른 대부분의 사람들과 마찬가지로 학습자입니다.

Flash 앱에 일종의 RSA(비대칭) 암호화를 추가할 수 있습니다. Flash 앱에 공용 키를 넣고 서버 측 개인 키를 사용하여 전송된 점수를 해독합니다.이것은 해커가 Flash 앱을 해킹하는 것을 반드시 막을 수는 없지만 엉덩이에 약간의 고통을 줄 것입니다.다음은 RSA 암호화를 위한 AS3 라이브러리입니다.그 외에는, 다른 한편으로 RSA를 실장하는 방법에 대해 사용중의 서버 기술(PHP, .Net 등)에 의해서 다릅니다.이 질문에 이미 응답한 것에 주의할 필요가 있습니다.

error: Content is protected !!