Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Amirul в своё время вроде «заставил» установиться TS в режиме сервера приложений — спроси у него… 19.02.05 14:30 Число просмотров: 2298
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 19.02.05 14:30 Количество правок: 1
|
Тут на форуме хором пытались сломать TS, но потом эта ветка куда-то пропала...
По крайней мере я её не могу найти.
|
<beginners>
|
аналог Terminal Server под XP 27.01.05 15:09
Автор: quickuser Статус: Незарегистрированный пользователь
|
Доброго времени суток!
Подскажите недотёпе как настроить удалённое подключение под XP. такое же как Terminal Server под Win2k. Кажется, его заменяет Remote Desktop. Подскажите какие службы должны быть запущены, где сопутствующие настройки, разрешения
|
![](/img/dot.gif) |
Панель_управления-система-удаленное_использование 27.01.05 15:18
Автор: Garick <Yuriy> Статус: Elderman
|
|
![](/img/dot.gif) | ![](/img/dot.gif) |
Уже... как работать одновременно? 27.01.05 15:26
Автор: quickuser Статус: Незарегистрированный пользователь
|
Спасибо, уже запускается
Теперь не позволяет только работать нескольким пользователям одновременно.
Предлагает завершить сеанс текущего пользователя (насильно).
Какая служба необходима для одновременной работы нескольких пользователей?
Служба "Вторичный вход в систему" запущена
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
никак. эта возможность отключена у XP. 27.01.05 15:32
Автор: !mm <Ivan Ch.> Статус: Elderman
|
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
А кто-нибудь пробовал "открутить" это ограничение? 18.02.05 00:42
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Мне вот тут захотелось домой с работы "заходить", и эта моно-логинность очень мешает. Даже есть желание поискать и поправить байтики (или внедрить dll).
Может уже кто-нибудь знает или пробовал что-нибудь на эту тему?
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Amirul в своё время вроде «заставил» установиться TS в режиме сервера приложений — спроси у него… 19.02.05 14:30
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 19.02.05 14:30 Количество правок: 1
|
Тут на форуме хором пытались сломать TS, но потом эта ветка куда-то пропала...
По крайней мере я её не могу найти.
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Я вот тоже помню не более, что были разговоры на эту тему. А что скажет Amirul? 19.02.05 17:06
Автор: leo <Леонид Юрьев> Статус: Elderman
|
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Страшные слова вы тут разговариваете :-) 21.02.05 13:13
Автор: amirul <Serge> Статус: The Elderman
|
В общем не знаю как я его там поставил. Просто в компонентах виндовс галка с терминал сервисами была загреена и выключена, а я ее разгреил и все. Даже начал ставить, но винда начала меня стращать какими то серверами лицензия и я испугавшись ретировался.
Насколько я помню там надо просто перехватить вызов GetVersionEx из tsoc.dll (в каком процессе - не помню, скорее всего rundll какой нить) и подставить ему в wProductType VER_NT_DOMAIN_CONTROLLER или VER_NT_SERVER, и чего то там в wSuiteMask подправить. В принципе даже по дебажным сообщениям этого tsoc.dll можно понять чего он хочет, а если еще и с символами это делать - так вообще одно удовольствите.
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Параметр hide я из sysoc.inf вычистил, но галка не ставится... 26.02.05 10:05
Автор: mentatxx Статус: Незарегистрированный пользователь
|
> В общем не знаю как я его там поставил. Просто в > компонентах виндовс галка с терминал сервисами была > загреена и выключена, а я ее разгреил и все.
Параметр hide я из sysoc.inf вычистил, но галка не ставится - в чем может быть дело ?
ЗЫ. WinXP Sp1 / Corp
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Я помню были такие проблемы — она там ставится, но как-то не с первого раза… Повозюкайся с крыжиком ещё немного… 26.02.05 11:17
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
да вот возюкаюсь, и pnfы грохал и перегружался 26.02.05 19:52
Автор: mentatxx Статус: Незарегистрированный пользователь
|
да вот возюкаюсь, и pnfы грохал и перегружался
зависимости вроде проверил - только от wbem зависит, но wbem ясен пень установлен ...
думаю установить другую версию WinXP - может проблема в этом ...
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Terminal Services Optional Component (tsoc, а не tsos) [updated2] 21.02.05 18:54
Автор: amirul <Serge> Статус: The Elderman Отредактировано 21.02.05 19:35 Количество правок: 2
|
Лежит в %SystemRoot%\system32\Setup\
Там одна точка входа (описывается в %SystemRoot%\INF\sysoc.inf) и используется она по образу и подобию CoInstaller-ов для драйверов. То бишь в числе прочих передается код операции. И одна из операций выполняет функцию, подобную DIF_ALLOW_INSTALL.
В принципе там в самом начале обработчика лежит switch-case (IDA его вполне спокойно разгребает), а в обработчиках кодов лежат вывод отладочной информации (куда зашли и чего делаем)
--------------
Собственно, глянул я IDA-ой с символами
Сходу можно сказать, что все интересности происходят в обработчике OC_INIT_COMPONENT под названием (кто бы догадался) OnInitComponent.
Далее закапываемся в функцию TSState::Initialize(), которая вызывает TSState::GetNTType()
Вот тут и надо подменить версию. Там дальше идет интерпретация этой версии - в том давешнем обсуждении я давал точные условия для установки TS, сейчас просто рекомендую выставить тип в server и все
--------------
Что то мне подсказывает, что смотреть нужно на функцию TSState::CanInstallAppServer(void)
Итого:
wProductType не должно быть равно VER_NT_WORKSTATION
в wSuiteMask должен быть установлен хотя бы один из VER_SUITE_DATACENTER или VER_SUITE_ENTERPRISE
ЛИБО
wProductType не должно быть равно VER_NT_WORKSTATION
в wSuiteMask должен быть установлен VER_SUITE_SMALLBUSINESS
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Спасибо :) 21.02.05 19:23
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Только сейчас, гадство, совсем некогда, буквально deadline.
Но обязательно попробую :)))
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
«Промышленную» версию патча не забудь потом выложить ;-) 21.02.05 20:04
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Собственно, мои изыскания 22.02.05 11:49
Автор: 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 будет сразу же выгружен.
Выставляем в свойствах компьютера "Разрешить удаленный досуп" и можно пытаться подключиться. Сразу скажу, что у меня подключиться не получилось потому как не зря винда стращала сервером лицензий (или чего то в этом роде). Но откручивать сервер лицензий я не нанимался
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Если не сложно - кинь Symbols от tsoc мне на мыло 26.02.05 20:26
Автор: mentatxx Статус: Незарегистрированный пользователь
|
> 0:000> bu tsoc!TSState::CanInstallAppServer
Если не сложно - кинь Symbols от tsoc мне на мыло
mentatxx собака mail ру
Ибо качать полный набор не с руки 176 Мб однако :(
|
![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) | ![](/img/dot.gif) |
Тогда я копну в другую сторону 22.02.05 13:58
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 22.02.05 13:59 Количество правок: 1
|
Менять самомнение ОС на ходу - это интересно, но думаю не совсем оптимально.
Например, скорее всего у меня перестанет работать KAV, и придеться его убеждать что это все-таки workstation. Опять-же нужно разбираться с контролем лицензий (сервером лицензий). Потом могут "запротестовать" другие компоненты и т.д.
Я попробую найти и поправить то самое место, где система выкидывает интерактивного пользователя, и может быть еще там где контролируется лимит активных сессий/подключений.
А оформить "patch" в виде драйвера - очень хорошая идея :)
|
|
|