hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md

6.4 KiB

Reversão de Bibliotecas Nativas

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

WhiteIntel

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.

O principal objetivo do WhiteIntel é combater tomadas de contas e ataques de ransomware resultantes de malwares que roubam informações.

Você pode verificar o site deles e experimentar o mecanismo gratuitamente em:

{% embed url="https://whiteintel.io" %}


Para mais informações, consulte: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Os aplicativos Android podem usar bibliotecas nativas, geralmente escritas em C ou C++, para tarefas críticas de desempenho. Os criadores de malwares também usam essas bibliotecas, pois são mais difíceis de serem revertidas do que o bytecode DEX. A seção enfatiza habilidades de engenharia reversa adaptadas ao Android, em vez de ensinar linguagens de montagem. As versões ARM e x86 das bibliotecas são fornecidas para compatibilidade.

Pontos Chave:

  • Bibliotecas Nativas em Aplicativos Android:

  • Usadas para tarefas intensivas de desempenho.

  • Escritas em C ou C++, tornando a engenharia reversa desafiadora.

  • Encontradas no formato .so (objeto compartilhado), semelhante aos binários do Linux.

  • Os criadores de malwares preferem código nativo para dificultar a análise.

  • Interface Nativa Java (JNI) e NDK Android:

  • JNI permite que métodos Java sejam implementados em código nativo.

  • NDK é um conjunto de ferramentas específicas do Android para escrever código nativo.

  • JNI e NDK conectam o código Java (ou Kotlin) com as bibliotecas nativas.

  • Carregamento e Execução de Bibliotecas:

  • As bibliotecas são carregadas na memória usando System.loadLibrary ou System.load.

  • JNI_OnLoad é executado ao carregar a biblioteca.

  • Métodos nativos declarados em Java se conectam a funções nativas, permitindo a execução.

  • Vinculando Métodos Java a Funções Nativas:

  • Vinculação Dinâmica: Os nomes das funções nas bibliotecas nativas correspondem a um padrão específico, permitindo a vinculação automática.

  • Vinculação Estática: Usa RegisterNatives para vinculação, fornecendo flexibilidade nos nomes e estruturas das funções.

  • Ferramentas e Técnicas de Engenharia Reversa:

  • Ferramentas como Ghidra e IDA Pro ajudam a analisar bibliotecas nativas.

  • JNIEnv é crucial para entender funções e interações JNI.

  • Exercícios são fornecidos para praticar o carregamento de bibliotecas, vinculação de métodos e identificação de funções nativas.

Recursos:

WhiteIntel

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.

O principal objetivo do WhiteIntel é combater tomadas de contas e ataques de ransomware resultantes de malwares que roubam informações.

Você pode verificar o site deles e experimentar o mecanismo gratuitamente em:

{% embed url="https://whiteintel.io" %}

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: