Uma ferramenta de linha de comando escrita em Go para realizar brute force de PIN em dispositivos Android conectados via USB usando ADB (Android Debug Bridge).
USO AUTORIZADO APENAS
Esta ferramenta é destinada EXCLUSIVAMENTE para:
- ✅ Testes de segurança autorizados
- ✅ Recuperação de acesso a dispositivos próprios
- ✅ Pesquisa de segurança e propósitos educacionais
- ✅ Demonstrações em ambientes controlados
O uso não autorizado desta ferramenta é ILEGAL e pode resultar em consequências criminais.
O autor NÃO se responsabiliza pelo uso indevido, ilegal ou não autorizado desta ferramenta. Ao usar este software, você concorda em assumir total responsabilidade por suas ações.
- 🔌 Conexão direta via USB usando ADB
- 🎯 Brute force inteligente de PINs (4-8 dígitos)
- 📊 Barra de progresso em tempo real
- ⏱️ Estimativa de tempo de conclusão
- 🔄 Suporte a múltiplos dispositivos
- 🛡️ Detecção de lockout e delays preventivos
- 🎨 Interface CLI amigável e colorida
- 📈 Estatísticas detalhadas ao final
- Homebrew (gerenciador de pacotes)
- Android Platform Tools (ADB)
- Go 1.21 ou superior
# Instalar Homebrew (se ainda não tiver)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Instalar Android Platform Tools (ADB)
brew install android-platform-tools
# Verificar se o ADB foi instalado corretamente
adb version
# Instalar Go (se ainda não tiver)
brew install go
# Verificar instalação do Go
go version# Clone o repositório
git clone https://github.com/EduCosta85/androidpin.git
cd androidpin
# Baixar dependências
go mod download
# Compilar
go build -o androidpin
# Executar
./androidpin --help# Instalar diretamente
go install github.com/EduCosta85/androidpin@latest
# Executar (certifique-se de que $GOPATH/bin está no PATH)
androidpin --help-
Habilitar Depuração USB:
- Vá em
Configurações→Sobre o telefone - Toque 7 vezes em
Número da versãopara habilitar o modo desenvolvedor - Volte para
Configurações→Opções do desenvolvedor - Habilite
Depuração USB
- Vá em
-
Conectar o Dispositivo:
- Conecte o dispositivo ao Mac via cabo USB
- Autorize a conexão ADB no dispositivo quando solicitado
- Verifique a conexão:
adb devices
adb devices./androidpin./androidpin --length 6 --min 000000 --max 999999./androidpin --start-from 5000./androidpin --attempts 100./androidpin --verbose./androidpin --estimate./androidpin --device SERIAL_DO_DISPOSITIVOFlags:
-d, --device string Serial do dispositivo (opcional)
-l, --length int Comprimento do PIN (padrão: 4)
-m, --min string PIN mínimo (padrão: "0000")
-M, --max string PIN máximo (padrão: "9999")
-D, --delay int Delay entre tentativas em ms (padrão: 1000)
-a, --attempts int Número máximo de tentativas (0 = ilimitado)
-L, --lockout-delay int Delay preventivo de lockout em ms (padrão: 30000)
-s, --start-from string Iniciar a partir de um PIN específico
-v, --verbose Modo verbose
-e, --estimate Apenas exibir estimativa de tempo
-h, --help Ajuda./androidpin --length 4 --min 0000 --max 9999./androidpin --length 4 --min 0000 --max 0999./androidpin --delay 2000 --lockout-delay 60000./androidpin --start-from 3456./androidpin --verbose --attempts 10| PIN Length | Combinações | Tempo Estimado (1s delay) |
|---|---|---|
| 4 dígitos | 10.000 | ~5.5 horas |
| 5 dígitos | 100.000 | ~55 horas |
| 6 dígitos | 1.000.000 | ~23 dias |
Nota: Estes tempos são estimativas. O tempo real pode variar dependendo de:
- Velocidade do dispositivo
- Delays de segurança impostos pelo Android
- Lockouts temporários
- Delays configurados na ferramenta
-
Tentativas Limitadas: Muitos dispositivos Android impõem um limite de tentativas antes de entrar em lockout temporário ou permanente.
-
Lockout Temporário: Após 5-10 tentativas incorretas, o dispositivo pode exigir uma espera de 30 segundos a 5 minutos.
-
Lockout Permanente: Alguns dispositivos podem bloquear permanentemente ou apagar dados após muitas tentativas.
-
Factory Reset Protection (FRP): Dispositivos com FRP ativo podem requerer credenciais do Google mesmo após reset.
- ✅ Sempre use delays adequados entre tentativas
- ✅ Monitore o dispositivo para detectar lockouts
- ✅ Comece com um range pequeno de PINs para testar
- ✅ Use o modo
--estimatepara planejar - ✅ Mantenha o dispositivo carregado durante o processo
# Verificar se o ADB vê o dispositivo
adb devices
# Reiniciar o servidor ADB
adb kill-server
adb start-server
adb devices# Verificar permissões de segurança
# Ir em: Preferências do Sistema → Segurança e Privacidade → Privacidade
# Permitir acesso aos dispositivos USB# Aguardar o tempo de lockout (geralmente 30s-5min)
# Ou usar delays maiores:
./androidpin --lockout-delay 300000 # 5 minutos# Reduzir o delay (cuidado com lockouts):
./androidpin --delay 500
# Ou testar apenas um subconjunto:
./androidpin --min 0000 --max 1000androidpin/
├── main.go # CLI e lógica principal
├── adb.go # Funções de comunicação com ADB
├── bruteforce.go # Lógica de brute force
├── go.mod # Dependências do Go
├── go.sum # Checksums das dependências
├── README.md # Documentação
└── .gitignore # Arquivos ignorados pelo Git
Contribuições são bem-vindas! Por favor:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
- ✨ Versão inicial
- 🔌 Suporte a conexão USB via ADB
- 🎯 Brute force de PINs de 4-8 dígitos
- 📊 Barra de progresso
- ⏱️ Estimativa de tempo
- 🛡️ Detecção de lockout
Este projeto é fornecido "como está", sem garantias de qualquer tipo. Veja o arquivo LICENSE para mais detalhes.
EduCosta85
- Comunidade Android Open Source
- Google Android Platform Tools
- Biblioteca Cobra CLI
- Biblioteca ProgressBar
Esta ferramenta foi criada exclusivamente para fins educacionais e de pesquisa em segurança. O desenvolvedor não assume qualquer responsabilidade pelo uso inadequado desta ferramenta. Sempre obtenha permissão explícita antes de testar a segurança de qualquer dispositivo que não seja seu.
LEMBRE-SE: Acessar dispositivos sem autorização é crime na maioria dos países.
🔒 Use de forma responsável e ética!