SPOSOBY AUTOMATYCZNYCH MODYFIKACJI REJESTRU






MetaVirus Page





METAVIRUS PAGE
Strona główna
Download
Linki

KURSY
C++
Pascal
Java Script
HTML

WINDOWS
Rejestr
Faq o rejestrze
Sztuczki z rejetrem
Pliki modyfikujące
Pliki
Boot.ini
Desktop.ini
Reszta
Łamanie haseł GG
Polecenia Rundll'a

INNE
Tabela kodów ascii
Logika Boole'a
Tabela kolorów
Numery błędów
Maszyna Turing'a
Spis portów






SPOSOBY AUTOMATYCZNYCH MODYFIKACJI REJESTRU*
Zajmować się będziemy strukturami plików:*.reg*.bat*.inf
Jeśli to czytasz to zakładam, że znasz choć podstawowe informacje o
rejestrze, takie jak: typy wartości rejestru, struktura rejestru, ... .
Jeśli nie masz pojęcia o tych rzeczach, powinieneś przeczytać najpierw FAQ na temat rejestru.

Modyfikacja plikami *.reg
Modyfikowanie rejestru systemowego z urzyciem plików reg jest bardzo
popularnym sposobem. Może przejde odrazu do budowy plików reg. Jest ona
poniekąd podobna do struktury plików ini. Tak czy inaczej ogólny
schemat pliku .reg napisanego przy pomocy np. notatnika wygląda tak:

Windows Registry Editor Version 5.00

[HKEY??\Klucz]
@="dane wartości domyślnej"
"xxx"="Dane wartości ciągu o nazwie xxx"
"yyy"=dword:0000006f
"binarnawar"=hex:74,6f,20,64,6f,20,63,68,75,6a,61,20,6a,65,73,74,20,77,61,72,\
74,6f,63,73,20,62,69,6e,61,72,6e,61

[HKEY??\inny_Klucz]
@="dane wartości domyślnej innego klucza"
"vvv"="Dane wartości ciągu o nazwie vvv"
"aaa"=dword:0000000c
"bbb"=dword:0000000d
"ccc"=dword:0000000e
"zzz"=dword:0000000f

Teraz podejmę się wyjaśnienia przykładu.
Pierwsza linijka jest obowiązkowa. Informuje ona system o wersji
programu Regedit, dzięki czemu nie dojdzie do błędu podczas
wprowadzania zmian w życie jeżeli będziemy pracować na wcześniejszych
wersjach windows'a niż XP. Po niej musi nastąpić wolna linijka bez
żadnego znaku.
Następnie w nawiasie kwadratowym występuje ścieżka do modyfikowanego
klucza (w nie skróconej wersji, np.: HKEY_CURRENT_USER\Software\Klucz).
Kolejne linijki nie są już obowiązkowe. Pierwsza określa jakie nowe
dane ma posiadać wartość domyślna danego klucza. Wartości domyślne
kluczy ustala się więc w ten sposób: @= (otwieramy cudzysłów - ") dane
wartości domyślnej (zamykamy cudzysłów - "):
@="dane"
Kolejna linijka dodaje do określonego wcześniej w nawiasach
kwadratowych klucza wartość ciągu o nazwie xxx i danych określonych w
cudzysłowiach po prawej stronie znaku równości - = (w tym wypadku te
dane to: Dane wartości ciągu o nazwie xxx).
Kolejna linijka dodaje do określonego w nawiasach kwadratowych klucza wartość DWORD. Wartość dword dodaje się w taki sposób:
w cudzysłowiu pierwszym podajemy nazwę wartości, następnie piszemy znak równości, następnie (bez znaku spacji) piszemy dword:, i na końcu dopisujemy (w formie cyfr szesnastkowych) liczbę będącą danymi wartości.
Ostatnia linijka która odnosi się do pierwszego modyfikowanego klucza,
dodaje (lub zmienia jeśli już taka wartość istnieje) wartość binarną o
nazwie binarnawar. Dodowanie (lub zmienianie) wartości binarnej konstruuje się tak:
w cudzysłowiu podajemy nazwę wartości, następnie piszemy (bez spacji) =hex:,
i na końcu piszemy dane tej wartości (także bez spacji). Same dane
wartości binarnej piszemy jako bajty przedstawione w formie
szesnastkowej oddzielane przecinkami. Jeśli chcemy przejść do kolejnej
linijki kontynuując pisanie danych należy użyć znaku \.
Modyfikacji drugiego klucza już nie będe omawiał, ale spróbuj sam sobie
odpowiedzieć na pytanie jakie wartości ta część pliku reg dodaje do
rejestru.

Przedstawiłem sposób dodawania do rejestru wartości typu: wartość ciągu, wartość DWORD, wartość binarna.
Praktycznie wartości innych typów używać nie będziesz w ogóle, jednak
jeżeli chcesz nauczyś się je tworzyć to przedstawie ci kolejny przykład:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Klucz]
"wielociąg"=hex(7):54,00,6f,00,20,00,6a,00,65,00,73,00,74,00,20,00,57,00,61,\
00,72,00,74,00,6f,00,5b,01,07,01,20,00,57,00,69,00,65,00,6c,00,6f,00,63,00,\
69,00,05,01,67,00,75,00,00,00,00,00
"ciąg rozwijalny"=hex(2):74,00,6f,00,20,00,6a,00,65,00,73,00,74,00,20,00,57,00,61,\
00,72,00,74,00,6f,00,5b,01,07,01,20,00,63,00,69,00,05,01,67,00,75,00,20,00,\
72,00,6f,00,7a,00,77,00,69,00,6a,00,61,00,6c,00,6e,00,65,00,67,00,6f,00,00,\
00

Te typy wartości to wartość wielociągu oraz wartość cięgu rozwijalnego.
Jak widzisz sposób w jaki się je tworzy jest bardzo zbliżony do sposobu tworzenia wartości binarnych, więc opiszę tylko różnice.
Jeżeli chodzi o wartości wielociągu to pierwszą różnicą w zapisie jest =hex(7): zamiast =hex:
jak ma to miejsce w wartościach binarnych. Pisałem, (w opisie wartości
binarnych) że dane zapisuje się w postaci bajtów w zapisie
szesnastkowym oddzielonych od siebie przecinkami. Tak samo jest teraz.
Te bajty to kody ASCII (opisane w systemie szesnastkowym) liter.
Pomiędzy każdą literą wstawić należy znak NULL o kodzie 00. Aha tabelę
kodów ASCII znajdziesz w Tabeli kodów ASCII ( to chyba logiczne ;) ).
No to teraz druga wartość dodawana przez nasz przykład. Jest to wartość ciągu rozwijalnego o nazwie ciąg rozwijalny.
Sposób pisania danych wartości tego typu jest taki sam jak ostatnio.
Różnicą jest tutaj oznaczenie typu wartości, czyli ciąg zaków =hex(2): zamiast ciągu =hex(7): . Reszta jest taka sama.
Aha. Jeszcze jedno. Dla bezpieczeństwa, żebyś czasem czegoś nie
spier...ł, w przypadku wartości wielociągu należy podać pięć ostatnich
bajtów jako 00, a w przypadku wartości ciągu rozwijalnego trzy ostatnie
bajty jako 00 (patrz przykład).

Oki no to teraz przykład z obrazkiem (na wszelki wypadek gdybyś nie umiał czytać ;) )
Taki plik .reg :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Klucz1]
"cos"=dword:000003db
@=" "
"opcja"=hex(7):6e,00,6f,00,00,00,00,00
"war"=hex:01,23,45
"ciag"="No i ch**"
"widzisz"=hex(2):77,00,69,00,64,00,7a,00,65,00,00,00

[HKEY_CURRENT_USER\Klucz2]

Dokonuje takich zmian:

No i to było by na tyle jeśli chodzi o pliki reg. No może jeszcze jedno :
Kontynuując ten przykład stwórz taki plik reg i go uruchom:

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Klucz1]

[-HKEY_CURRENT_USER\Klucz2]
Nie wdając się w szczegóły powiem tylko że jeśli ścieżkę jakiegoś
klucza poprzedzimy minusem (-), to klucz ten zostanie usunięty z
rejestru. Tak więc opisany wyżej plik reg usunie z rejestru klucze o
nazwach klucz1 oraz klucz2 z gałęzi HKEY_CURRENT_USER.

Modyfikacja plikami *.bat
Pliki bat czyli pliki wsadowe mają możliwość także modyfikowania
rejestru systemowego (oczywiście to nie działa spod DOS'a). Może od
razu zajmę się podstawowymi komendami obsługującymi rejestr. A więc są
to komendy add oraz delete.
Tak właściwie to według mnie pliki bat modyfikujące rejestr pisze się
dużo łatwiej niż pliki reg. Może przejde od razu do przykładu:

reg add "HKCU\Klucz1"
reg add "HKCU\Klucz2" /ve /t REG_SZ /d "dane"
reg add "HKCU\Klucz2" /v "sz" /t REG_SZ /d "dane 2"
reg add "HKCU\Klucz2" /v "bin" /t REG_BINARY /d "01020304"
reg add "HKCU\Klucz2" /v "dword" /t REG_DWORD /d "00000031"
reg delete "HKCU\Klucz1"
reg delete "HKCU\Klucz2" /v "sz"

Na przykładzie łatwo domyślić się że:
Komenda reg add dodaje coś do rejestru.
Komenda reg delete usuwa coś z rejestru.
Po każdej z tych komend musi znaleźć się ścieżka do modyfikowanego klucza (najlepiej w cudzysłowiach).
Jeżeli po ścieżce klucza nie występują żadne parametry (/ve /v /t /d), to klucz jest dodawany lub usuwany.
Parametr /t określa typ dodawanej wartości. (Jakie mogą być typy napisze później)
Parametr /ve określa że ma być usuwana lub tworzona domyślna wartość klucza
Parametr /v określa nazwę tworzonej lub usuwanej wartości (dobrze byłoby gdyby ta nazwa wystąpiła w cudzysłowiach)
Parametr /d określa dane jakie ma mieć tworzona wartość.

Oto jakie typy mogą wystąpić po parametrze /t:
REG_SZ - wartość ciągu
REG_DWORD - wartość DWORD
REG_BINARY - wartość binarna
oraz kilka innych którymi się tu zajmował nie będe.

Przejdźmy do analizy przykładu:
Pierwsza linijka mówi nam że ma zostać utworzony klucz o nazwie Klucz1 w kluczu HKCU.
Druga linijka mówi, że w kluczu HKCU\Klucz2, dane wartości domyślnej mają zostać zmienione na dane. (Jeśli taki klucz nie istnieje zostanie utworzony).
Trzecia linijka mówi, że w kluczu HKCU\Klucz2, ma zostać utworzona wartość ciągu o nazwie sz, oraz danych dane 2.
Czwarta linijka mówi, że w tym kluczu ma zostać utworzona wartość binarna o nazwie bin oraz danych 01 02 03 04. Zauważ że poszczególne bajty w przykładzie nie są od siebie oddzielone żadnym separatorem.
Piąta linijka mówi, że w kluczu (tym samym co zwykle), ma zostać utworzona wartość DWORD o nazwie dword oraz danych 31. Tutaj taka mała uwaga. Dane wartości DWORD w plikach bat są podawane w systemie dziesiętnym. Oznacza to, że napisana liczba 31 rzeczywiście przedstawia 31. Linijka odpowiadająca za to samo w pliku reg wyglądałaby więc tak: "dword"=dowrd:0000001f.Szósta linijka natomiast coś usuwa. Ponieważ wystąpiła tu tylko ścieżka do klucza, oznacza to, że usunięty zostanie cały klucz.
W siódmej linijce oprócz ścieżki klucza, wystąpiła także nazwa wartości, więc usunięta zostanie tylko ta wartość. (komenda reg delete nie potrzebuje ani parametru /t, ani też /d.
Jeszcze jedna sprawa. Podczas dodawania do rejestru wartości, może
zdarzyć się, że taka wartość już istnieje, a my chcemy tylko zmienić
jej dane. Wtedy zostaniemy zapytani, czy chcemy nadpisać (zmienić)
wartość. Wszystko jest oki, ale jeśli w naszym pliku bat znajduje się
100 linijek zmieniających już istniejące wartości to będziemy musieli
100 razy potwierdzać zmianę wartości. Aby się od tego uchronić na końcu
każdej linijki możemy dodać parametr /f. Mówi on, że jeżeli wartość istnieje, to bez pytania o zgodę system ma zmienić jej dane na nowe podane przez nas w pliku.

Jak zwykle dla nieumiejących czytać przedstawię przykład z obrazkiem ;) :
Taki pliczek *.bat:

reg delete "HKCU\Klucz1" /f
reg add "HKCU\Klucz2" /v "war1" /t REG_SZ /d "dane" /f
reg add "HKCU\Klucz2" /v "war2" /t REG_DWORD /d "00002005" /f
reg add "HKCU\Klucz2" /v "war3" /t REG_BINARY /d "23ef0a" /f

Dokonuje takich zmian:

Chyba zajażyłeś.


Modyfikowanie rejestru plikami *.inf
Modyfikowanie rejestru plikami inf różni się od poprzednich sposobów
właściwie jedną rzeczą. Aby taki plik uruchomić należy kliknąć na nim
prawym przyciskiem myszy i z menu wybrać polecenie zainstaluj, a nie dwukrotnie kliknąć na nim lewym przyciskiem myszy.
Opisze tu tylko jak modyfikować rejestr przy pomocy plików inf,
ponieważ aby opisać wszystko co można zrobić przy ich pomocy, musiałbym
napisać jeszcze jeden tekst dużo dłuższy od tego który właśnie czytasz.
Dosyć pier***enia. Zacznę od ogólnej konstrukcji pliku inf, który modyfikuje rejestr:

[Version]
signature="$Windows NT$"

[DefaultInstall]
AddReg=xxx
DelReg=yyy

[xxx]
HKEY,Klucz,Nazwa,Typ,Dane

[yyy]
HKEY,Klucz,Nazwa
lub
HKEY,Klucz

Zaczynając od początku:
Pierwsza i druga linijka są obowiązkowe. Trzecia linijka (pusty wiersz) też ;) .
No i czwarta też obowiąkowa.
Piąta określa która sekcja będzie odpowiedzialna za dodanie czegoś do rejestru.
Szósta określa która sekcja będzie odpowiedzialna za usunięcie czegoś z rejestru.
Czyli my określiliśmy, że sekcja xxx będzie coś dodawała do rejestru, a sekcja yyy będzie coś z rejestru usuwała.

