Windows - Keresés a registry-ben

forráskód letöltése
A Windows 2000 Resource Kit egyik eszközével a registry tartalomban tudunk keresést végezni. Az eszköz képes arra, hogy külön megadott registry fájlokban is keressen, valamint a találatokat igény szerint megadott tartalomra tudja lecserélni. Cikkünkből megismerheti az eszköz használatát.
A Windows 2000 Server Resource Kit csomagjában találjuk meg a RegFind nevű parancssori eszközt, amellyel keresni tudunk a Windows 2000 registry-ben közvetlenül adatokra, kulcs nevekre, vagy érték nevekre. Az eszköz le is tudja cserélni a megtalált értékeket új tartalomra.
Szintaxis:
regfind [{-m \\ComputerName | -h HiveFile HiveRoot 
| -w Win95Directory}] [-i n] [-o OutputWidth] 
[-p RegistryKeyPath] [{-z | -t DataType}] [{-b | -B}] [-y]
[-n] [SearchString [-r ReplacementString]]
Opciók:
  • -m \\ComputerName: Megad egy távoli gépet, amelynek a registry-jét manipulálni akarjuk.
  • -h HiveFile HiveRoot: Megad egy registry fizikai állományt.
  • -w Win95Directory: Megadja az utat a Windows 95 system.dat és user.dat állományaihoz.
  • -i n: A megjelenítési bekezdések nagyságát adja meg. Alapértelmezésben 4.
  • -o OutputWidth: Megadja a kimenet méretét, amennyiben az nincs átirányítva fájlba. Ebben az esetben az érték 240.
  • -p RegistryKeyPath: Megadja, hogy hol kezdődjön a keresés a registry-ben. Az itt megadott helyen indul a keresés. Ha nem adjuk meg az értéket, akkor az egész adatbázisra kiterjed a keresés. Ha az út space karaktereket tartalmaz, akkor használjunk idézőjelet.
  • -z: Keresést határoz meg REG_SZ és REG_EXPAND_SZ értékekre, amelyekből hiányoznak a kiegészítő üres karakterek, és/vagy amelyeknek hossza nem a többszöröse egy Unicode karakter többszörösének. Ha a –r is meg van adva, akkor bármely behelyettesítő karaktert figyelmen kívül hagy és a RegFind hozzáadja a hiányzó üres karaktereket, és/vagy a méretet egészen egy Unicode karakter méretének többszöröséig állítja be.
  • -t DataType: Megadja, hogy melyik típusú registry tartalomra történjen keresés. Ez lehet REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BINARY vagy REG_NONE. Az alapértelmezett az _SZ típusok.
  • -b: Csak _SZ értékeknél érvényes. Megadja, hogy keressen egyezőséget a bináris adatokban is. Nem adhatunk meg olyan behelyettesítő értéket, amely nem azonos méretű a keresett értékkel.
  • -B: Megegyezik a –b-vel, csak ANSI verziójú szöveget keres a bináris tartalomban.
  • -y: Csak _SZ kereséseknél érvényes. Beavatkozás nélküli mód.
  • -n: Kulcs- és értékneveket emel be a keresésbe; nem használható a –t-vel együtt.
  • SearchString: Erre az értékre keres a program. Ha nem megadott, akkor a Regfind a típus alapján keres.
  • -r ReplacementString: Megadhatunk egy behelyettesítő értéket, amelyet az alkalmazás becserél a megtalált helyeken. Ennek az értéknek azonos típusúnak kell lennie, mint amit a –t segítségével meghatároztunk. Bármely _SZ érték esetében ez sztring, REG_DWORD esetében egy egyszerű érték (pl. 0x1000, vagy 4096). REG_BINARY esetében ez egy byte sorozat, amely mindegyik egy különálló REG_DWORD érték pl. 0x001 0x12345 0x5846. Ha csak a byte sorszám megadott, akkor a Regfind olyan értékeket keres, amelyek mérete megegyezik a megadottal. Ne keressünk hosszra úgy, hogy közben behelyettesítést is megadunk. Ha cserét végzünk, a Regfind megmutatja a becserélés utáni értéket. Érdemes előbb behelyettesítő paraméter nélkül futtatni a Regfind-et, és csak utána, ha már láttuk, hogy mit fog lecserélni, elindítani a –r paraméterrel együtt. Amikor registry utat adunk meg, akkor az alábbi prefix-eket használhatjuk:
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_USER
USER:
Minden itt szereplő szöveges rész lehetséges, mint út, illetve \-jellel összekötve alkulcsokat is megadhatunk.
Példa
regfind -p HKEY_LOCAL_MACHINE\SYSTEM "txt"
Az itt látható példa megkeresi a megadott kulcs alatti valamennyi txt egyezést. A minta eredménye a mellékelt txt állományban látható.