Kilka dodatkowych rzeczy o rejestrze

W związku z pocztą, jaka do mnie przyszła w sprawie rejestru Windows (wprawdzie to tylko jeden e-mail, ale to i tak 33% komentarzy, jakie na razie dostałem ;]), uznałem, że taki suplement się przyda. Jak ktoś się dogrzebie jeszcze więcej informacji, które mogą się innym przydać, niech da znać (dozzie[at]irc.pl), to zamieszczę materiały albo odnośnik. Chociaż nie wyobrażam sobie, co można by jeszcze powiedzieć o Win9xReg. Ja wyczerpałem już chyba swoje pomysły (to co zostało, jest albo trywialne, albo mało użyteczne).

Na dobry początek składnia *.reg

Na wstępie zaznaczam jeszcze raz, że ja mam słaby sprzęt na Win2k/XP, więc to wszystko się tyczy Windows 98, choć może mieć zastosowanie w pochodnych po WinNT.
Pliki z rozszerzeniem .reg to są zwykłe pliki tekstowe. Możesz je edytować za pomocą notatnika albo Vim-a, albo czegokolwiek innego (MS Word też od biedy może być, ale kto strzela z działa przeciwlotniczego do muchy?). Edytor rejestru na użytek wewnętrzny nazywa te pliki eksportem rejestru. Po odpaleniu regedit.exe przejdź do jakiegokolwiek klucza (choć najlepiej do jakiegoś końcowego, im mniej informacji w kluczach, tym mniejszy będzie plik eksportu i tym łatwiej będzie ci się w nim poruszać). Teraz wybierając kolejno z menu Rejestr->Eksportuj plik Rejestru i wskazując plik zapisałeś sobie kawałek rejestru do pliku. Teraz otwórz ten plik edytorem tekstu (podpowiedź: kliknij na nim prawym klawiszem myszki i wybierz pozycję Edytuj).
W pierwszej linijce zastaniesz napis REGEDIT4. O ile mi wiadomo, to jest numer wersji wpisu do rejestru, ponoć były inne. To jest mocno niepewna informacja, nie musisz się nią chwalić na prawo i lewo :) W nawiasach kwadratowych została ujęta nazwa klucza. Pod nazwą klucza są spisane wartości w tym kluczu. Wartość domyślna jest nazwana małpką (@), pozostałe nazwy są wszystkie w cudzysłowiach podwójnych, bo mogą zawierać spacje. Po nazwie wartości jest jej zawartość (polski zdecydowanie nie nadaje się do komputerów - spójrz na karkołomność konstrukcji językowych użytych przy opisie rejestru :]). Zawartość może być trojakiego rodzaju. Zwykła wartość jest ograniczona podwójnymi cudzysłowiami. Wartość liczbowa (DWORD) jest zapisana jako liczba szesnastkowa o ośmiu cyfrach (bajt to dwie cyfry, słowo (WORD) to dwa bajty, DWORD to podwójne słowo). Dane binarne mają najdziwniejszy format.

Przykładowy plik eksportu
REGEDIT4

; komentarz

[HKEY_LOCAL_MACHINE\Jakas\sciezka\do\klucza]
"jakas wartosc"="w tym kluczu"

[HKEY_LOCAL_MACHINE\Jakas\sciezka\do\klucza\dalszy]

[HKEY_LOCAL_MACHINE\Jakas\sciezka\do\klucza\dalszy\klucz]
@="wartosc domyslna"
"wartosc ciagu"="jakis ciag znaczkow"
"wartosc ciagu z backslashem"="C:\\WINDOWS\\REGEDIT.EXE"
"wartosc binarna"=hex:49,3a,7a,e5
"wartosc dword"=dword:00000006
"wartosc do usuniecia"=-

[-HKEY_LOCAL_MACHINE\klucz\do\usuniecia]

Składnia niezbyt trudna. Najtrudniejsze, to zapamiętać ścieżki do użytecznych opcji.
Komentarz nie wymaga komentarza :) Zdarza się, że potrzebne jest samo istnienie jakiegoś klucza. Spotkałem się z tym tylko raz, nie jest to częste, ale jednak. Jeśli nie podasz żadnych wartości, klucz zostanie po prostu utworzony. Jeśli coś dodasz pod ścieżką, to te wartości będą utworzone w tym kluczu. Jak chcesz utworzyć podklucz, to robisz sam wpis z pełną ścieżką do takiego podklucza. Tu również możesz podać wartości. Jeśli chcesz jakąś wartość usunąć, to po znaku równości umieszczasz minus niezacytowany. Jeśli chcesz usunąć cały klucz, poprzedzasz jego ścieżkę minusem. [uwaga] Usuwając klucz usuwasz także jego wszystkie podklucze i wartości [/uwaga]. To by było na tyle o plikach eksportu.

Tajny przełącznik regedit.exe

Trafił mi się raz u kolegi twardy orzech do zgryzienia. Znajomek ów załapał wredne cóś, które ustawiało stronę domową w MSIE na jakąś stronę porno. Niby nic szczególnego, teoretycznie wystarczy ustawić stronę domową ponownie na jakieś Google, ale cała zabawa zaczynała się po pierwszym restarcie. Zgadnij, jaka strona była ustawiona za domową? Dobre pół godziny spędziliśmy nad tym problemem, restartując windę regularnie. W końcu wpadłem na pomysł, żeby zajrzeć do msconfig (jeśli jeszcze o tym nie wspominałem, to to narzędzie służy przede wszystkim do wywalania śmieci z autostartu, a jest dostarczane przez Microsoft do Windows 98 i Windows Me, a chyba nawet do NT-pochodnych - odpalane przez Menu Start->Uruchom->msconfig->[Enter]). Przeczyściłem od razu koledze autostart. Po tej przygodzie została mi wiedza o tajemnym przełączniku do regedit.exe. Dokładnie: regedit /s nazwa-pliku-do-dodania.reg. Takie polecenie importuje do rejestru plik po cichu, nie pytając się, Czy na pewno dodać informację w <nazwa-pliku.reg> do rejestru?. To polecenie oczywiście powinno zostać albo wydane w linii poleceń (okienko MS-DOS albo Menu Start->Uruchom, ew. Total Commander), albo wstawione gdzieś do rejestru do autostartu. Ja sam na ten przykład miałem paru użyszkodników na moim Win98, ale najczęściej korzystałem z kompa ja. Nikt nie miał hasła, a ja lubię logować się jak najszybciej. Znaczy: jak logował się mój brat, to zostawała po nim nazwa użytkownika. Wymyśliłem więc takie coś: w kluczu HKLM\Software\Microsoft\Windows\CurrentVersion\Run znajdowała się wartość SetUser (nazwa może być dowolna) o zawartości regedit.exe /s C:\WINDOWS\setuser.reg, a C:\WINDOWS\setuser.reg wyglądał tak:

REGEDIT4

[HKEY_LOCAL_MACHINE\Network\Logon]
"UserName"="Dozzie"

To powodowało automatyczne ustawianie przy logowaniu logowania mnie za następnym razem.

Jeśli denerwuje cię okienko logowania...

...to możesz je wyłączyć. Oczywiście nie będziesz wtedy mógł logować się jako kto inny (coś za coś), ale jeśli masz jednego użytkownika, to to chyba może być przydatne. W kluczu HKEY_LOCAL_MACHINE\Network\Logon ustaw wartość UserProfiles na zero albo w ogóle ją skasuj (znaczy nie kasuj, ale zmień nazwę; nigdy nie pozbawiaj się łatwego powrotu do starych ustawień i nie kasuj żadnych wpisów czy plików, o ile nie zrobisz kopii bezpieczeństwa). To powinno usunąć denerwujące okienko wyskakujące po załadowaniu się windy.

REGEDIT4

[HKEY_LOCAL_MACHINE\Network\Logon]
"UserProfiles"=-

Wpis przeciw WinNuke

Nie miałem nigdy okazji przetestować tego wpisu, więc nie daję gwarancji, że zadziała, a nawet, że nie udostępnia możliwości takiego ataku. Z drugiej strony, widziałem ten wpis w poważnym programie X-teq X-Setup, więc raczej powinno działać. Całość polega na dość banalnym wykorzystaniu jednego z błędnych ustawień w Windows 9x przez WinNuke i podobne programy. Uruchamiasz taki WinNuke w sieci lokalnej i wybierasz ofiarę. W momencie zatwierdzenia wyboru delikwentowi wyskakuje BSOD (Blue Screen Of Death) i oto już nie jest połączony z siecią. Gorąco odradzam stosowanie tego typu programów!!! Po pierwsze: wyobraź sobie swoją reakcję, jakby ktoś tobie tak zrobił. To naprawdę nie jest miłe. Po drugie: pomijając koleżeńskie żarty, jakie można robić sobie ze znajomkami na informatyce w szkole średniej, tylko niedorośli gówniarze nuke'ują wszystkich, kogo popadnie. Co ci przyjdzie z tego, że kogoś wywalisz z sieci? Po trzecie: możesz trafić na kogoś, kto potrafi się obronić, a nawet odgryźć za taką próbę. To chyba dostateczne powody, żeby nie używać takich programów, które zresztą działają tylko na Win95/Win98 (nie wiem jak z Me, a Win2k/WinXP są chyba dostatecznie zabezpieczone). Tyle gadania (pisania), a wpis jest krótki:

REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
"BSDUrgent"="1"

Zabezpieczanie edytora rejestru

Możesz wyłączyć możliwość edycji rejestru przy pomocy regedit.exe. Wystarczy wstawić jedną wartość:

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000001

