# 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: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) é um mecanismo de busca alimentado pela **dark web** que oferece funcionalidades **gratuitas** para verificar se uma empresa ou seus clientes foram **comprometidos** por **malwares de roubo**. O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares de roubo de 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**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html) 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 do 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 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 no nome e estrutura da função. * **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: * **Aprendendo Assembly ARM:** * Sugerido para uma compreensão mais profunda da arquitetura subjacente. * [Noções Básicas de Assembly ARM](https://azeria-labs.com/writing-arm-assembly-part-1/) do Azeria Labs é recomendado. * **Documentação JNI & NDK:** * [Especificação JNI da Oracle](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html) * [Dicas JNI do Android](https://developer.android.com/training/articles/perf-jni) * [Começando com o NDK](https://developer.android.com/ndk/guides/) * **Depurando Bibliotecas Nativas:** * [Depurando Bibliotecas Nativas do Android Usando o Decompilador JEB](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3) ### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) é um mecanismo de busca alimentado pela **dark web** que oferece funcionalidades **gratuitas** para verificar se uma empresa ou seus clientes foram **comprometidos** por **malwares de roubo**. O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares de roubo de 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: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.