
🔗 Aplicativo móvel orquestrador de segurança leve para verificação de URI, fornecendo uma interface unificada e multi-mecanismo para agregar e validar a segurança de links em tempo real.
Um aplicativo Android moderno para análise abrangente de segurança de URLs, combinando múltiplas APIs de detecção de ameaças com detecção avançada de falsificação de domínio para proteger os utilizadores de sites maliciosos.
Crie um ficheiro secrets.properties no diretório raiz:
ABUSEIPDB_API_KEY=sua_chave_abuseipdb
VIRUSTOTAL_API_KEY=sua_chave_virustotal
URLSCAN_API_KEY=sua_chave_urlscan
Importante: Ao utilizar esta aplicação, deve cumprir os Termos de Serviço de cada fornecedor de API:
Clone o repositório
git clone <repository-url>
cd olyx
Configure as chaves de API
cp secrets.properties.example secrets.properties
# Edite secrets.properties com as suas chaves de API
Compile e execute
./gradlew assembleDebug
./gradlew installDebug
olyx/
├── app/
│ ├── src/main/
│ │ ├── java/com/olyx/
│ │ │ ├── data/
│ │ │ │ ├── Models.kt # ApiResult, HistoryEntry
│ │ │ │ ├── HistoryManager.kt # Lógica de persistência
│ │ │ │ └── SpoofingDetector.kt # Motor de análise de domínio
│ │ │ ├── network/
│ │ │ │ └── ApiService.kt # Integrações de API
│ │ │ ├── ui/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ApiScoreCard.kt # Resultados individuais de API
│ │ │ │ │ └── GlobalScoreCard.kt # Exibição da pontuação agregada
│ │ │ │ ├── screens/
│ │ │ │ │ ├── HomeScreen.kt # Inserção de URL
│ │ │ │ │ ├── AnalysisScreen.kt # Exibição de resultados
│ │ │ │ │ ├── HistoryScreen.kt # Histórico de pesquisa
│ │ │ │ │ └── AboutScreen.kt # Informações da aplicação
│ │ │ │ ├── theme/
│ │ │ │ │ ├── Color.kt # Paleta do tema escuro
│ │ │ │ │ ├── Theme.kt # Configuração Material3
│ │ │ │ │ └── Type.kt # Tipografia
│ │ │ │ └── utils/
│ │ │ │ └── ScoreUtils.kt # Algoritmos de pontuação
│ │ │ ├── utils/
│ │ │ │ └── Constants.kt # Constantes da aplicação
│ │ │ └── MainActivity.kt # Ponto de entrada
│ │ └── res/
│ │ ├── raw/
│ │ │ └── legitimate_domains.txt # Lista de domínios protegidos
│ │ └── font/
│ │ ├── gemunulibre_regular.ttf
│ │ └── redhatdisplay_regular.ttf
├── screens/ # Capturas de ecrã
├── build.gradle.kts
└── secrets.properties # Chaves de API (não no repositório)
Edite app/src/main/res/raw/legitimate_domains.txt:
oseubanco.com
oseubanco.fr
oseunegocio.com
Modifique os limites em SpoofingDetector.kt:
private fun calculateSuspicion(...): Int {
if (distance == 1) return 90 // Muito semelhante → Risco alto
if (distance == 2) return 70 // Algo semelhante → Risco médio
if (distance == 3) return 50 // Menos semelhante → Risco médio-baixo
}
Atualize o impacto da falsificação em ScoreUtils.kt:
val penalty = (spoofingResult.suspicionLevel * 0.5).toInt() // 50% do nível de suspeita
# Executar testes unitários
./gradlew test
# Executar testes instrumentados
./gradlew connectedAndroidTest
# Gerar relatório de cobertura
./gradlew jacocoTestReport
Usa análise de desvio estatístico:
Pontuação Base = Média(Pontuações API)
Penalidade = Nível de Suspeita × 0.5
Pontuação Final = max(0, Pontuação Base - Penalidade)
Calcula o número mínimo de operações de edição (inserir/eliminar/substituir) entre strings para detetar typosquatting.
Este projeto está licenciado sob a GNU Affero General Public License v3.0. Consulte LICENSE para mais detalhes.