Русский / Russian English / Английский

Сейчас на форуме: (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

Ранг: 88.3 (постоянный)
Статус: Участник

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

Драсте,

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

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

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


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

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

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

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

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

Ранг: 88.3 (постоянный)
Статус: Участник

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

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

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

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


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

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

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

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

Ранг: 88.3 (постоянный)
Статус: Участник

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

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

Ранг: 148.0 (ветеран)
Статус: Участник

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

В загрузочном секторе раздела серийник лежит (dword по смещению 0x48)
 eXeL@B —› Крэки, обсуждения —› Что такое VolumeSerialNumber из GetVolumeInformation?

Видеокурс ВЗЛОМ