Eu vi altas pontuações de 999.999 em Flappy Bird , bem como muitos outros recordes impossíveis em jogos como Temple Run, etc., no iPhone e no iPad.
Como as pessoas invadem esses jogos com tanta facilidade quando eles não consegue ver o código-fonte? Parece que eles conhecem o código-fonte do jogo, o que os torna capazes de manipular o arquivo do jogo com tanta facilidade. Não entendo como isso acontece, visto que o iPhone da Apple tem sandbox, ao contrário do Android.
Comentários
- FWIW, o Android também faz sandbox de aplicativos. o diabo está nos detalhes: que tipos de acesso são evitados e permitidos.
Resposta
Os aplicativos iOS armazenam seus dados em arquivos que estão disponíveis em um computador de duas maneiras facilmente acessíveis:
-
Dentro de um backup do iTunes
-
Via MobileDevice -Ferramenta baseada em framework, como iExplorer
Na minha experiência, os dados salvos do jogo são armazenados em um arquivo de lista de propriedades bastante comum que pode ser manipulado por meio da ferramenta plutil
. Os dados podem ser restaurados e substituídos sem qualquer conhecimento de código. A partir daí, é uma questão simples de quanto o aplicativo confia em salvar dados.
Para obter um exemplo de como isso pode ser usado não apenas para pontuações altas, mas para trapacear em um jogo, consulte Nimble Quest iOS Trainer , que por si só é baseado na estrutura MobileDevice.
(A estrutura MobileDevice é uma estrutura privada da Apple criada para acesso a dispositivos iOS, que foi submetida a engenharia reversa para permitir a criação de ferramentas de dispositivo iOS não disponíveis na Apple.)
Comentários
- É possível, de alguma forma, criptografar esses dados no framework? Então meu aplicativo tem um arquivo plist ilegível, mas ainda contém pontuações altas válidas?
- Você certamente poderia ocultar (para resistência de leitura) ou soma de verificação (para resistência de adulteração) seus dados. Isso aumentará o nível, embora você ' ainda esteja vulnerável se alguém quiser modificar tanto os dados a ponto de fazer a engenharia reversa do seu próprio aplicativo para fazer isso.
Resposta
Alguns jogos se comunicam com seu servidor back-end não criptografado, em texto simples. Se você rotear o tráfego por meio de um proxy como OWASP ZAP ou Burp Suite , você pode ver e manipular o tráfego.
Já vi jogos que enviam as respostas com a pergunta para o iPhone. Nesse cenário eu poderia destacar as respostas corretas. Como resultado, você sempre pode marcar 100%. Outros jogos enviam as pontuações para o servidor. Nesse caso, você pode apenas adicionar alguns zeros à sua pontuação ao enviá-la.
Então, há jogos que armazenam suas pontuações no telefone conforme o zigg descreve. Essas pontuações são armazenadas em um usuário legível e área gravável e, portanto, pode ser manipulada. Isso, claro, só é armazenado no telefone, mas você pode mostrar aos seus amigos piscando o seu telefone.