Серийник винта по виртуалкой (Virtual Box)

Тема в разделе "WASM.RESEARCH", создана пользователем asmlamo, 14 июн 2009.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Читаю серийник винта.

    Примерно так.

    Считывает нормально.

    Где виртуалка (Virtual Box) хранит этот серийник.

    Перерыл все и реестр и образ диска виртуалки но данный серийник не найду.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Скорее всего вшит в код.
     
  3. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Не похоже.

    1) Искал в теле виртуалки не обнаружил.
    2) Сгенерировал новый виртуальный диск и код изменился (частично)
     
  4. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    На одном диске:

    BV851f91974-20c414 .1 0 BVXOH RADDSI

    На другом:

    BV39b99b104-0eda3b .1 0 BVXOH RADDSI
     
  5. Marazm

    Marazm Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    95
    Так она же opensource. Загляните в код :)
     
  6. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Пасиб.

    Я ступил немного ...
     
  7. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Хотя при таких размерах проекта найти непросто ...
     
  8. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Вроде обнаружил нечто похожее в DevATA.cpp
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу, ataConstruct()
     
  10. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    У меня подозрение, что он просто где-то в xml'ях лежит
     
  11. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Нет.
    Формируется из кусков.

    Код (Text):
    1. Model : VBOX HARDDISK
    - Прошито в коде.


    Серийник:
    VB - прошито в коде

    X и Y генерируется при создании виртуального диска *.vdi

    Можно поменять ручками начиная с смещения 188h
     
  12. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Для полного изменения серийника (имитация реального диска) нужно править сырцы и перекомпилять иначе похоже никак.

    Ибо в реале дисков с серийником в формате VBXXXXXXXX-YYYYYYYY не существует.
     
  13. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Model : VBOX HARDDISK

    Прошито в модуле VboxDD.dll меняется ручками и все работает.
     
  14. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Разобрался вроде.

    В файле DevATA.cpp есть :

    Код (Text):
    1.    /* Generate a default serial number. */
    2.                     char szSerial[ATA_SERIAL_NUMBER_LENGTH+1];
    3.                     RTUUID Uuid;
    4.                     if (pIf->pDrvBlock)
    5.                         rc = pIf->pDrvBlock->pfnGetUuid(pIf->pDrvBlock, &Uuid);
    6.                     else
    7.                         RTUuidClear(&Uuid);
    8.  
    9.                     if (RT_FAILURE(rc) || RTUuidIsNull(&Uuid))
    10.                     {
    11.                         /* Generate a predictable serial for drives which don't have a UUID. */
    12.                         RTStrPrintf(szSerial, sizeof(szSerial), "VB%x-%04x%04x",
    13.                                     pIf->iLUN + pDevIns->iInstance * 32,
    14.                                     pThis->aCts[i].IOPortBase1, pThis->aCts[i].IOPortBase2);
    15.                     }
    16.                     else
    17.                         RTStrPrintf(szSerial, sizeof(szSerial), "VB%08x-%08x", Uuid.au32[0], Uuid.au32[3]);
    Если лень компилять то можно ковырнуть VboxDD.dll .
    Ищем строку VB%08x-%08x и меняем на то что нужно нам.
     
  15. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Кто либо компилил Virtual Box под винду ?

    Получалось ? Какой компиллер юзали ?
     
  16. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    MinGW успешно справлялся с ним.
     
  17. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    А мелкософтовская студия осилит ?

    Я просто в С++ ламер полный вот не знаю с какой стороный подойти :)