2013-05-29 2 views
0

방금 ​​YouTube에서 this 비디오를 시청했습니다. 내가 해커가 항상 해킹 할 수 있다는 것을 이해한다면, 나는 게임 보안을 향상시키는 솔루션을 찾고 있습니다.해커로부터 안드로이드 게임을 더욱 안전하게 만들어보세요

나는 사용자가 동전을 바꾸지 못하도록하고 싶다. 암호화 또는 난독 화가 여기에 옵션이 될 것입니까?

가벼운 솔루션을 찾고 있습니다.

이런 일이 발생하지 않도록 (어렵게 만들었습니다.) 알려 주시기 바랍니다.

답변

0

가장 신뢰할 수있는 방법은 중요한 정보 서버 측을 저장하고 클라이언트가 서버와 상호 작용하도록하는 것입니다. 이러한 해킹은 클라이언트가 동전을 위해 물건을 사려고 할 때만 클라이언트 측이되므로 서버에서 구매를 허용하면 서버에 문의해야합니다.

물론 네트워크 응답을 가로채는 것으로 해킹 당할 수 있습니다. 서버를 위조하여 보안 조치를 추가하지 않을 경우 해킹 할 수 있습니다. 그러나 최소한 이런 종류의 해킹은 효과가 없습니다.

그러나 암호화 또는 난독 화는 값을 검색 할 수 없기 때문에 어느 정도는 작동해야하지만, 누군가 리버스 엔지니어링하면 앱이 어떻게 수행되는지 파악하기가 어렵지 않습니다. ProGuard는 아마도 당신을 그보다 조금 더 안전하게 만들지 만, 여전히 서버 쪽이 항상 가장 안전한 방법이 될 것입니다.

1

데이터와 소금으로 MD5 해시를 만들고이를 데이터베이스에 저장합니다.

예 :

Score: 1234 
Lives: 3 

Calculate MD5 from: "fsjdhASd8adnsa9asdmasdsd#1234#3#AS88asdDA*ASD8ASdmas" 

Store on the database: 1234|3|b7f67f11fed055cce28d6f50fd829e9c 

데이터베이스에서 읽기, 나는 점수를 연결할 내가 알고이 저장된 MD5 해시와 일치하는 경우 확인 소금 값을 살고있다.

예 : 점수가 9999로 변경 한 경우,

Read score = 1234 
Read lives = 3 

Concatenate "fsjdhASd8adnsa9asdmasdsd#" + score + "#" + lives + "#AS88asdDA*ASD8ASdmas" 
Calculated MD5 = b7f67f11fed055cce28d6f50fd829e9c 

Calculate the MD5 from this string and check if it matches with the stored hash 

내가 해시 0d64ebead4451f826c15b5d03853f8da을 얻을 것입니다 따라서이 유효하지 않습니다!

분명히 이것은 오류가 아니기 때문에 사용자가 코드를 리버스 엔지니어링하여 변경할 수는 있지만 작업이 더 어려워 질 수 있습니다!

일부 사용자는 여전히 수정하려고 시도하지만 사용자를 사기꾼으로 표시하는 서버로 메시지를 보냅니다.