Hacking Android Apps usando o Xposed Framework

O Xposed é uma estrutura que permite aos desenvolvedores escrever módulos personalizados para conectar-se a aplicativos Android e assim modificar seu fluxo no tempo de execução. Foi lançado pela rovo89 em 2012. Isso funciona colocando o binário do app_process no diretório / system / bin / , substituindo o binário original do app_process . App_process é o binário responsável por iniciar o processo do zigoto. Basicamente, quando um telefone Android é iniciado, init runs / system / bin / app_process e dá o processo resultante o nome Zygote. Podemos conectar qualquer processo que seja bifurcado no processo Zygote usando o framework Xposed. Para demonstrar os recursos do framework Xposed, usando um aplicativo vulnerável personalizado. O nome do pacote do aplicativo vulnerável é com.androidpentesting.hackingandroidvulnapp1 . O código na seguinte captura de tela mostra como o aplicativo vulnerável funciona:
Este código possui um método, setOutput , chamado quando o botão é clicado. Quando setOutput é chamado, o valor de i é passado para ele como um argumento. Se você notar, o valor de i é inicializado para 0 . Dentro da função setOutput , há uma verificação para ver se o valor de i é igual a 1 . Se for, este aplicativo exibirá o texto Rachado . Mas, uma vez que o valor inicializado é 0 , este aplicativo sempre exibe o texto. Você não pode quebrar . A execução do aplicativo em um emulador parece assim:
Agora, nosso objetivo é escrever um módulo Xposed para modificar a funcionalidade deste aplicativo em tempo de execução e assim imprimir o texto Rachado . Primeiro, baixe e instale o arquivo Xposed APK no seu emulador. Xposed pode ser baixado do seguinte link: http://dl-xda.xposed.info/modules/de.robv.android.xposed.installer_v32_de4f0d.apk Instale este arquivo APK baixado usando o seguinte comando:

adb install [file name].apk
Depois de instalar este aplicativo, inicie-o e você deve ver a seguinte tela:
Nesta fase, certifique-se de ter tudo configurado antes de prosseguir. Depois de concluir a configuração, navegue até a guia Módulos , onde podemos ver todos os módulos Xposed instalados. A figura a seguir mostra que atualmente não temos nenhum módulo instalado:
Agora vamos criar um novo módulo para alcançar o objetivo de imprimir o texto quebrado no aplicativo de destino mostrado anteriormente. Usamos o Android Studio para desenvolver este módulo personalizado. Aqui está o procedimento passo-a-passo para simplificar o processo: 1. O primeiro passo é criar um novo projeto no Android Studio, escolhendo a opção Adicionar Sem Actvidade , conforme mostrado na próxima captura de tela. Eu o nomeei XposedModule .
2. O próximo passo é adicionar a biblioteca XposedBridgeAPI para que possamos usar métodos específicos Xposed dentro do módulo. Faça o download da biblioteca a partir do seguinte link: http://forum.xda-developers.com/attachment.php?attachmentid=2748878&d=1400342298 3. Crie uma pasta chamada fornecida no diretório do aplicativo e coloque esta biblioteca dentro do diretório fornecido . 4. Agora, crie uma pasta chamada de ativos dentro do diretório app / src / main / , e crie um novo arquivo chamado xposed_init . Vamos adicionar conteúdo a este arquivo em uma etapa posterior. Depois de completar as 3 primeiras etapas, nossa estrutura de diretório do projeto deve parecer como isso:
5. Agora, abra o arquivo build.gradle na pasta do aplicativo e adicione a seguinte linha na seção de dependências :

"provided files('provided/[file name of the Xposed 
  library.jar]')"
No meu caso, parece assim:
6. Crie uma nova classe e nomeie-a XposedClass , como mostrado aqui:
7. Depois de concluir a criação de uma nova classe, a estrutura do projeto deve aparecer como mostrado na seguinte captura de tela:
8. Agora, abra o arquivo xposed_init que criamos anteriormente e coloque o seguinte conteúdo nela. com.androidpentesting.xposedmodule.XposedClass Isso parece a seguinte captura de tela:
9. Agora, vamos fornecer algumas informações sobre o módulo adicionando o seguinte conteúdo ao AndroidManifest.xml: :
<meta-data

android:name="xposedmodule"

android:value="true" />

 

<meta-data

android:name="xposeddescription"

android:value="xposed module to bypass the validation" />

 

 

<meta-data

android:name="xposedminversion"

android:value="54" />
10. Certifique-se de adicionar este conteúdo à seção do aplicativo, como mostrado aqui:
11. Finalmente, escreva o código real dentro do XposedClass para adicionar um gancho. 12. Aqui está o código que realmente ignora a validação que está sendo feita no aplicativo de destino:
Aqui está o que fizemos no código anterior:
  • Em primeiro lugar, nossa aula está implementando IXposedHookLoadPackage
  • Nós escrevemos a implementação do método para o método >handleLoadPackage isso é obrigatório quando implementamos IXposedHookLoadPackage
  • Configuramos os valores de string para classToHook functionToHook
  • Uma condição if é escrita para ver se o nome do pacote é igual ao nome do pacote de destino
  • Se o nome do pacote corresponder, execute o código personalizado fornecido dentro de beforeHookedMethod
  • Dentro do método beforeHookedMethod, estamos definindo o valor de i para 1 e portanto, quando este botão é clicado, o valor de,i será considerado como1, e o texto Cracked será exibido como uma mensagem de brinde
Compile e execute este aplicativo exatamente como qualquer outro aplicativo Android e, em seguida, verifique a seção Módulos do aplicativo Xposed . Você deve ver um novo módulo com o nome XposedModule , como mostrado aqui:
Selecione o módulo e reinicie o emulador. Uma vez que o emulador tenha reiniciado, execute o aplicativo de destino e clique no botão Crack Me .
Como você pode ver na captura de tela, modificamos a funcionalidade do aplicativo em tempo de execução sem realmente modificar seu código original. Também podemos ver os logs tocando na seção Logs . Você pode observar o método XposedBridge.log no código-fonte mostrado anteriormente. Este é o método usado para registrar os seguintes dados mostrados:
Resumo Xposed sem dúvida é uma das melhores estruturas disponíveis por aí. Compreender frameworks como Xposed é essencial para entender a segurança do aplicativo Android. Este artigo demonstrou os recursos da estrutura Xposed para manipular os aplicativos em tempo de execução. Muitas outras coisas interessantes podem ser feitas usando o Xposed, como ignorar a detecção de root e a fixação de SSL.
Next
This is the current newest page
Previous
Next Post »
Postar um comentário
Thanks for your comment