
Pipeline statico in-vitro di dissezione di malware per Telegram, agenti AI (Antigravity / Local Ollama / OpenCode) e IDA Pro 9.5 tramite ph4ntom-ida-bridge
In vitro («nel vetro»): analisi statica automatizzata di malware dietro un vetro ermetico — senza un singolo ciclo di esecuzione del campione sull'host (in vivo vietato), trasformando la "scatola nera" del binario in vetro trasparente tramite Telegram, agenti IA (Antigravity / OpenCode / Custom CLI) e IDA Pro 9.5 (
ph4ntom-ida-bridge).
Inviate al bot su Telegram qualsiasi file o archivio (fino a 2 GB) → il bot verifica la whitelist user_id, scarica il file in quarantena, esegue un rapido pre-triage deterministico, se necessario avvia autonomamente un'istanza isolata di IDA Pro 9.5 con ph4ntom-ida-bridge, esegue il reverse statico e la decifratura delle configurazioni (execute_idapython + sandbox AST locale) e restituisce un report Markdown pronto nella stessa chat.
Telethon) che elimina il limite di 20 MB dell'API cloud di Bot senza Docker e proxy di terze parti.ZIP (incluso WinZip AES-128/256 tramite pyzipper), 7z, RAR/RAR5 (ricerca automatica di 7z.exe/UnRAR.exe o espliciti SEVENZIP_BIN/UNRAR_BIN, resilienza alle codifiche OEM CP866/CP1251), tar/gz/bz2/xz, CAB, ISO; selezione automatica delle password dalla didascalia del file (pass: ...), dai file di testo adiacenti estratti (ПАРОЛЬ.txt, readme.txt in UTF-8/CP1251/CP866) prima della ricorsione negli archivi annidati e dalle password malware standard (infected, malware, virus ecc.); protezione da zip-slip, symlink e zip-bomb; conservazione di .docm/.xlsm/.apk/.jar come container con estrazione parallela dei binari annidati.MD5/SHA-1/SHA-256), entropia, PE (pefile: sezioni, RWX, import per categorie di minaccia, overlay, TLS, Authenticode, .NET, scansione prioritaria di .rdata/.data), rivelazione deterministica di stringhe stack e buffer XOR a singolo byte (mov byte ptr [rbp/rsp+disp], imm8), ELF, Mach-O, DEX, macro VBA di Office (oletools), PDF (/JavaScript, /OpenAction, /URI), .lnk di Windows, PowerShell -enc ed estrattore IOC.ORCHESTRATOR_INTERNET=1 abilitato (o profilo extended_static / full_local) il demone verifica passivamente SHA-256 e domini/IP esterni dal triage tramite MalwareBazaar, ThreatFox, VirusTotal REST v3 (se VT_API_KEY è impostata), DNS-over-HTTPS e RDAP senza contattare i server live degli attaccanti, salvando jobs/<job_id>/osint_report.json. L'agente capo riceve anche la CLI tools/osint_lookup.py (con protezione SSRF).ida.exe -A tramite tools/ida_session.py con directory di staging isolata automatica IDAUSR (indipendente dai permessi della sandbox su %APPDATA%\Hex-Rays\IDA Pro\plugins\), ricerca a 2 hop delle funzioni utente tramite XREF di stringhe e autodecompilazione della funzione principale, associazione rigorosa tramite PID/porta in ~/.ph4ntom_ida_instances.json, registrazione delle prove di sessione in ida_evidence.json e terminazione garantita del processo — le vostre finestre IDA aperte manualmente non vengono toccate.[ПОДТВЕРЖДЕНО] / [ВЕРОЯТНО] / [НЕ ПОДТВЕРЖДЕНО] e a dichiarare esplicitamente i limiti di certezza, mentre lo script tools/send_telegram_report.py confronta in modo deterministico il report finale con triage_report.json e ida_evidence.json (bloccando SHA-256 alterati, sub_* / Hex-Rays inventati quando IDA non è stato eseguito e verdetti clean infondati).safe_static (whitelist rigorosa dei comandi e sandbox AST), ma con un clic si attivano extended_static (+ internet/OSINT) oppure full_local (PowerShell completo + internet per un PC analitico dedicato).execute_idapython in IDA e sandbox locale tools/run_static_decoder.py (filtro AST + sys.addaudithook, che vietano l'avvio di processi, il registro e la scrittura al di fuori di jobs/<id>/decoded/, con --allow-network / --unrestricted-imports opzionali quando full_local è attivo).backends/): funziona out of the box con Antigravity, un agente IA locale autonomo (local — Ollama / qwen2.5-coder:7b / LM Studio / vLLM con controllo in streaming della generazione, avvio automatico di ollama serve e contesto 16K) e OpenCode (opencode run + config pronto opencode.json.example), mentre il passaggio tra antigravity cloud e modello locale si effettua direttamente in Telegram con il comando /mode local ↔ /mode antigravity (oppure con il tag una tantum #local nella didascalia del file) senza riavviare il bot.user_id fidati (data/allowed_users.json). Gli utenti estranei vengono completamente ignorati; il proprietario gestisce l'accesso tramite /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 обратно в чат
Il repository pubblico è configurato secondo il principio secure-by-default (PERMISSION_PROFILE=safe_static in .env.example e opencode.json.example), mentre sul vostro PC personale o su una macchina dedicata i permessi vengono estesi in modo flessibile: