mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-23 19:43:31 +00:00
72 lines
5.2 KiB
Markdown
72 lines
5.2 KiB
Markdown
# Reversão de Bibliotecas Nativas
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Outras maneiras de apoiar o HackTricks:
|
|
|
|
* Se você quiser 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.
|
|
|
|
</details>
|
|
|
|
**Para mais informações, acesse: [https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html](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 malware 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 malware 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 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:** Nomes de função em 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)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Outras maneiras de apoiar o HackTricks:
|
|
|
|
* Se você quiser 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.
|
|
|
|
</details>
|