Windows'un Gizli Offline Device ID Fonksiyonu Tersine Mühendislikle Çözüldü
Windows'un belgelenmemiş GetOfflineDeviceUniqueID fonksiyonu; clipc.dll, clipsvc.dll, RPC akışı ve TPM/UEFI tabanlı cihaz kimliği üretimi tersine mühendislikle incelendi.
clipc.dll içindeki belgelenmemiş GetOfflineDeviceUniqueID fonksiyonu, Windows lisanslama ve cihaz tanımlama bileşenlerinin kullandığı 32 baytlık, salt'a bağlı bir SHA-256 cihaz kimliği üretiyor. Microsoft bu DLL ve clipsvc.dll için PDB sembolü yayımlamadığı için fonksiyonun prototipi, veri yapıları ve RPC akışı IDA üzerinden manuel olarak yeniden inşa edilmiş.
Analiz, çağrının clipc.dll'den NdrClientCall3 üzerinden clipsvc.dll'e nasıl ilettiğini, proc 2 / komut 13 üzerinden hangi işlemi tetiklediğini ve TPM endorsement key, UEFI değişkenleri (OfflineUniqueIDEKPub, OfflineUniqueIDRandomSeed) ve registry tabanlı yedek yöntem gibi desteklenen kimlik alma yöntemlerini ortaya koyuyor. Ayrıca opsiyonel CRC çıktılarındaki bozuk davranışlar ile AppContainer/UWP çağrılarına izin veren RPC güvenlik tanımlayıcısı da inceleniyor.
Bu çalışma özellikle bazı ticari anti-cheat ürünlerinin bu fonksiyonu mevcut donanım kimlik rutinleriyle birlikte çağırdığının fark edilmesiyle başlamış. Windows'un donanım parmak izi için hangi makineye özgü değeri kullandığını ve bu değerin nihai kimliğe nasıl dönüştürüldüğünü anlamak, güvenlik araştırmacıları ve düşük seviye Windows geliştiricileri için değerli bir referans niteliği taşıyor.