Servidor backend portável para geração de payloads de ativação iOS. Este projeto implementa a parte do servidor do sistema de bypass de ativação, gerando dinamicamente os databases SQLite necessários baseados no modelo do dispositivo, GUID e serial number.
- Como Funciona
- Configuração Rápida
- Como Configurar a URL da API no Cliente
- Exemplos de Uso
- Deploy em Outras Plataformas
- Suporte e Troubleshooting
| Guia | Descrição |
|---|---|
| 🚀 Início Rápido | Configure tudo em 5 minutos |
| 🪟 Cliente Windows - Pronto | Cliente C# já compilado e pronto para usar! |
| 🪟 Cliente Windows Setup | Como configurar o cliente C# no Windows |
| 🍎 Cliente macOS | Como configurar o cliente Python no Mac |
| ☁️ Deploy Vercel | Deploy serverless no Vercel |
| 🌐 Deploy Tradicional | Deploy em hospedagem Apache/Nginx |
| 📡 API Reference | Referência completa da API REST |
| 🔧 Troubleshooting | Solução de problemas comuns |
Este servidor NÃO precisa de acesso ao dispositivo iOS. Ele apenas:
-
Recebe uma requisição HTTP com 3 parâmetros:
prd: Modelo do dispositivo (ex:iPhone14,5)guid: GUID extraído dos logs do sistemasn: Serial number do dispositivo
-
Gera três arquivos SQLite especializados:
fixedfile: ZIP contendo MobileGestalt.plistbelliloveu.png: BLDatabaseManager.sqlitedownloads.sqlitedb: Database final para injeção
-
Retorna a URL de download do payload final
-
O cliente (rodando no seu Windows ou Mac) faz o download e injeta no dispositivo via USB
- Clique no botão "Run" no topo da página
- Aguarde o servidor iniciar
- Copie a URL que aparece no webview (algo como
https://seu-projeto.replit.app) - Esta URL é sua API! Anote ela para configurar no cliente
Abra esta URL no navegador:
https://sua-url-do-replit.app/health
Você deve ver uma resposta JSON indicando que o servidor está saudável.
Você precisa editar o arquivo do cliente Windows e mudar a linha onde diz REMOTE_API:
Arquivo: client_windows.cs (ou similar)
Encontre esta linha:
private const string REMOTE_API = "https://albert.ip-info.me/files/get.php";Mude para:
private const string REMOTE_API = "https://SUA-URL-DO-REPLIT.app";- Abra o arquivo
client_windows.csno Visual Studio ou em qualquer editor de código - Procure pela linha que começa com
private const string REMOTE_API - Substitua a URL antiga pela URL do seu servidor Replit
- Salve o arquivo
- Recompile o projeto (Build → Rebuild Solution no Visual Studio)
- Execute o programa compilado normalmente
Exemplo Prático:
// ANTES:
private const string REMOTE_API = "https://albert.ip-info.me/files/get.php";
// DEPOIS:
private const string REMOTE_API = "https://meu-servidor-ios.replit.app";Se você usar o cliente Python, a configuração é ainda mais simples!
O cliente Python NÃO PRECISA DE SERVIDOR REMOTO - ele gera os payloads localmente. Mas se quiser usar este servidor mesmo assim:
Arquivo: offline_bypass.py (procure no início do arquivo)
Adicione/Modifique:
# No início do arquivo, adicione:
SERVER_URL = "https://SUA-URL-DO-REPLIT.app"
# E na função que faz requisição HTTP, use:
url = f"{SERVER_URL}?prd={modelo}&guid={guid}&sn={serial}"IMPORTANTE: O script Python original já tem geração offline embutida, então você provavelmente não precisa modificá-lo.
https://sua-url-replit.app/?prd=iPhone14,5&guid=12345678-1234-1234-1234-123456789ABC&sn=SERIAL123
Você deve receber de volta: Uma URL para download do payload, algo como:
https://sua-url-replit.app/cache/downloads_abc123xyz.sqlitedb
curl "https://sua-url-replit.app/?prd=iPhone14,5&guid=12345678-1234-1234-1234-123456789ABC&sn=SERIAL123"curl "https://sua-url-replit.app/?prd=iPhone14,5&guid=12345678-1234-1234-1234-123456789ABC&sn=SERIAL123&format=json"Resposta:
{
"success": true,
"download_url": "https://sua-url.app/cache/downloads_abc123.sqlitedb",
"device": {
"model": "iPhone14,5",
"guid": "12345678-1234-1234-1234-123456789ABC",
"serial": "SERIAL123"
},
"timestamp": "2025-11-21T14:30:00+00:00"
}Este servidor é 100% portável e funciona em qualquer lugar que suporte PHP!
- ✅ Replit (Recomendado) - Já configurado neste projeto
- ✅ Vercel - Ver guia de deployment
- ✅ Hospedagem Tradicional (Locaweb, Hostinger, etc) - Ver guia
- ✅ Servidor VPS (DigitalOcean, AWS, etc) - Ver guia
- Baixe todo o projeto (botão "Download as ZIP" no Replit)
- Extraia o arquivo ZIP
- Faça upload para o seu novo servidor
- Configure a variável
BASE_URL(se necessário) - Teste o endpoint
/health
.
├── public/ # Ponto de entrada do servidor
│ └── index.php # API principal
├── config/ # Configurações e lógica
│ ├── config.php # Configurações gerais
│ ├── PayloadGenerator.php # Gerador de payloads
│ ├── Logger.php # Sistema de logs
│ └── templates/ # Templates SQL
│ ├── bl_database.sql
│ └── downloads_database.sql
├── assets/ # ⚠️ IMPORTANTE: Adicione seus arquivos MobileGestalt aqui
│ └── Maker/ # Organize por modelo (ex: iPhone14,5/)
├── cache/ # Arquivos temporários gerados (auto-criado)
├── logs/ # Logs do servidor (auto-criado)
└── README.md # Este arquivo
Para que o servidor funcione, você PRECISA adicionar os arquivos MobileGestalt para cada modelo de iPhone/iPad que deseja suportar.
assets/
└── Maker/
├── iPhone14,5/
│ └── com.apple.MobileGestalt.plist
├── iPhone13,2/
│ └── com.apple.MobileGestalt.plist
├── iPhone12,1/
│ └── com.apple.MobileGestalt.plist
└── ... (outros modelos)
Como obter estes arquivos: Eles normalmente vêm no pacote completo do projeto original. Se você não os tem, o servidor retornará um erro informando quais modelos estão disponíveis.
# Verifique se o PHP está instalado
php -v
# Teste manualmente
cd public
php -S 0.0.0.0:5000Significa que você não tem o arquivo MobileGestalt para aquele modelo de iPhone. Verifique a estrutura em assets/Maker/.
Os logs ficam em logs/server_YYYY-MM-DD.log
# Ver logs do dia atual
cat logs/server_$(date +%Y-%m-%d).log
# Ver em tempo real
tail -f logs/server_$(date +%Y-%m-%d).log/health- Verifica status do servidor/status- Informações detalhadas e estatísticas/?prd=...&guid=...&sn=...- Gera payload
Você pode personalizar o comportamento do servidor:
# Ativar modo debug (mostra erros detalhados)
DEBUG_MODE=true
# Definir URL base manualmente
BASE_URL=https://meu-dominio.com
# Tempo de vida do cache (em segundos)
CACHE_LIFETIME=3600
# Timezone
TIMEZONE=America/Sao_PauloNo Replit: Use a aba "Secrets" para adicionar estas variáveis.
Este projeto é fornecido sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Este software é fornecido apenas para fins educacionais e de pesquisa. Os autores não se responsabilizam por qualquer uso indevido ou danos causados. Certifique-se de ter autorização antes de realizar operações em qualquer dispositivo.
- Verifique a seção Troubleshooting acima
- Verifique os logs em
logs/ - Teste o endpoint
/healthpara diagnóstico - Consulte os guias de deployment em
docs/deployment/
Desenvolvido com ❤️ para estudos de TI no MIT