No to teraz struktury tych sekcji:

W przypadku sekcji dodającej informacje do rejestru, należy podać następujące dane:
Klucz główny - HKEY (np. HKLM)
Nazwę podklucza - Klucz (np. Software\Microsoft)
Nazwę dodawanej wartości - Nazwa (np. Imie)
Typ dodawanej wartości - Typ (0 dla wartości ciągu, 1 dla wartości binarnej,65536 dla wartości wielociągu lub 65537 dla wartości dword)
Dane tej wartości - Dane
(w wypadku typu 0 i 65536, po prostu podajemy jakiś ciąg znaków. W
wypadku typu 1, podajemy kolejne wartości bajtów w formie szesnastkowej
odzielając je przecinkami, tak jak ma to miejsce z wartościami
binarnymi w plikach .reg, w przypadku wartości DWORD - typu 65537
podajemy wartość liczby w systemie szesnastkowym, poprzedzając ją
znakami 0x, np. 0xAF3E)

W przypadku sekcji usuwającej informacje z rejestru, należy podać następujące dane:
Klucz główny - HKEY (np. HKCU)
Nazwę podklucza - Klucz (np. Control Panel)
Wtedy zostanie usunięty cały podany klucz (W tym wypadku HKCU\Control
Panel). Jeśli chcemy usunąć tylko jakąś wartość tego klucza to należy
podać jeszce jej nazwę - Nazwa (np. Opened).

Przykładzik z obrazkiem chyba to wyjaśni:
Taki plik inf:

[Version]
signature="$Windows NT$"

[DefaultInstall]
AddReg=dodaj
DelReg=usun

[dodaj]
HKCU,Software\Klucz1,War,0,"Ciąg"
HKCU,Software\Klucz1,Warr,1,01,02,03,0f

[usun]
HKCU,Software\Klucz2,war
HKCU,Software\Klucz3

Dokona takich zmian:


Jeszcze jeden przykładzik (tym razem już bez obrazka):
[Version]
signature="$Windows NT$"

[DefaultInstall]
AddReg=plus

[plus]
HKCU,Software\aaa,Wara,0,"Ciąg"
HKCU,Software\aaa,Warb,1,01,02,03,0f
HKCU,Software\aaa,Warc,65536,"Jakieś dane wartości wielociągu"
HKCU,Software\aaa,Ward,65537,0x1

Sam sie domyśl co robi taki pliczek :)

No i koniec :) .
Na zakończenie powiem tylko że pliki inf najbardziej mi odpowiadają, z
tego względu, że nigdy nie pytają o pozwolenie modyfikowania rejestru.
Odpalisz i se możesz kompa zjeb** bez żadnych ostrzeżeń ;) .

* Automatyczny w rozumieniu takim, że wszystkie wcześniej
zdefiniowane zmiany wykonywać mają się same bez interwencji
użytkownika. (Jadyną interwencją jest zapoczątkowanie procesu poprzez
"odpalenie" pliku).





Wyszukiwarka

Podobne podstrony:
29 w sprawie wzorów i sposobu prowadzenia centralnych rejestrów osób
Nowe sposoby fizykochemicznej modyfikacji lizozymu
Modyfikacje Win Xp Automatyczne Logowanie
Sposob na wlasny prad
Automatyka okrętowa – praca kontrolna 2
Rejestry
automatyka i sterowanie wyklad
Automatyka okrętowa – praca kontrolna 4
Automatyczna Ładowarka Akumulatorów Samochodowych
Klucze Rejestru Windows
Stromlaufplan Passat 52 Automatisches 4 Gang Getriebe (AG4) ab 10 2000
Uk? regulacji automatycznej
sposob
Talizman Venus lub sposób na kobietę
Przydatne wpisy do rejestru na komputerach klienta uzupełnie

więcej podobnych podstron