Estrutura de aplicações Android
Componentes internos do APK
Estrutura de aplicações Android é uma aula grátis de Ethical Hacking Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ethical Hacking Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ethical Hacking Academy inclui 4 aulas no total.
O arquivo APK
Um aplicativo Android é distribuído como um APK (pacote Android). Na verdade, ele é um arquivo ZIP que contém o código compilado, os recursos e os metadados.
Por ser um ZIP, você pode simplesmente descompactá-lo para inspecionar seu conteúdo, que é o primeiro passo em um teste de invasão móvel.
unzip app.apk -d app_extracted/Dentro do APK
Um APK extraído contém:
AndroidManifest.xml: configuração do aplicativo.classes.dex: código de bytes compilado.res/eresources.arsc: recursos.lib/: bibliotecas nativas.META-INF/: informações de assinatura.
O manifesto
O AndroidManifest.xml declara os componentes, as permissões e a configuração do aplicativo. No APK, ele está em formato XML binário, que as ferramentas podem decodificar.
Ele é o arquivo mais importante para compreender a superfície de ataque de um aplicativo.
DEX e o ambiente de execução
O código-fonte Java/Kotlin é compilado em código de bytes DEX (Dalvik Executable) no arquivo classes.dex. As versões modernas do Android o executam por meio do ART (Android Runtime).
O DEX pode ser convertido novamente em direção a um código legível, e é nisso que se baseia a análise estática de APKs.
Os quatro componentes
Os aplicativos Android são construídos com quatro tipos de componentes:
- Atividades: telas / interface do usuário.
- Serviços: trabalho em segundo plano.
- Receptores de transmissão: respondem a eventos do sistema.
- Provedores de conteúdo: compartilham dados entre aplicativos.
Componentes exportados
Um componente marcado como android:exported="true" pode ser invocado por outros aplicativos. Se esse componente executar ações sensíveis sem verificações, ele será uma superfície de ataque.
Os profissionais de testes de invasão procuram atividades, serviços e provedores exportados que vazem dados ou executem ações privilegiadas.
<activity android:name=".AdminActivity" android:exported="true"/>Permissões
Os aplicativos solicitam permissões no manifesto (por exemplo, INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Permissões amplas demais sugerem comportamento arriscado ou acesso excessivo a dados. As permissões personalizadas também podem estar configuradas incorretamente, permitindo acesso não autorizado.
<uses-permission android:name="android.permission.READ_SMS"/>Sandbox do aplicativo
O Android isola cada aplicativo em sua própria sandbox, com um UID exclusivo do Linux. Por padrão, os aplicativos não podem ler os dados uns dos outros.
As vulnerabilidades surgem quando os aplicativos enfraquecem essa barreira, por exemplo, com arquivos legíveis por qualquer usuário ou provedores expostos.
Armazenamento de dados do aplicativo
Um aplicativo instalado armazena dados privados em /data/data/<package>/: bancos de dados, preferências compartilhadas e arquivos.
Em um dispositivo com acesso root ou por meio de backups, um profissional de testes de invasão inspeciona esse diretório em busca de segredos armazenados de forma insegura, assunto explorado em uma lição posterior.
/data/data/com.example.app/Assinatura
Todo APK é assinado digitalmente; a assinatura fica em META-INF/. O Android a verifica durante a instalação e nas atualizações.
Se você modificar e reempacotar um aplicativo, deverá assiná-lo novamente, motivo pelo qual os desenvolvedores dependem da assinatura para detectar adulterações.
Bibliotecas nativas
A lógica crítica para o desempenho ou ofuscada pode estar em bibliotecas nativas (arquivos .so) dentro de lib/, compiladas a partir de C/C++.
Elas não estão no DEX, portanto exigem uma análise separada com desmontadores nativos. Às vezes, os desenvolvedores escondem segredos nesse local, acreditando equivocadamente que o código nativo é mais difícil de inspecionar.
lib/arm64-v8a/libnative.soVerificação rápida
Relembre qual atributo do manifesto expõe um componente a outros aplicativos.
Recapitulação
Agora você entende a estrutura dos aplicativos Android:
- Um APK é um ZIP que contém
AndroidManifest.xml,classes.dex, recursos e dados de assinatura. - Os aplicativos usam quatro componentes; os componentes exportados são superfícies de ataque.
- As permissões e a sandbox individual de cada aplicativo controlam o acesso; os dados privados ficam em
/data/data/. - Os APKs são assinados para detectar adulterações.
Em seguida, você fará a descompilação de um APK em uma análise estática.
Perguntas Frequentes
A aula “Estrutura de aplicações Android” é grátis?
Sim — o texto completo de “Estrutura de aplicações Android” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ethical Hacking Academy, atualize para CoddyKit PRO. O curso de Ethical Hacking Academy inclui 4 aulas no total.
O que vou aprender em “Estrutura de aplicações Android”?
Componentes internos do APK Você pratica Ethical Hacking Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ethical Hacking Academy?
Nenhuma experiência prévia é necessária. Ethical Hacking Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Estrutura de aplicações Android”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ethical Hacking Academy?
Sim. Cada aula de Ethical Hacking Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Estrutura de aplicações Android
- Análise estática de APKs
- Análise dinâmica com Frida
- Armazenamento e comunicações inseguras