Читаю серийник винта. Примерно так. Считывает нормально. Где виртуалка (Virtual Box) хранит этот серийник. Перерыл все и реестр и образ диска виртуалки но данный серийник не найду.
Не похоже. 1) Искал в теле виртуалки не обнаружил. 2) Сгенерировал новый виртуальный диск и код изменился (частично)
Нет. Формируется из кусков. Код (Text): Model : VBOX HARDDISK - Прошито в коде. Серийник: VB - прошито в коде X и Y генерируется при создании виртуального диска *.vdi Можно поменять ручками начиная с смещения 188h
Для полного изменения серийника (имитация реального диска) нужно править сырцы и перекомпилять иначе похоже никак. Ибо в реале дисков с серийником в формате VBXXXXXXXX-YYYYYYYY не существует.
Разобрался вроде. В файле DevATA.cpp есть : Код (Text): /* Generate a default serial number. */ char szSerial[ATA_SERIAL_NUMBER_LENGTH+1]; RTUUID Uuid; if (pIf->pDrvBlock) rc = pIf->pDrvBlock->pfnGetUuid(pIf->pDrvBlock, &Uuid); else RTUuidClear(&Uuid); if (RT_FAILURE(rc) || RTUuidIsNull(&Uuid)) { /* Generate a predictable serial for drives which don't have a UUID. */ RTStrPrintf(szSerial, sizeof(szSerial), "VB%x-%04x%04x", pIf->iLUN + pDevIns->iInstance * 32, pThis->aCts[i].IOPortBase1, pThis->aCts[i].IOPortBase2); } else RTStrPrintf(szSerial, sizeof(szSerial), "VB%08x-%08x", Uuid.au32[0], Uuid.au32[3]); Если лень компилять то можно ковырнуть VboxDD.dll . Ищем строку VB%08x-%08x и меняем на то что нужно нам.