Skip to content

EduCosta85/androidpin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android USB PIN Brute Force Tool

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).

⚠️ AVISO LEGAL

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.

📋 Características

  • 🔌 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

🔧 Pré-requisitos

macOS

  1. Homebrew (gerenciador de pacotes)
  2. Android Platform Tools (ADB)
  3. Go 1.21 ou superior

Instalação dos Pré-requisitos

# 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

📥 Instalação

Opção 1: Compilar do Código Fonte

# 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

Opção 2: Instalação Direta

# Instalar diretamente
go install github.com/EduCosta85/androidpin@latest

# Executar (certifique-se de que $GOPATH/bin está no PATH)
androidpin --help

🚀 Uso

Preparação do Dispositivo Android

  1. Habilitar Depuração USB:

    • Vá em ConfiguraçõesSobre o telefone
    • Toque 7 vezes em Número da versão para habilitar o modo desenvolvedor
    • Volte para ConfiguraçõesOpções do desenvolvedor
    • Habilite Depuração USB
  2. 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

Comandos Básicos

Verificar dispositivos conectados

adb devices

Executar brute force básico (PIN de 4 dígitos)

./androidpin

Executar com PIN de 6 dígitos

./androidpin --length 6 --min 000000 --max 999999

Iniciar de um PIN específico

./androidpin --start-from 5000

Limitar número de tentativas

./androidpin --attempts 100

Modo verbose (detalhado)

./androidpin --verbose

Apenas estimativa de tempo

./androidpin --estimate

Especificar dispositivo (quando há múltiplos)

./androidpin --device SERIAL_DO_DISPOSITIVO

Opções Avançadas

Flags:
  -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

📊 Exemplos de Uso

Exemplo 1: Brute Force Completo de 4 Dígitos

./androidpin --length 4 --min 0000 --max 9999

Exemplo 2: Testar apenas primeiros 1000 PINs

./androidpin --length 4 --min 0000 --max 0999

Exemplo 3: Brute Force com mais delay (dispositivos mais lentos)

./androidpin --delay 2000 --lockout-delay 60000

Exemplo 4: Continuar de onde parou

./androidpin --start-from 3456

Exemplo 5: Modo verbose para debug

./androidpin --verbose --attempts 10

⏱️ Estimativas de Tempo

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

🛡️ Limitações e Considerações

Limitações do Android

  1. Tentativas Limitadas: Muitos dispositivos Android impõem um limite de tentativas antes de entrar em lockout temporário ou permanente.

  2. Lockout Temporário: Após 5-10 tentativas incorretas, o dispositivo pode exigir uma espera de 30 segundos a 5 minutos.

  3. Lockout Permanente: Alguns dispositivos podem bloquear permanentemente ou apagar dados após muitas tentativas.

  4. Factory Reset Protection (FRP): Dispositivos com FRP ativo podem requerer credenciais do Google mesmo após reset.

Melhores Práticas

  • ✅ Sempre use delays adequados entre tentativas
  • ✅ Monitore o dispositivo para detectar lockouts
  • ✅ Comece com um range pequeno de PINs para testar
  • ✅ Use o modo --estimate para planejar
  • ✅ Mantenha o dispositivo carregado durante o processo

🔍 Troubleshooting

Dispositivo não detectado

# Verificar se o ADB vê o dispositivo
adb devices

# Reiniciar o servidor ADB
adb kill-server
adb start-server
adb devices

Erro de permissão no Mac

# Verificar permissões de segurança
# Ir em: Preferências do Sistema → Segurança e Privacidade → Privacidade
# Permitir acesso aos dispositivos USB

Dispositivo em lockout

# Aguardar o tempo de lockout (geralmente 30s-5min)
# Ou usar delays maiores:
./androidpin --lockout-delay 300000  # 5 minutos

Processo muito lento

# Reduzir o delay (cuidado com lockouts):
./androidpin --delay 500

# Ou testar apenas um subconjunto:
./androidpin --min 0000 --max 1000

🏗️ Arquitetura do Projeto

androidpin/
├── 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

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

📝 Changelog

v1.0.0 (2025)

  • ✨ 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

📄 Licença

Este projeto é fornecido "como está", sem garantias de qualquer tipo. Veja o arquivo LICENSE para mais detalhes.

👨‍💻 Autor

EduCosta85

🙏 Agradecimentos

  • Comunidade Android Open Source
  • Google Android Platform Tools
  • Biblioteca Cobra CLI
  • Biblioteca ProgressBar

⚖️ Disclaimer

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!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors