Сейчас на форуме: zds, kris_sexy (+7 невидимых)

 eXeL@B —› Крэки, обсуждения —› Что такое VolumeSerialNumber из GetVolumeInformation?
Посл.ответ Сообщение

Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 14 декабря 2006 10:06
· Личное сообщение · #1

Драсте,

Вопрос вот в чем: что такое VolumeSerialNumber который возвращает GetVolimeInformation?
Сразу хочу предупредить всеобщее заблуждение, что это серийный номер диска, это серийный номер раздела.

Данный серийный номер представляет из себя 32 битное значение, хочу узнать, по каким параметрам система генерирует его, каким образом его можно поменять в системе (без каких либо модификаций разделов), где находится информация о серийнике в системе...???

Копал внутренности GetVolumeInformationA из kernel32.dll под XP, внутри нее вызывается GetVolumeInformationW, внутри GetVolumeInformationW сначала ntdll.ZwOpenFile, по параметрам нихрена не понятно, потом ntdll.ZwQueryInformationFile, и выход из функции. Значит вся инфа хранится в каком то файле? Или ZwOpenFile еще используется в каких нибудь извращенных способах получения информации? Это в принципе не важно... Проблема в том, что знакомый чел в курсаче на двух разных компах получил одинаковые серийные номера (Про теорию вероятности и сетевые диски не надо рассказывать!), в чем же проблема? Наверное просто повезло :-D!




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 14 декабря 2006 10:13
· Личное сообщение · #2

Enigma пишет:
Или ZwOpenFile еще используется в каких нибудь извращенных способах получения информации?

Не совсем изврещенных. Можно, например, открыть драйвер, пайп или псевдофаил раздела, как в твоем случае.

Попробуй прореверсить код какой-нибудь проги, форматирующей винт. Мб разные проги генерят его по-разному.



Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 14 декабря 2006 10:39
· Личное сообщение · #3

С zwOpenFile в принципе и не важно, наверное суть таже самая что и с CreateFileMapping с нулевым (hFile), какий нибудь swap открывает и читает из него чето...

Прореверсить прогу...: может глупое это дело, времени убъет дохера но бестолку,... тут есть тогда два варианта:
1. серийный номер рассчитывается системой (например при установке, или при отсутствии swap файла)
2. серийник прописывается прогой формировавший раздел на диске, никто не видел описание структуры таблиц разделов, есть там че нибудь наподобии серийника?

Можно какой нибудь раздел перепахать из одной системы в другую, изменится ли номер... или с дискетами поглумиться...




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 14 декабря 2006 10:42
· Личное сообщение · #4

Enigma пишет:
(например при установке, или при отсутствии swap файла)

Ничего не понял - при чем тут своп фаил??



Ранг: 88.3 (постоянный), 3thx
Активность: 0.040
Статус: Участник

Создано: 14 декабря 2006 11:09
· Личное сообщение · #5

HoBleen это предположение... просто не знал где эта инфа хранится...



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 14 декабря 2006 11:17 · Поправил: rmn
· Личное сообщение · #6

В загрузочном секторе раздела серийник лежит (dword по смещению 0x48)


 eXeL@B —› Крэки, обсуждения —› Что такое VolumeSerialNumber из GetVolumeInformation?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати