INÍCIOPrograma Monitorar ResidencialComo hackear remotamente o aplicativo de outro telefone?

Como hackear remotamente o aplicativo de outro telefone?

O melhor localizador residencial e rastreador GPS
Como hackear remotamente o aplicativo de outro telefone?
Aplicativo Espião Celular
Monitore chamadas, SMS, Gps, câmera, fotos, vídeos, Whatsapp, Facebook, etc.
Baixar AplicativoVer Demo

Na verdade, além de analisar os princípios de implementação das linguagens java, como classes internas e enumerações java, também é útil em alguns cenários específicos. Agora geralmente é feito modificando smali, mas também pode ser feito com base em bytecode., Este artigo é baseado na análise de bytecode java anterior, portanto, apenas o método bytecode é discutido.

Muitos jogos autônomos, e até mesmo alguns jogos online, executam as operações lógicas localmente. O servidor recebe apenas os resultados da operação enviados pelo cliente. Existem também alguns aplicativos de cobrança, na verdade, as funções estão todas no código local, apenas Mas é para julgar se há pagamento, e se houver pagamento, a entrada da função será exibida.

Se pudermos modificar seu código e alterar o resultado do upload ou o julgamento de pagar o que queremos, podemos fazer o que quisermos.

descompilar

Para modificar a lógica do código do aplicativo, devemos primeiro analisar qual é a lógica do código original. No entanto, como o código do aplicativo é propriedade privada de cada empresa, a menos que o código vaze, geralmente não podemos obtê-lo. desta vez só podemos usar técnicas de descompilação.

Aplicativo Espião Celular
Monitore chamadas, SMS, Gps, câmera, fotos, vídeos, Whatsapp, Facebook, etc.
Baixar AplicativoVer Demo

Se você for à Internet procurar a tecnologia de descompilação do apk, provavelmente encontrará os seguintes métodos:

  • Use a ferramenta apktool para extrair o apk
  • Use a ferramenta dex2jar para converter arquivos dex otimizados para Android em classes Java
  • Use a ferramenta jd-gui para visualizar o código java na classe
Como hackear remotamente o aplicativo de outro telefone?

Uma operação tão complicada está realmente desatualizada. Vou apresentar uma ferramenta de operação tola de um clique para todos.

jadx é uma ferramenta de descompilação Android de código aberto, seu código está hospedado no github, você pode baixar e usar. O uso é muito simples, após o download, descompacte-o e entre no diretório bin para executar o jadx-gui (linux/mac ) ou jadx-gui.bat (windows), você pode iniciar uma interface visual, depois clicar em "Arquivo - Abrir", e selecionar o aplicativo que queremos descompilar, você pode ver o código no apk

Um aplicativo de demonstração é descompilado aqui, e seu MainActivity.onCreate julga uma variável de sinalizador e, em seguida, exibe o Toast. Quando instalamos este apk e o executamos, podemos ver o brinde aparecendo: "hello world!"

Outros aplicativos são semelhantes, você pode visualizar seu código dessa maneira. No entanto, aplicativos lançados oficialmente geralmente fazem operações de ofuscação. Neste momento, o nome da classe, o nome do método e o nome da variável do código que descompilamos e processamos se tornará a, b, c é um caractere sem sentido.

Mas apenas o nome mudou, a lógica de execução é exatamente a mesma, portanto, desde que você seja cuidadoso o suficiente, ainda poderá entender sua lógica de código.

O Jadx tem uma função poderosa que pode exportar o projeto gradle, clique em "Arquivo/Salvar como projeto Gradle" para exportar o projeto gradle e, em seguida, altere a estrutura do diretório, você pode usar o Android studio para abrir o projeto e editar e modificar o código.

Se a compilação for bem-sucedida após a modificação, nosso objetivo foi alcançado e podemos fazer o que quisermos, mas este projeto tem uma alta probabilidade de não conseguir compilar com sucesso e há muitos erros estranhos.

Em seguida, vou levá-lo a decifrar este apk passo a passo, modificar sua lógica, não jogar "hello world!", mas jogar "hello java".

Como hackear remotamente o aplicativo de outro telefone?

Modificar o bytecode do aplicativo

Podemos usar jadx para analisar facilmente a lógica do código, mas se a recompilação falhar, temos que seguir outro caminho.

Aqui está a maneira de editar diretamente o bytecode. Se você seguir esse caminho, não haverá operações tolas para usar. Vamos passo a passo honestamente

1. Descompacte o apk

  • apk é na verdade um pacote compactado zip, podemos alterar seu sufixo para.zip e depois descompactá-lo diretamente
  • Colocamos as coisas descompactadas no diretório app-release-unsigned:
Como hackear remotamente o aplicativo de outro telefone?

2. Converter dex em jar

  • Todos nós sabemos que a máquina virtual Android não é uma máquina virtual Java comum, ela não pode executar diretamente arquivos de classe Java e precisa ser otimizada em arquivos dex.
  • Quando modificamos o bytecode, precisamos convertê-lo novamente. Aqui usamos a função dex2jar da ferramenta dex-tools:
  • Aqui eu apresento apenas o uso de comandos no Linux, não no Windows. Na verdade, é uma versão semelhante usando.bat, você pode pesquisar sozinho.
  • Converta classes.dex para arquivo jar:
  • ~/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh classes.dex
  • Ele irá gerar o arquivo classes-dex2jar.jar:

3. Modifique o bytecode da classe

  • Na verdade, o arquivo jar também é um pacote compactado zip, ainda podemos alterar diretamente o sufixo para zip e, em seguida, descompactar para encontrar MainActivity.class
  • Neste momento, podemos usar o comando javap mencionado no artigo anterior para visualizar o código dentro:
  • javap -c MainActivity
  • E podemos ver que, se continuarmos a executar, ele produzirá hello world!, e se pularmos para 32 linhas, ele produzirá hello java!
  • Aqui podemos alterar diretamente if_icmpne para if_icmpeq, pular para a linha 32 quando for igual, caso contrário, continue a executar, para que o prompt original "hello world!" se torne "hello java!"
  • Se você abrir o arquivo de classe diretamente com um editor, existem alguns valores binários nele.
  • Então, como podemos modificá-lo?
  • Aqui vamos usar outra ferramenta jbe, o nome completo é java bytecode editor
  • Após o download, descompacte-o, entre no diretório bin e use o seguinte comando para abrir a interface gráfica:
  • java ee.ioc.cs.jbe.browser.BrowserApplication
  • Abra MainActivity.class na interface gráfica e encontre nosso código MainActivity.onCreate
  • Em seguida, clique na opção Code Editor para modificar o bytecode, aqui alteramos if_icmpne para if_icmpeq e, em seguida, clique em Save method:
  • Isso completa nossa modificação lógica
Como hackear remotamente o aplicativo de outro telefone?

4. Reembalar dex

  • Em seguida vamos reempacotar o apk, primeiro comprimir a classe em um zip, preste atenção na estrutura de diretórios:
  • Em seguida, altere o sufixo para jar e use jar2dex para gerar dex:
  • ~/dex-tools-2.1-SNAPSHOT/d2j-jar2dex.sh classes-dex2jar.jar
  • Em seguida, substitua o class.dex original pelo dex gerado e exclua todos os arquivos temporários gerados, como os diretórios classes-dex2jar.zip e classes-dex2jar

5. Excluir informações de assinatura

  • Geralmente, os aplicativos que recebemos são aplicativos assinados. Depois que o aplicativo for assinado, as informações de verificação de recursos e códigos serão salvas no apk. Se modificarmos o arquivo dex, a verificação falhará, portanto, o apk não poderá ser instalado. de.
  • Portanto, precisamos excluir a assinatura original. O método específico é excluir os três arquivos no diretório META-INF:
  • CERT.RSA
  • CERT.SF
  • MANIFEST.MF

6. Reempacotar apk

  • Em seguida, o mesmo arquivo compactado gera um pacote compactado zip, preste atenção na estrutura de diretórios:
  • Finalmente, mude o sufixo zip para apk, e nosso apk é empacotado
  • Como nosso apk reempacotado excluiu as informações de assinatura, se ele for instalado diretamente, ele falhará e precisamos assiná-lo novamente.
  • Você pode usar o seguinte comando para criar um alias como android.keystore, e o nome do arquivo também é o arquivo de assinatura de android.keystore
  • keytool -genkeypair -alias android.keystore -keyalg RSA -validity 400 -keystore android.keystore
  • Depois de pressionar enter, ele permitirá que você insira alguma senha, informações do desenvolvedor, etc., e você receberá um arquivo android.keystore após a conclusão
  • Em seguida, usamos o android.keystore obtido para assinar novamente o aplicativo:
  • jarsigner -keystore android.keystore -signedjar release.apk app-release-unsigned.apk android.keystore
  • Obtenha o release.apk assinado, vamos instalá-lo e executá-lo para ver que o brinde se tornou "hello java!".