게임의 저장 파일을 사수하라...

2012. 5. 25. 11:27프로그래밍/아이디어

728x90
반응형

게임의 저장파일을 사수해야 한다.

요즘 게임을 무료로 풀고 게임 내부에 IAP를 추가해서 매출을 올리는 게임들이 주류를 이루고 있다.

하지만 몇몇 사용자들의 경우에는 무료게임의 주 수입원인 부분결재를 거치지 않고 부당하게 골드나 아이템을 얻으려고 하는 분들이 있다.

우선 다음과 같은 방법으로 해킹을 한다.

  1. 게임의 저장 파일을 편집한다.
  2. 메모리상의 수치를 변경해서 편집한다.
  3. 부분 결재 서버와의 통신을 가로채서 부당한 아이템을 얻는다.

뭐 간단하게 위 3가지를 통해서 부당한 이익을 얻는 사용자들을 사전에 줄여보는게 중요하다.
(이렇게 부당하게 이익을 취하는 사용자들은 게임의 벨런스를 파괴하고, 게임에 대해서 부정적인 평가를 할 수 있다.)


우선 1번 게임의 저장 파일의 편집을 막아야한다.

  1. 게임 저장파일은 가능한 암호화 한다.
  2. CRC 검사를 통해서 저장되었던 파일이 임의로 편집되었는지 확인을 한다.
  3. 가능한 중요한 수치는 나눠서 분산 저장할 수 있도록 한다.
    예를 들면 사이버화폐는 몇개로 나눠서 분리 저장한다. 스트링을 나눠서 저장하는 방법도 괜찬음.
  4. 마지막으로 파일을 한개가 아닌 2개 이상의 파일에 기록하고 비교를 통해서 적절하게 처리를 해준다.


2번의 메모리상의 수치를 변경하는 경우.

  1. 메모리상에서 중요한 수치(화폐등)는 가급적이면 메모리상 분산 저장되도록 한다. 
    메모리상의 편집은 주로 사용되는 방법을 사용한다.
    1. 2개 이상으로 나눠서 저장하는 방법을 사용한다. 출력해줄때 또는 연산을 해주어야 할때만 원래값으로 변경해서 처리를 해준다.
    2. 메모리에 담길때 임의 숫자를 더해서 실제의 눈에 보이는 값과 다르게 해준다.
      화면에 출력해줄때는 더해준 임의 숫자를 빼주고 출력해주면 된다. 당연히 그 임의 숫자는 잘 관리해주어야 한다.
    3. 화폐나 골드를 관리하는 변수를 int형이 아닌 String형을 사용해서 관리한다.
  2. 이외에도 다양한 방법을 생각해 볼수 있을것 같다.

마지막 서버와의 통신을 가로채는 방법은 사용자의 아이템 구매 영수증을 활용하는 방법도 있지만 이통사나 오픈 마켓운영사에서제공하지 않는 경우가 많다. 따라서 사용하기가 쉽지 않다. 하지만 서버와의 통신을 통해서 적절하게 부당하게 획득한 이익을 적절하게 회수할 수 있을것으로 본다.




728x90
반응형