Финальный ответ модели
Достаточно для полного отчёта — я прошёл через entry, main-монолит, process-сканнер, clipboard-VEH, WinHTTP, DPAPI и GDI-скриншот.
64-битный PE (AMD64, image_base 0x140000000), собранный Rust (MinGW CRT start→__mingw_CRTStartup→fninit, 3 TLS callback'а, gimli/addr2line/rustc-demangle-0.1.27 в std). Это browser cookie stealer: Chrome/Edge/Firefox + Discord/Telegram. 1278 функций, 806 строк, 191 импорт / 12 DLL.
start @ 0x140045A50 → CRT init → sub_140045F60 (fninit).TlsCallback_0 @0x140024610 (626B, std::sys::thread_local::guard), TlsCallback_1 @0x140045ae0 (118B → sub_140069EE0(1)), TlsCallback_2 (22B). Порядок: 0 → 1 → 2.sub_140003CA0 @0x140003ca0, 35822B, 7265 инстр., 819 вызовов, 189 уникальных калл. degraded_lift_oversized, 8071 строка.CreateFileA(..., GENERIC_READ=0x80000000, ...) + цикл ReadFile чанками 0x100000 → CreateProcessA с SW_HIDE. На failure — TerminateProcess.Process-сканнер sub_14000F9D1 (3515B): Process32First/Next, матчит chrome.exe/msedge.exe/firefox.exe, FindFirstFileA/FindNextFileA, from_utf8_lossy. Баннеры:
[Chrome] Not running.\n[Chrome] Decrypting cookies...Cannot decrypt master key.\nClipboard-VEH sub_14000E933 (2519B, ULONG __stdcall(PVOID)): OpenClipboard(0) → GetClipboardData(CF_TEXT=1) → GlobalLock, GlobalAlloc(GMEM_MOVEABLE). Крипто-префиксы: bc1, 0x, ltc1, L, D, X, Q, t1/t3/zs, bitcoincash:.
WinHTTP (C2) sub_1400122FE (646B):
WinHttpOpen UA = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY.WinHttpConnect(hSession, L"127.0.0.1", 8443, 0) — C2 на 127.0.0.1:8443.WinHttpSetTimeouts(10000, 10000, 30000, 30000).DPAPI sub_140002E2A (116B): CryptUnprotectData(&in, 0,0,0,0, 0, &out) (flags=0, без entropy) + LocalFree. Вызывается из main и из sub_140011613 (master key Chrome).
GDI-скриншот sub_14000D15F (407B): GetSystemMetrics(SM_CXSCREEN/SM_CYSCREEN), GetDC, CreateCompatibleDC/Bitmap, SelectObject, BitBlt(..., SRCCOPY=0xCC0020), GetDIBbits(DIB_RGB_COLORS). Выход — 24-bit BMP (магик 0x4d42="BM").
Rust core float: sub_14004B810 (4021B) + sub_14004CD10 (4463B) — 0x402c921f=1.5, 0x3ffe45f306dc9c88=f64 magic, 0x3fff000000000000.
CreateProcessA×5, OpenProcess×2, RegCreateKeyExA, RegDeleteKeyA×2, RegDeleteValueA×4, RegOpenKeyExA×9, RegQueryValueExA×4, RegSetValueExA×4 (+ ShellExecuteA SW_HIDE, CreateFileA/ReadFile). Строка "Unknown command".
127.0.0.1:8443 — локальный прослушиватель (WS2-сервер), а не прямой выход в интернет; реальный C2-хост, вероятно, приходит из конфига/команды.#[no_mangle]-стек; 189 калли, часть — CRT/core::fmt::Display.sub_14004B810/sub_14004CD10 — float-конвертация core, не app-логика.Хотите, чтобы я раскрыл WS2-сервер (accept-цикл) и GDI-обёртку sub_14000D4ED, либо сразу string_xrefs по 127.0.0.1/UA/баннерам?