
Pipeline estático in-vitro de dissecação de malware para Telegram, agentes de IA (Antigravity / Local Ollama / OpenCode) e IDA Pro 9.5 via ph4ntom-ida-bridge
In vitro («no vidro»): desmontagem estática automatizada de malware atrás de um vidro hermético — sem um único ciclo de execução da amostra no host (in vivo proibido), transformando a "caixa-preta" do binário em vidro transparente através do Telegram, agentes de IA (Antigravity / OpenCode / Custom CLI) e IDA Pro 9.5 (
ph4ntom-ida-bridge).
Você envia ao bot no Telegram qualquer arquivo ou compactado (até 2 GB) → o bot verifica a lista de permissões de user_id, baixa o arquivo para a quarentena, realiza uma triagem prévia rápida e determinística, se necessário inicia automaticamente o IDA Pro 9.5 isolado com ph4ntom-ida-bridge, executa engenharia reversa estática e descriptografia de configurações (execute_idapython + sandbox AST local) e envia o relatório Markdown pronto de volta para o mesmo chat.
Telethon) remove a limitação de 20 MB da API de Bot em nuvem, sem Docker e sem proxies de terceiros.ZIP (incluindo WinZip AES-128/256 via pyzipper), 7z, RAR/RAR5 (busca automática de 7z.exe/UnRAR.exe ou SEVENZIP_BIN/UNRAR_BIN explícitos, resiliência a codificações OEM CP866/CP1251), tar/gz/bz2/xz, CAB, ISO; seleção automática de senhas a partir da legenda do arquivo (pass: ...), de arquivos de texto vizinhos extraídos (ПАРОЛЬ.txt, readme.txt em UTF-8/CP1251/CP866) antes da recursão em arquivos compactados aninhados e de senhas padrão de malware (infected, malware, virus etc.); proteção contra zip-slip, symlinks e zip-bombs; preservação de .docm/.xlsm/.apk/.jar como contêineres com extração paralela de binários aninhados.MD5/SHA-1/SHA-256), entropia, PE (pefile: seções, RWX, imports por categorias de ameaça, overlay, TLS, Authenticode, .NET, varredura prioritária de .rdata/.data), revelação determinística de strings de pilha e buffers XOR de um byte (mov byte ptr [rbp/rsp+disp], imm8), ELF, Mach-O, DEX, macros VBA de Office (oletools), PDF (/JavaScript, /OpenAction, /URI), .lnk do Windows, PowerShell -enc e extrator de IOC.ORCHESTRATOR_INTERNET=1 habilitado (ou perfil extended_static / full_local), o daemon consulta passivamente o SHA-256 e domínios/IPs externos da triagem via MalwareBazaar, ThreatFox, VirusTotal REST v3 (se VT_API_KEY estiver definido), DNS-over-HTTPS e RDAP sem acessar servidores ativos dos atacantes, salvando jobs/<job_id>/osint_report.json. O agente chefe também recebe a CLI tools/osint_lookup.py (com proteção SSRF).ida.exe -A via tools/ida_session.py com diretório de staging isolado automático IDAUSR (não depende de permissões do sandbox em %APPDATA%\Hex-Rays\IDA Pro\plugins\), busca em 2 saltos de funções de usuário por XREF de string e autodescompilação da função principal, vinculação estrita por PID/porta em ~/.ph4ntom_ida_instances.json, registro de evidências da sessão em ida_evidence.json e encerramento garantido do processo — suas janelas do IDA abertas manualmente não são afetadas.[ПОДТВЕРЖДЕНО] / [ВЕРОЯТНО] / [НЕ ПОДТВЕРЖДЕНО] e a informar explicitamente os limites de confiança, enquanto o script tools/send_telegram_report.py verifica de forma determinística o relatório final contra triage_report.json e ida_evidence.json (bloqueando SHA-256 distorcidos, sub_* / Hex-Rays inventados quando a IDA não foi executada e veredictos clean infundados).safe_static (whitelist rigorosa de comandos e sandbox AST), mas com um clique são ativados extended_static (+ internet/OSINT) ou full_local (PowerShell completo + internet para um PC analítico dedicado).execute_idapython na IDA e sandbox local tools/run_static_decoder.py (filtro AST + sys.addaudithook, que proíbem a execução de processos, o registro e a escrita fora de jobs/<id>/decoded/, com --allow-network / --unrestricted-imports opcionais quando full_local está ativo).backends/): funciona de fábrica com Antigravity, com um agente de IA local autônomo (local — Ollama / qwen2.5-coder:7b / LM Studio / vLLM com controle de geração em streaming, inicialização automática de ollama serve e contexto de 16K) e com OpenCode (opencode run + config pronto opencode.json.example), e a troca entre o antigravity na nuvem e o modelo local é feita diretamente no Telegram com o comando /mode local ↔ /mode antigravity (ou com a tag pontual #local na legenda do arquivo) sem reiniciar o bot.user_id confiáveis (data/allowed_users.json). Usuários alheios são completamente ignorados; o proprietário gerencia o acesso através de /allow e /revoke.[Доверенный user_id в Telegram]
│ (любой файл / архив до 2 ГБ, опционально пароль в подписи)
▼
[bot_daemon.py (Telethon MTProto + Keepalive)]
├─ Белый список: data/allowed_users.json (/whoami, /allow, /revoke, /users, /status, /mode, /reset)
├─ Очередь (MAX_CONCURRENT_JOBS=1) → скачивание в jobs/<job_id>/sample/
├─ Этап 1: tools/triage.py → безопасная распаковка + стековый/XOR декодер + jobs/<job_id>/triage_report.json
└─ Этап 2: backends/* (Antigravity | Local LLM [Ollama/LM Studio] | OpenCode | Custom CLI)
│
▼
[ИИ-агент (строго статика)]
├─ VirusTotal MCP: проверка только SHA-256 / доменов / IP (без загрузки файла)
├─ IDA Pro 9.5: tools/ida_session.py open → MCP ida-bridge + static execute_idapython → close
├─ Локальные декодеры: tools/run_static_decoder.py (AST + audit hook sandbox)
└─ Финал: tools/send_telegram_report.py → jobs/<job_id>/delivery_ready.json
│
▼
[bot_daemon.py] → отправляет вердикт, сводку и файл report_<name>.md обратно в чат
O repositório público está configurado segundo o princípio secure-by-default (PERMISSION_PROFILE=safe_static em .env.example e opencode.json.example), e no seu PC pessoal ou ambiente dedicado as permissões são ampliadas de forma flexível: