информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Собственно, мои изыскания 22.02.05 11:49  Число просмотров: 3345
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Дисклеймер: все описанное здесь производилось "в исключительно мирных, домашних целях", то есть в целях обучения и повышения квалификации. Любая попытка повторить описанное останется на вашей совести

Начиналось все хорошо:

Убил все hide-ы в %SystemRoot%\INF\sysoc.inf

windbg.exe sysocmgr.exe /i:%SystemRoot%\INF\sysoc.inf

0:000> bu tsoc!TSState::CanInstallAppServer
0:000> g

У нас в ecx - указатель на этот самый TSState, в нем по смещению 0x146 лежит WORD wProductType, а по смещению 0x144 - WORD wSuiteMask

Ничтоже сумняшеся делаем
0:000> ew (@ecx+144) 80
0:000> ew (@ecx+146) 3
0:000> bd *
0:000> g

Voila. Выбираем "Службы Терминалов" и устанавливаем. Он просит перезагрузиться - перезагружаемся. И тут видим первый облом: сервис "terminal services" не запустился. При попытке запустить его вручную винда пытается сказать чего то умное, но в очередной раз морозит глупость. Ясное дело, что не только для установки нужна правильная версия, но и для работы.

Делаем первый подход к снаряду:
regedit.exe
Идем в ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions
Меняем ProductType на ServerNT, а в ProductSuite добавляем например Enterprise. Попробовали? Поздравляю. Винда защищает эти ключи и говорит чего то о нарушении лицензии. Но человек, который действительно хочет выстрелить себе в ногу - обязательно найдет способ это сделать. Экспортируем этот ключ в виде хайва, подключаем хайв к HKLM-у, вносим изменения там, отключаем хайв, импортируем его на место. Опять вуаля. Перегружаемся и наблюдаем bugcheck (aka BSOD) 0x9A: SYSTEM_LICENSE_VIOLATION. Пуля вошла в ногу, а вышла через голову. При каждой загрузке винда сравнивает ключ продукта с типом продукта. Вот и вышла неувязочка. Можно дальше копать в этом направлении и пытаться отучить винду заниматься такими глупостями, но зачем?

Настало время поковырять DDK.

#define KI_USER_SHARED_DATA         0xffdf0000
#define SharedUserData  ((KUSER_SHARED_DATA * const) KI_USER_SHARED_DATA)

typedef struct _KUSER_SHARED_DATA {
    volatile ULONG TickCountLow;
    ULONG TickCountMultiplier;
    volatile KSYSTEM_TIME InterruptTime;
    volatile KSYSTEM_TIME SystemTime;
    volatile KSYSTEM_TIME TimeZoneBias;
    USHORT ImageNumberLow;
    USHORT ImageNumberHigh;
    WCHAR NtSystemRoot[ 260 ];
    ULONG MaxStackTraceDepth;
    ULONG CryptoExponent;
    ULONG TimeZoneId;
    ULONG Reserved2[ 8 ];
    NT_PRODUCT_TYPE NtProductType;
    BOOLEAN ProductTypeIsValid;
    ULONG NtMajorVersion;
    ULONG NtMinorVersion;
    BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
    ULONG Reserved1;
    ULONG Reserved3;
    volatile ULONG TimeSlip;
    ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
    LARGE_INTEGER SystemExpirationDate;
    ULONG SuiteMask;
    BOOLEAN KdDebuggerEnabled;
    volatile ULONG ActiveConsoleId;
    volatile ULONG DismountCount;
    ULONG ComPlusPackage;
    ULONG LastSystemRITEventTickCount;
    ULONG NumberOfPhysicalPages;
    BOOLEAN SafeBootMode;
    ULONG TraceLogging;

#if defined(i386)
    ULONGLONG   Fill0;          // alignment
    ULONGLONG   SystemCall[4];
#endif

} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;

---

Просто запускаем винду под отладчиком, и где то посреди загрузки заходим и правим NtProductType на 3, а SuiteMask на 0x90.

Для автоматизации этого процесса можно например написать драйвер, поставить ему группу загрузки чего нибудь вроде Extended Base и в DriverEntry пропатчить эти значения и выйти. Драйвер, не создавший ни одного устройсва и не выставивший AddDevice будет сразу же выгружен.

Выставляем в свойствах компьютера "Разрешить удаленный досуп" и можно пытаться подключиться. Сразу скажу, что у меня подключиться не получилось потому как не зря винда стращала сервером лицензий (или чего то в этом роде). Но откручивать сервер лицензий я не нанимался
<beginners> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach