Hack no jogo PokemonGo com apenas 3 classes

pokemongo hack 2

hackear pokemongo

Neste Post vamos explicar como injectar código no famoso jogo PokemonGo sem modificar a fonte original do jogo. 

Neste exemplo vamos criar uma nova funcionalidade em que vamos falsificar a nossa localização.

Para isso é necessário os seguintes recursos:

  1. Versão crackeada mas não modificada de PokemonGo .ipa . Pode fazer download aqui https://www.iphonecake.com/app_1094591345_.html
  2. Falsificação de localização, necessário para injectar no código. https://github.com/depoon/InjectibleLocationSpoofing
  3. Scripts para a injeção do codigo propriamente dito https://github.com/depoon/iOSDylibInjectionDemo
  4. Cydia Impactor para instalar o nosso novo app sem fazer jail break  http://www.cydiaimpactor.com/

 

Hack com apenas 3 ficheiros

Sim, a complexidade de hackear qualquer aplicativo depende do teu conhecimento no desenvolvimento de aplicativos IOS e do que pretenderes fazer no hack. Neste caso vamos necessitar muito pouco da UI, servira apenas para gerir a localização falsa.

Para começar vamos criar uma Cocoa Touch Dynamic Framework no XCode e criar as seguintes classes ligadas a framework

  • PatchLoader (objective C)
  • LocationSwizzler (Swift)
  • PatchUIManager (Swift)
pokemongo hack

Descrição das Classes

A classe LocationSwizzler inicia o método swizzling no CLLocation’s para obter coordenadas mas o que este metodo vai fazer é retornar coordenadas falsas em vez das verdadeiras. Como a posição do utilizador é representado pelo objecto CLLocation, os restantes objectos que consumam este, vão obter coordenadas falsas 😀 . Por outro lado este objecto afecta todos os objectos CLLocation o que poderá provocar efeitos colaterais..

PatchUIManager ajuda a adicionar UIViews nas UIApplication’s da aplicação principal. Nesta classe vamos adicionar uma label com a seguinte mensagem "UIWindow Hijacked!!!" e mais quatro botões que nos vão permitir mover o nosso avatar pelo mapa independentemente de onde nos encontremos.

A PatchLoader é o nosso ponto de entrada para a injeção de codigo no ficheiro .ipa,  Com esta classe carregada em memória o método __attribute__((constructor)) initialize é chamado.

O metodo vai configurar a CLLocation Swizzling coma classe LocationSwizzler.

A aplicação PatchLoader vai ser inicializada e usar o PatchUIManager para adicionar views modificadas na UIWindow

Ok ate este ponto o verdadeiro jogo ainda não arrancou, então nos iniciamos o UI Hijack 2 segundos mais tarde esperando que o UIWindow ja esta pronto para ser hackeado

Prosseguindo com o processo vamos compilar a biblioteca no XCode e continuar com os seguintes passos (patching, resigning and installing) como mostra no diagrama a baixo.

Como temos classes Swift em nossa biblioteca dinâmica temos de nos lembrar de adicionar a biblioteca standard do Swift dylib no processo de patching.

iOS Swift Pokemongo Hacking Swizzling

iOS Swift Pokemongo Hacking Swizzling

Depois de terminados os passos a cima já deverá ser possível ver os UIViews modificados que adicionamos a UIWindow da aplicação. Também vais reparar que o teu avatar não vai estar localizado na tua verdadeira localização. A localização será Raffles City em Singapura. Clicando nos botões amarelos vais reparar que podes andar por onde quiseres e sem ter de sair do sitio onde te encontras. 

Em baixo esta um video que demonstra a nossa modificação a funcionar.

Conclusão estes são os 3 ficheiros necessários para modificar qualquer app no IOS, o código a cima pode não estar muito limpo e desencorajar os menos experientes, mas serve para ver quanto inseguras podem ser as apps existentes no IOS.

Deixa nos comentarios o que achaste do post e o que pensas sobre o tema,

Cumprimentos.

 

 

 

Comments