To zablokuje edytor rejestru dla obecnego użytkownika. Blokada na cały system wymaga zmiany klucza z HKCU na HKLM. Edycja za pomocą innych narzędzi nadal jest dozwolona, jeśli masz jeszcze inny edytor rejestru, to będzie chodził normalnie. Ponadto dodawanie plików eksportu (*.reg) w dalszym ciągu działa. Jeśli nieopatrznie zablokowałeś sobie regedit, to zrób sobie plik *.reg z zawartością jak wyżej, tylko zmień wpis z dword:00000001 na dword:00000000 albo na minus i dodaj go do rejestru klikając na nim dwukrotnie.

Dla używających Worda 97

Są jeszcze tacy? :) To włączcie sobie podgląd dokumentu podczas przewijania suwakiem:

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\8.0\Word\Options]
"LiveScrolling"="1"

Skrót do...

Wiem, że taka opcja jest choćby w TweakUI, ale ktoś może nie chcieć instalować tego. Za każdym razem, gdy tworzysz skrót do programu, prawdopodobnie jego nazwa brzmi Skrót do i_view32 czy jakoś tak. Ten przedrostek można usunąć:

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"link"=hex:00,00,00,00

Skanowanie rejestru

Rejestr jest bardzo ważnym składnikiem systemu Windows. Napotkałem kilkakrotnie, czytając jakieś poradniki chakowania (tak, przez ch, bo to nie był profesjonalny hacking!), jak taki chakier wylewał kubły pomyj na Microsoft za rejestr. Zdarzało się nawet, że taki delikwent nazywał to rejestrami. Uśmiałem się niemało. Bonzo używa un*xa, więc od razu wszystko pochodzące od M$ jest do dupy. Bzdura! Rejestr jest nawet dobrym pomysłem. Zwykły użyszkodnik nie wie o istnieniu rejestru. Łażąc po systemie i kasując losowo pliki bardzo trudno mu trafić akurat na USER.DAT czy SYSTEM.DAT. Zaawansowany user natomiast do edycji rejestru użyje stosownego narzędzia. Jedynie samo używanie edytora rejestru może być nienajwygodniejsze. Rejestr jest chyba najlepszym wyjściem, jakie istnieje w niezabezpieczonym, bądź co bądź, systemie. Ale nie o tym miałem pisać. Rejestr trzeba co jakiś czas skanować i backupować. Zdarzało mi się nie raz, że kopia zapasowa rejestru ratowała mi tyłek. Do backupu w Win98 służy narzędzie scanregw. Odpalasz toto w linii poleceń i już. Ewentualnie możesz podać parametr: scanregw /autorun, wtedy uruchomi się cicho (zresztą to polecenie jest uruchamiane podczas startu systemu, chyba że usunąłeś je). Standardowo trzymanych jest pięć kopii zapasowych rejestru, przy czym nowa jest tworzona w momencie, gdy danego dnia nie uruchamiałeś wcześniej systemu, czyli przeważnie dysponujesz kopią sprzed czterech dni. Kopie zapasowe są trzymane w folderze C:\WINDOWS\SYSBCKUP, który ma atrybut ukryty, jako pliki rb###.cab, gdzie # to cyfry. Możesz zmienić ilość trzymanych kopii zapasowych (siedem to niezły wybór), a także folder z kopiami zapasowymi (choć domyślny jest nienajgorszy) w plkiu C:\WINDOWS\SCANREG.INI. Jest na tyle jasny, że nie będę go tu opisywać.
Zostało mi jeszcze powiedzieć, jak przywrócić rejestr z kopii zapasowej. Pod Windows rejestr jest na okrągło używany, więc chyba logiczne, że musisz uruchomić MS-DOS. Możesz podczas bootowania, tuż za ekranem BIOSu, przytrzymać [Ctrl] albo F8, do wyboru (ja lubię [Ctrl], bo nie generuje pisków z PC-Speakera). Pojawi ci się tzw. bootmenu. Wybierasz pozycję Wiersz poleceń albo Wiersz poleceń trybu awaryjnego, to bez różnicy. Już jesteś w DOSie. Wpisz scanreg /restore (zwróć uwagę, że pod Windows na końcu było w, tu zaś go nie ma). Wybierasz plik backupu i po komunikacie o (nie)pomyślnym odtworzeniu rejestru czynisz zadość wymaganiom Kontrolera Rejestru restartując komputer.
Rejestr da się jeszcze defragmentować. Wchodzisz w tryb MS-DOS w ten sam sposób, co przy przywracaniu rejestru i wydajesz polecenie scanreg /fix, po czym albo restarujesz komputer, albo (jeśli wszedłeś w Wiersz poleceń bez trybu awaryjnego) wpisujesz win i zatwierdzasz [Enter]em.

Mam nadzieję, że przydadzą się te informacje. Wprawdzie już dawno Windows 98 nie używałem głębiej (Linuks rulez! ;) ), ale mimo to conieco jeszcze mi zostało o rejestrze. Jak widać - całkiem sporo :)


Powrót do opisu rejestru
Spis treści