A Windows 11 teljesítményével kapcsolatos kritikák az elmúlt hónapokban egyre erősödtek, és a kedélyek akkor forrtak igazán fel, amikor felhasználók felfedeztek egy „Windows Health and Optimized Experiences” nevű szolgáltatást, amely csendben fut a háttérben. Vírusszerű gyorsasággal terjedt el az állítás: ez a szolgáltatás 15 percenként gyűjt CPU-, hőmérséklet- és akkumulátoradatokat, majd elküldi azokat a Microsoftnak. Xusheng Li visszafejtő mérnök azonban alapos technikai vizsgálatot végzett, és az eredmények jóval árnyaltabb képet festenek – mind a riasztgatók, mind a Microsoft számára tanulságos módon.
Mi az a whesvc, és hogyan működik?
A szolgáltatás mögött a whesvc folyamat áll. Scott Hanselman, a Microsoft egyik mérnöke korábban nyilvánosan is elmagyarázta a célját: a rendszer lassú vagy akadozó viselkedés észlelésekor célzott teljesítménydiagnosztikai nyomkövetéseket rögzít, amelyek helyben tárolódnak, és a felhasználó maga dönthet arról, hogy elküldi-e őket a Feedback Hubon keresztül.
Li vizsgálata ezt alapvetően megerősíti, ugyanakkor rávilágít arra, hogy a megvalósítás meglepően kifinomult. Maga a whesvc szolgáltatás bináris kódja meglehetősen kompakt; az érdemi funkcionalitás a windiag.dll könyvtárban lakik, amely a Lua 5.4.7 szkriptnyelvét ágyazza be. Ehhez csatlakozik a whesvc_assets.dll, amely összesen 84 lefordított Lua-szkriptet tartalmaz, mindegyik más-más diagnosztikai forgatókönyvet kezel.
Megdöbbentően széles képességek – de mire használják valójában?
A visszafejtő azt találta, hogy a szkriptmotorhoz 79 natív függvény van exponálva, ami rendkívül széles hozzáférést biztosít a Windows belső működéséhez. Elméletben a szolgáltatás képes:
- a Windows Registry olvasására és módosítására,
- tetszőleges fájlműveletek végrehajtására,
- folyamatok létrehozására és kezelésére,
- WMI (Windows Management Instrumentation) lekérdezések futtatására,
- ETW (Event Tracing for Windows) nyomkövetések gyűjtésére,
- biztonsági tokenek vizsgálatára,
- energiagazdálkodási és hőmérsékleti adatok lekérésére,
- szimbólumok letöltésére, .cab fájlok készítésére,
- HTTP-kérések indítására,
- valamint natív DLL-ekkel és Windows-leírójelekkel való közvetlen interakcióra egy általános célú FFI (foreign function interface) felületen keresztül.
Ez papíron jóval több, mint amit egy egyszerű teljesítménydiagnosztikai eszköztől várnánk. Li azonban hangsúlyozza: az, hogy képes rá, nem jelenti azt, hogy teszi is. A valóságban szállított szkriptek meglehetősen hétköznapi feladatokra használják ezeket a lehetőségeket.
A Registry-hozzáférést például döntően arra használja, hogy a szolgáltatás saját belső számlálóit megőrizze az újraindítások között. Egy illesztőprogram-információs modul ugyan módosíthatja a Windows Driver Verifier beállításait, de ez egy specifikus környezeti változóhoz van kötve, és a memóriamonitorozási funkcionalitás részeként működik – Li szerint ez a leginkább „beavatkozó” dolog, amit a whesvc tesz.
Mire képesek a diagnosztikai szkriptek?
A 84 szkript konkrét diagnosztikai feladatokat old meg. Néhány példa:
- Az egyik szkript a Microsoft saját powercfg.exe eszközét indítja el, és Sleep Study jelentést készít.
- Egy másik a wpr.exe segítségével von össze Windows Performance Recorder nyomkövetéseket.
- A szolgáltatás képes nyomkövetést rögzíteni, ha egy alkalmazás nem reagál, ha beviteli késések vagy képernyőhibák lépnek fel, ha egy alkalmazás lassan indul, vagy ha valamely rendszerszolgáltatás függő állapotban ragad.
- Energiagazdálkodási moduljai képesek felderíteni a túlzott akkumulátorlemerülés okát, megállapítani, mi akadályozta meg a gépet az alvásba lépésben, és reagálni tartósan magas energiafogyasztásra.
A memory_handle_leak modul például memóriaszivárgás diagnosztizálását végzi: több időintervallumon át nyomon követi a memória- és leírójelszámokat, majd lineáris regressziós módszerrel különíti el a valódi szivárgást a normál növekedéstől. A system_summary szkript pedig elkészíti az említett 900 másodperces (15 perces) JSON-összefoglalót – de ez kizárólag helyben tárolódik.
Kémprogram vagy sem? – A végső értékelés
Annak ellenére, hogy a szolgáltatás rendelkezik hálózati képességekkel, Li egyetlen forgatókönyvet sem talált, amely valóban tetszőleges HTTP-kéréseket küldene ki. A 84 szkriptben összesen egyetlen URL azonosítható: a Microsoft nyilvános szimbólumszervere – és ez a funkció normál kiskereskedelmi Windows-telepítéseken le van tiltva.
A visszafejtő tehát azt mondja: gyanús dolgot keresett, de nem talált. A szolgáltatás nem rögzíti titokban a képernyőt, és a diagnosztikai nyomkövetések nem töltődnek fel automatikusan a Microsofthoz – a vírusosan terjedt állításokkal szemben.
Li összefoglalása szerint a Microsoft lényegében egy általános célú rendszerdiagnosztikai motort épített, amely SYSTEM jogosultsággal fut, és a Registry-manipulációtól a folyamatlétrehozáson át a natív kódfuttatásig mindent tud. A szállított szkriptek a teljesítménydiagnosztika határain belül maradnak – az alapul szolgáló gépezet azonban jóval nagyobb hatalommal bír, mint amennyit a feladat megkívánna. Ez önmagában nem teszi kémprogrammá, de nem is ad okot arra, hogy a felhasználók teljesen figyelmen kívül hagyják.
Gyakori kérdések
Mit csinál pontosan a Windows 11 whesvc szolgáltatása?
A whesvc (Windows Health and Optimized Experiences) egy teljesítménydiagnosztikai szolgáltatás, amely lassú vagy akadozó rendszerviselkedés észlelésekor nyomkövetési adatokat rögzít, és ezeket helyben tárolja. A felhasználó dönthet arról, hogy elküldi-e a Feedback Hubon keresztül.
Tényleg elküldi az adatokat a Microsoftnak 15 percenként?
A vizsgálat szerint nem. A 15 perces JSON-összefoglaló helyben tárolódik, és Li egyetlen szkriptben sem talált olyan forgatókönyvet, amely automatikusan, tetszőleges HTTP-kérésekkel adatot küldene ki a Microsofthoz normál kiskereskedelmi telepítésen.
Miért van a szolgáltatásnak olyan sok képessége, ami messze meghaladja a diagnosztika szükségleteit?
A whesvc egy általános célú diagnosztikai motorra épül, amely Lua szkriptnyelvvel és 79 natív függvénnyel rendkívül rugalmasan bővíthető. A jelenleg szállított 84 szkript azonban csak a teljesítménydiagnosztikai feladatokra használja ezeket a lehetőségeket – a szélesebb képességkészlet tehát egyelőre kihasználatlan marad.
Hogyan lehet megnézni a részletes technikai elemzést?
Xusheng Li visszafejtő a teljes mélyreható elemzést saját hivatalos blogján tette közzé, ahol a szkriptek működésének minden részlete megtalálható.
Forrás: Neowin













