Apa Itu Registry Di Windows?


Pada sistem operasi UNIX dan turunannya, konfigurasi sistem operasi dan aplikasi dilakukan dengan mengubah isi file konfigurasi yang terletak di lokasi /etc. Sistem operasi Windows memiliki lokasi tersendiri untuk meletakkan konfigurasi yang disebut sebagai registry. Karena registry tidak dalam bentuk file, dibutuhkan API khusus untuk mengaksesnya, seperti RegQueryValueEx(). Oleh sebab itu, sebuah aplikasi yang harus bisa dijalankan di sistem operasi berbeda (seperti aplikasi yang dibuat dengan Java) tidak pernah menyimpan konfigurasi di dalam registry melainkan dalam bentuk file. Hampir semua sistem operasi dapat membaca dan menulis file, tapi hanya sistem operasi Windows yang memakai registry. Apa yang membuat registry unik?

Registry pada Windows dapat dianggap sebagai sebuah database dalam bentuk map yang terdiri atas key dan value. Nilai pada registry terdiri atas salah satu dari tipe REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_BINARY, REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_LINK, REG_MULTI_SZ, REG_RESOURCE_LIST, REG_FULL_RESOURCE_DESCRIPTION, REG_RESOURCE_REQUIREMENTS_LIST dan REG_QWORD.

Untuk melihat isi registry, saya dapat menggunakan tool Regedit.exe seperti yang terlihat pada gambar berikut ini:

Melihat Isi Registry

Melihat Isi Registry

Root HKEY_USERS atau disingkat sebagai HKU memiliki subkey berupa SID seperti S-1-5-21-1463437245-1224812800-863842198-1128 yang mewakili masing-masing user yang terdaftar di sistem operasi. Setiap subkey terdiri lagi atas subkey yang mewakili konfigurasi sistem operasi seperti AppEvents, Console, ControlPanel, Environment, EUDC, Identities, Keyboard Layout, Network, Printers, Software dan Volatile Environment.

Root HKEY_CURRENT_USER atau disingkat sebagai HKCU sebenarnya adalah adalah sebuah link ke subkey di HKEY_USERS untuk user yang sedang login saat ini.

Root HKEY_LOCAL_MACHINE atau disingkat sebagai HKLM berisi konfigurasi yang bersifat global untuk seluruh user di sistem operasi tersebut. Isi subkey BCD00000000 miliknya berisi konfigurasi BCD yang dapat diatur dengan tool BCDEdit.exe. Subkey HARDWARE berisi konfigurasi untuk perangkat keras (terutama perangkat keras legacy). Subkey SOFTWARE berisi konfigurasi untuk software. Aplikasi pihak ketiga (yang bukan bawaan Windows) dapat menyimpan konfigurasinya di subkey ini. Subkey SYSTEM berisi konfigurasi untuk Windows yang dibutuhkan untuk menjalankan sistem operasi tersebut.

Subkey SAM dan SECURITY pada HKLM adalah sesuatu yang unik karena mereka tidak dapat dilihat walaupun saya sudah menjalankan Regedit.exe sebagai administrator. Hal ini karena pada pengaturan default, hanya user SYSTEM saja yang boleh melihat isinya. Saya dapat menggunakan tool PsExec.exe dari SysInternals Suite untuk menjalankan Regedit.exe sebagai SYSTEM dengan menggunakan perintah berikut ini (jangan lupa menjalankan command prompt sebagai administrator):

C:\> psexec.exe -s -i regedit.exe

Setelah ini, saya dapat melihat isi subkey SAM dan SECURITY seperti yang terlihat pada gambar berikut ini:

Melihat Isi Registry Yang *Tersembunyi*

Melihat Isi Registry Yang *Tersembunyi*

Pada gambar di atas, terlihat bahwa HKLM\SAM adalah link ke HKLM\SECURITY\SAM.

Root HKEY_CLASSES_ROOT berisi konfigurasi asosiasi ekstensi file, registrasi COM, dan virtualized registry root untuk UAC. Root ini sebenarnya adalah link yang merupakan kombinasi dari dua lokasi, yaitu HKCU\SOFTWARE\Classes (mewakili konfigurasi per user) dan HKLM\SOFTWARE\Classes (mewakili konfigurasi global).

Root HKEY_CURRENT_CONFIG atau disingkat sebagai HKCC adalah link ke HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current.

Terdapat sebuah root spesial lagi dengan nama HKEY_PERFORMANCE_DATA. Root ini tidak dapat dilihat melalui Regedit.exe sehingga hanya dapat diakses melalui kode program dengan memanggil API seperti RegQueryValueEx().

Salah satu fakta menarik tentang registry adalah isinya tidak disimpan di dalam sebuah file yang sama, melainkan dalam beberapa file berbeda yang disebut sebagai hives. Informasi lokasi hives dapat dilihat di isi registry HKLM\SYSTEM\CurrentControlSet\Control\Hivelist. Sebagai contoh, hive untuk key HKLM\BCD00000000 adalah file C:\Boot\BCD, hive untuk key HKLM\SECURITY adalah file C:\Windows\System32\Config\Security, dan sebagainya.

Ada juga isi registry yang bersifat volatile yaitu HKLM\HARDWARE. Isi dari subkey tersebut tidak disimpan dalam bentuk file, melainkan diperbaharui setiap kali sistem operasi dijalankan. Hal ini mirip seperti \proc di Linux yang merupakan sebuah virtual filesystem yang tidak memiliki asosiasi ke file di harddisk. Walaupun \proc terlihat seperti sebuah directory yang dapat diakses dengan perintah umum seperti ls dan cd, tidak ada file fisik yang tersimpan di harddisk untuk directory tersebut.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: