…czyli kontynuacja cyklu “człowiek uczy się całe życie” bo temat do świeżych nie należy. jaki jest dokładnie cel ADS nie potrafię zrozumieć - konkretnie, nie widzę praktycznego zastosowania dla tego wynalzq [czy coś normalnie z tego korzysta? skąd ten pomysł?]. ale coś takiego jest. ogólne przeznaczenie oznacza, iż każdy plik w NTFS może zawierać kilka strumieni danych. jeden z nich przetrzymuje informacje o ACL, inny realne dane. jak dotąd rozsądnie i nie widać nic dziwnego. dziwnie zaczyna się robić w momencie, kiedy dodamy informację, że realne dane mogą być de facto linkiem do innego strumienia danych. “robi się dziwniej i dziwniej, powiedziała alicja”… ponieważ oznacza to ni mniej ni więcej tylko tyle, że do pliq, może być dowiązany kolejny plik, który standardowo nie jest widoczny nigdzie w systemie. każdy listing pokaże nam plik np. 1kb podczas, gdy do niego jest dowiązany, niewidoczny DivX.
krótki test
c:\copy con a.txt
wpisuje tu coś
^Z
c:\echo i tu tez cos wpisze - ale to jest ukryte>a.txt:ukryty.plik
po wykonaniu komendy dir widać a.txt - ale nigdzie nie zobaczy sie ‘ukryty.plik’. wykonanie np. notepad a.txt:ukryty.plik - pokaże go i pozwoli wyedytować. sprawdzałem możliwość podczepienia pliq exe:
type calc.exe>notepad.exe:hiddencalc.exe
i działa. nie da się na szczęście takiego exe bezpośrednio uruchomić - trzeba go spowrotem przepisać do nowego pliq. przynajmniej tyle - bo nie jest to zbyt bezpieczny myk. kolejną ciekawostką jest fakt, że stary [nie]dobry type, strumieni nie obsługuje:
C:\temp>type a.txt:new.exe
The filename, directory name, or volume label syntax is incorrect.
co nie znaczy, że nie da się tego zrobić innymi narzędziami. takich strumieni do pliq można dowiązać dowolnie wiele. w systemie vista i w2k8 polecenie dir zostało rozszerzone o dodatkowy parametr: /r, który wyświetla strumienie plików. przykładowy listing po doczepieniu 3 dodatkowych strumieni do pliq a.txt [w tym jednego pliq avi]:
C:\temp>dir /r a.txt
Volume in drive C has no label.
Volume Serial Number is 0EAE-9628
Directory of C:\temp
2008-12-16 19:15 5 a.txt
6 106 624 a.txt:avi.avi:$DATA
7 a.txt:new.txt:$DATA
9 a.txt:new2.txt:$DATA
1 File(s) 5 bytes
0 Dir(s) 19 567 476 736 bytes free
niestety [a może stety] żaden program nie był stanie otworzyć pliq a.txt:avi.avi - ciekawe, że notepad bez problemu otwiera a.txt:new.txt.
usunięcie pliq-linq, powoduje usunięcie wszystkich związanych z nim strumieni.
c:\temp>dir
[...]
2008-12-16 19:15 5 a.txt
[…]
82 File(s) 129 929 767 bytes
14 Dir(s) 19 567 472 640 bytes free
c:\temp>del a.txt
c:\temp>dir
[…]
14 Dir(s) 19 573 579 776 bytes free
i tak widać, że usunięcie 5b pliq spowodowało zwolnienie ponad 6MB danych.
ponieważ w systemach XP- nie ma jak tego standardowo sprawdzić, dostępne są różne narzędzia, które wyświetlają te streamy - np. sysinternalsowy ’streams.exe’.
kiedy poszpera się dalej można trafić na ciekawy art jeszcze z czasów w2k, do którego dodany jest ‘NTFSext.exe’, w którym znaleźć można bibliotekę ’strmExt.dll’. po jej rejestracji [skopiować do system32 i wykonać regsvr32 strmext.dll] dodawana jest informacja w explorerze o ADS. aby dodadkowa zakładka była dodana również do folderu, należy wyedytować następujące klucze:
HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{C3ED1679-814B-4DA9-AB00-1CAC71F5E337}
HKEY_CLASSES_ROOT\Drive\shellex\PropertySheetHandlers\{C3ED1679-814B-4DA9-AB00-1CAC71F5E337}
i na koniec jeszcze jeden link - spojrzenie od strony [nie]bezpieczeństwa.
****UPDATE
ponieważ ‘type’ nie rozumie streamów pozostaje pytanie - w jaki sposób go odczytać? spokojnie potrafi go zinterpretować windowsowa kompilacja linuxowego ‘cat’ - do zassania z projektu unxutils.
i jeszcze jedna ciekawostka: streamy można doczepiać również do katalogu:
c:\temp>mkdir teststream
c:\temp>echo ukryty opis katalogu>teststream:hidden
c:\temp>dir /r teststream
Volume in drive C has no label.
Volume Serial Number is 0EAE-9628
Directory of C:\temp\teststream
2008-12-19 14:06
.
4 .:hidden:$DATA
2008-12-19 14:06 ..
0 File(s) 0 bytes
No faktem jest, że ekran logowania był w XP ładny i przejrzysty - w Viście i 7 to masakra jakaś. Choć może jest jakiś wpis w rejestrze, aby wrócić do klasyki.
Jeżeli chodzi o pkt 3 to Ci pomogę : w polu usera wpisz .\username i już wyświetla sie poniżej nazwa komputera ;)
pozdrawiam
Zostały zrobione badania tak samo jak w przypadku OO 2007 i według nich wyszło……. Dlatego nie ma starego ekranu. Swoją drogą można się było tego spodziewać. Przecież już w kursach do 2k3 MS podkreślał, że najlepiej powiedzieć użytkownikom by logowali się do systemów za pomocą swojego UPN, który za zwyczaj pamiętają.
Fakt faktem boli to, że w GPO nie ma możliwości włączenia okna wyboru domeny jednak za bardzo nic z tym nie można zrobić.
@papi - dzięki za tip z kropką - na pewno się przyda :)
@kaarol: no właśnie. od czasów 2k mówi sie o UPN a cały czas zostaje niespójność z tym pier*(&@#$ logowaniem domain\user - gdzie cała masa aplikacji do dzis nie potrafi inaczej ):
@papi: kropka pomaga do logowania, ale nie pomaga, jak musisz dowiedziec sie na jaki komp sie logujesz… nie ma jak sprawdzic nazwy BEZ logowania. jedynym obejciem jest stworzenie ekranów z bginfo i wstawienie ich zamiast obrazkow logowania - musze nad tym popracowac i wymyslec automat
tak swoja GT odgrazal sie jeszcze za czasow Vista, ze przygotuje ekran logowania i co? huh - GRZESIU ZROB TO DLA DOBRA LUDZKOSCI! (:
@nExoR
Hmm, teraz sobie przypomniałem, że ponoć ten Credential Provider i cały ekran logowania da się łatwiej modyfikować. Heh i znowu zrodził się pomysł na odświeżenie VS. Aż z ciekawości spróbuje się tym pobawić (:
@nExoR: zawsze możesz w polisach zrobić message before logon gdzie poza pozą typowym bla bla bla (typowa praktyka dużych firm) zawarta będzie nazwa komputera.
Credintial Providery rzeczywiście się prosoto buduje. Problem jest tylko taki, że w odróznieniu od XP, w Vista czy 7 nie da się modyfikować LogonUI odpowiedzialnego za wyświetlanie credintial providerów - można tylko napisać własnego CP, który nie modyfikuje GUI.
Co w skrócie oznacza że kwestia napisania czegoś co przypominałoby xp-kowy logon byłaby co najmniej trudna. Wymagała by napisania CP, który za pomocą autologon automatycznie się odpali, wyświetli xp-podobne okienko, pobierze z niego informacje, i przekaże je do standardowego CP.
No to ponarzekaliśmy sobie … a tak serio, a wiecie ile jest pytan \case support dotyczących ukrycia nazwy domeny na ekranie logowania w XP … albo ukrycia listy domen z zaufanych lasów itp …
@nexor … co do aplikacji co nie potrafią inaczej niż \login … to już do ich developerów :), nie wyłączając dev z MS
@peki
Właśnie sobie przeglądam przykłady i doc. do CP. Jest tam przykład, który wyświetla pod hasłem pole ComboBox i prosty TextBox. Teraz tylko do Tekstboxa wrzucić nazwę stacji a do ComboBoxa listę domen, realmów, etc.
@Tomek
Skoro sporo osób jest za ukryciem listy domen etc. to fajnie, że zostało to domyślnie wyłączone. Jednak aby uszczęśliwić wszystkich można dodać jakieś opcje w GPO lub opublikować dodatkowe gotowe CP, które posiadały by podobną funkcjonalność jak klasyczny ekran logowania.
Zresztą miałem w tym roku nie narzekać więc jak będę miał chwilkę czasu to sobie jakoś poradzę xD