999,999 의 높은 점수를 보았습니다.

Flappy Bird 뿐만 아니라 iPhone 및 iPad에서 Temple Run과 같은 게임에서 불가능한 높은 점수를 기록했습니다.

사람들이 이러한 게임을 어떻게 그렇게 쉽게 해킹합니까? 소스 코드를 볼 수 없습니까? 게임의 소스 코드를 아는 것 같아서 쉽게 게임 파일을 조작 할 수 있습니다. Android와 달리 Apple iPhone이 샌드 박스 처리되어 있다는 점을 감안할 때 어떻게 이런 일이 발생하는지 이해할 수 없습니다.

댓글

  • FWIW, Android도 앱을 샌드 박스합니다. 악마는 세부 사항에 있습니다. 어떤 종류의 액세스가 금지되고 허용되는지.

답변

iOS 애플리케이션은 쉽게 액세스 할 수있는 두 가지 방법으로 컴퓨터에서 사용할 수있는 파일의 데이터 :

  • iTunes 백업 내부

  • 모바일 장치를 통해 -프레임 워크 기반 도구 (예 : iExplorer

내 경험상 게임 저장 데이터는 plutil 도구를 통해 조작 할 수있는 매우 평범한 속성 목록 파일입니다. 데이터는 코드 지식 없이도 복원 및 교체 할 수 있습니다. 여기서부터 앱이 얼마나 신뢰하는지에 대한 간단한 문제입니다. 데이터를 저장합니다.

높은 점수뿐만 아니라 게임 속임수에도이 기능을 사용할 수있는 방법에 대한 예는 Nimble Quest iOS Trainer 는 그 자체가 MobileDevice 프레임 워크 기반입니다.

(MobileDevice 프레임 워크는 iOS 기기 액세스를 위해 생성 된 Apple 비공개 프레임 워크로,이를 활성화하기 위해 리버스 엔지니어링되었습니다. Apple에서 사용할 수없는 iOS 기기 도구 생성.)

댓글

  • 어떻게 든 프레임 워크에서이 데이터를 암호화 할 수 있습니까? 그래서 내 앱에 사람이 읽을 수없는 plist 파일이 있지만 여전히 유효한 최고 점수가 포함되어 있습니까?
  • 데이터를 확실히 가리거나 (읽기 저항의 경우) 체크섬 (변조 방지의 경우)을 할 수 있습니다. 이렇게하면 기준이 높아질 수 있지만 ' 누군가가 데이터를 너무 많이 수정하여 앱 자체를 리버스 엔지니어링하여 데이터를 수정하려는 경우 여전히 취약합니다.

답변

일부 게임은 암호화되지 않은 일반 텍스트로 백엔드 서버와 통신합니다. OWASP ZAP 또는 버프 제품군 과 같은 프록시를 통해 트래픽을 라우팅하면 다음을 볼 수 있습니다. 트래픽을 조작합니다.

질문에 대한 답변을 iPhone으로 보내는 게임을 본 적이 있습니다. 이 시나리오에서는 정답을 강조 할 수 있습니다. 결과적으로 항상 100 %를 득점 할 수 있습니다. 다른 게임은 점수를 서버로 보냅니다. 이 경우 점수를 제출할 때 점수에 0을 몇 개만 추가 할 수 있습니다.

그런 다음 zigg가 설명하는대로 점수를 휴대 전화에 저장하는 게임이 있습니다. 이러한 점수는 사용자가 읽을 수 있고 쓰기 가능 영역이므로 조작 할 수 있습니다. 물론 이것은 휴대 전화에만 저장되지만 휴대 전화를 플래시하여 친구에게 자랑 할 수 있습니다.

답변