Sabtu, 02 Mei 2009

Registry Windows

Mengenal File INF
File INF merupakan file untuk instalasi program Windows. Ekstension yang digunakan adalah *.INF. Jenis file teks ini terbagi menjadi beberapa bagian yang dikenal dengan istilah Section. Setiap Section dirancang untuk suatu keperluan tertentu, seperti meng-copy file atau menambah data ke dalam sistem registry. Jumlah dan jenis Section pada sebuah file INF bergantung pada prosedur instalasi yang akan dijalankan. jadi, isinya dapat terdiri atas beberapa baris saja, tetapi tidak sedikit pula yang berisi puluhan baris data.

Beberapa Komponen pada Section
Cukup banyak Section yang dapat Anda gunakan dalam menulis script pada file INF, di antaranya:

[Version]: Berisi informasi tentang suatu file INF. Section ini wajib ada di setiap file INF atau dapat dikatakan, bagian ini merupakan header dari file INF.

[DefaultInstall]: Berisi suatu pointer ke section lainnya, yang menyebutkan apakah file akan di-copy, dihapus, melakukan proses manipulasi registry, dan lain sebagainya. Secara default section ini akan selalu dieksekusi.

[OtherInstall]: Section ini memakai format yang sama dengan section [DefaultInstall]. Umumnya, section ini digunakan untuk mendefinisikan bagaimana suatu komponen harus di-uninstall.

[DestinationDirs]: Section ini merujuk ke lokasi dari hard disk untuk mengetahui file yang akan di-copy, dihapus, atau di-rename.

[SourceDisksNames]: Section yang berisi daftar disk yang bersi file.

[SourceDisksFiles]: Section yang berisi daftar disk untuk mengetahui secara spesifik lokasi setiap file.
Pemakaian Section [Version]
Bagian ini selalu ada di dalam file INF, karena ia memuat Signature dari file INF. Standar signature header-nya adalah $Chicago$. Bentuk penulisannya adalah sebagai berikut :

[Version]
Signature=”$Chicago$”
LayoutFile=filename.inf
Provider = cybersufi


Perlu Anda perhatikan, bahwa string pada Signature tidak case sensitive. Artinya, ia tidak membedakan penggunaan huruf kapital dan huruf kecil. Maka Anda dapat menuliskannya sebagai $Chicago$ atau $CHICAGO$.

Pada contoh di atas, terdapat baris LayoutFile=filename.inf. Baris tersebut mendefinisikan informasi layout (source disk dan file) yang dibutuhkan untuk menginstall sebuah komponen. Pilihan ini bersifat opsional. Jika baris ini tidak ada, Section [SourceDisksNames] dan [SourceDisksFiles] harus disebutkan tersendiri dalam file INF yang Anda buat. Baris Provider=cybersufi dapat digunakan untuk menunjukkan pembuat atau penyedia file INF tersebut. Pilihan ini juga bersifat opsional.

Pemakaian Section [DefaultInstall]
Section Install terdiri atas dua jenis, yaitu [DefaultInstall] dan [OtherInstall]. Keduanya memakai format yang sama. Umumnya, hanya Section [DefaultInstall] yang terdapat dalam file INF. Section ini akan berisi beberapa baris data, di antaranya adalah:

CopyFiles=section file-list, meng-copy file.
RenFiles=section file-list, mengganti nama file.
DelFiles=section file-list, menghapus file.
AddReg=section add-registry, menambah data di registry.
DelReg=Section del-registry, menghapus data di registry.


Section install secara default akan meng­identifikasi section tambahan untuk instalasi sejumlah komponen.

Section menambah data registry
Agar dapat memanipulasi registry, maka dibutuhkan sebuah baris data pada Section [DefaultInstall]. Baris data ini akan mendefinisikan suatu Section agar mengetahui di mana perintah penambahan data registry berada. Sintaknya adalah:

[Section AddReg]
String reg-root, [Subkey],
[Value-name], [Flag], [Value]


Penjelasan script di atas adalah [Section AddReg] tidak harus tertulis seperti itu, tetapi dapat dituliskan sembarang nama, misalnya [Registry-ku] atau [reg-tambah]. Data pada String reg-root adalah nama dari Registry root. Informasi yang dapat dimasukkan adalah HKCR mewakili HKEY_CLASSES_ROOT, HKCU mewakili HKEY_CURRENT_USER, HKLM mewakili HK­EY_LOCAL_MACHINE, dan HKU mewakili HKEY_USERS.
[Subkey] berisi alamat subkey dan dapat ditulis dengan format key1\key2\key3. Contohnya, Software\Microsoft\Windows­. [Value-name] adalah nama value yang akan ditambahkan dan dapat disesuaikan dengan­ kebutuhan. Contoh­nya, NoRun, NoFind, dan sebagainya. Jika value ini kosong, maka diset NULL string. [Flag] berguna menentukan jenis value dan menentukan apakah nilainya akan diganti atau tidak.

Jenis value yang dapat dipakai sebagai pengganti nilai [Flag] adalah:

0, Sebagai nilai Default. Valuenya adalah jenis string ANSI dan nilainya akan diganti jika sudah ada.
1, valuenya adalah jenis hexadecimal dan nilai akan diganti jika sudah ada.
2, valuenya adalah jenis ANSI string dan nilai tidak akan diganti jika sudah ada.
3, valuenya adalah jenis hexadecimal dan nilai tidak akan diganti jika sudah ada.

[Value] adalah nilai yang akan dipasangkan. Contoh penulisan section untuk­ menambah data registry adalah sebagai berikut:

[Tambah-Registry]
HKLM,Software\Test,Coba,,”Aplikasiku “


Pengertian script di atas adalah membuat sebuah section dengan nama [Tambah­-Registry]. Nama value yang dibuat berada di HKLM\Software\Test. HKLM adalah masukan String reg-root, sedangkan \Software\Test adalah masukan dari [Subkey]. Masukan [Value-name] adalah Coba. Sementara itu, jenis data yang akan dibentuk adalah string karena masukan [Flag] adalah kosong (tidak diisi). Masukan [Value] adalah “Aplikasiku”.
Section menghapus data registry
Sama halnya dengan section untuk menambah data registry, section ini membutuhkan masukan pada Section [DefaultInstall]. Script ini akan mendefinisikan suatu Section agar mengetahaui dimana perintah penghapusan registry berada. Sintaknya adalah:

[Section DelReg]
String reg-root, [Subkey], [Value-name]


[Section DelReg] tidak harus tertulis seperti itu, tetapi dapat dituliskan sembarang nama, misalnya [HapusRegistry] atau [reg-Hapus]. String reg-root adalah nama Registry root. Nilai yang dapat dimasukkan adalah sama dengan penambahan registry.

[Subkey] berisi alamat subkey yang dapat ditulis dengan format key1\key2\key3. Contohnya, Software\Policies\Control Panel. [Value name] adalah nama value yang akan dihapus dan disesuaikan dengan data yang akan dihapus, contohnya NoControlPanel, NoClose, dan sebagainya.

Praktik lapangan
Jalankan program Registry Editor dengan cara klik “Start | Run” lalu ketik regedit dan tekan [Enter]. Saat Registry Editor telah tampil, pemeriksaan dilaksanakan di lokasi HKLM\Software\Microsoft\Win­dows\CurrentVersion\Policies\Explorer. Terlihat, subkey Explorer tertulis namanya adalah NoFind. NoFind berguna untuk menyembunyikan perintah Search pada menu Start (gambar 1).
Image
Gambar 1: Subkey Explorer tertulis namanya adalah NoFind.
Bagaimana jika Anda diminta untuk menghapus NoFind dan membuat nama value baru NoRun dengan memanfaatkan file INF. Untuk diketahui bersama, NoRun berguna untuk menyembunyikan perintah Run pada menu Start.

Jalankan program Notepad melalui “Start | Run”, lalu ketik Notepad dan tekan [Enter]. Saat program Notepad aktif, tuliskan script atau baris data sebagai berikut:

[Version]
Signature=”$Chicago$”
Provider=CyberSufi

[DefaultInstall]
AddReg=tambah
DelReg=Hapus

[Tambah]
HKLM,Software\Microsoft\Windows\
CurrentVersion\Policies\Explorer,NoFind,1,1

[Hapus]
HKLM,Software\Microsoft\Windows\
CurrentVersion\Policies\Explorer,NoRun


Penjelasan script di atas adalah Signature dari section [Version] berisi data $Chicago$. Pembuat script adalah CyberSufi dan dimasukkan pada Provider. Pada section [DefaultInstall] akan dilakukan penambahan data pada registry dengan entri AddReg. Sementara itu masukan dari AddReg adalah section [Tambah].

Selain itu, akan dilakukan pula penghapusan data registry yang diwakili dengan entri DelReg. Disebutkan bahwa data yang akan dihapus ada di section yang bernama [Hapus]. Pada section [Tambah], manipulasi dilakukan pada subkey Explorer yang berada di HKLM\Software\Microsoft\Windows\CurrentVersion\Policies. Nama value yang dimaksud adalah NoFind, jenis masukan datanya Hexadecimal (angka 1 pada isian flags) dan nilai valuenya adalah 1.

Pada section [Hapus], nama value NoFind akan dihapus, sedangkan alamat nama value tersebut berada di HKLM\Software\Microsoft\Windows\CurrentVersion\Policies. Setelah seluruh script selesai ditulis, simpan melalui “File | Save” beri­ nama Test.inf dan simpan di My Document (gambar 2).
Image
Gambar 2: Menyimpan file Test.inf di My Documents.
Langkah selanjutnya, buka My Documents. Akan ditemukan file baru dengan nama Test.inf (gambar 3). Agar semua nilai yang terdapat dalam file INF dapat dieksekusi, klik kanan file Test.inf. Saat context menu muncul, klik Install. Dengan cara ini, isi file INF akan mengakses registry (gambar 4).
Image
Gambar 3: File Test.inf telah tersimpan di My Documents.
Image
Gambar 4: Melalui context menu pilih Install.
Jika regedit diaktifkan dan isi subkey Explorer diperiksa, nama value NoFind berubah menjadi NoRun (gambar 5).
Image
Gambar 5: Pada Subkey Explorer terlihat nama value telah diubah menjadi NoRun.

Pengembangan file INF
Penggunaan file INF dapat dikembangkan secara kompleks untuk memodifikasi data yang akan dimanipulasi. Salah satu kegunaannya, Anda dapat menonaktifkan sejumlah feature di Windows agar komputer bekerja lebih cepat dan aman. Namun, sebaiknya Anda membuat dua file INF. Satu file digunakan untuk manipulasi registry, file kedua berfungsi mengembalikan konfigurasi registry yang telah di ubah.

Sebagai praktek awal, Anda dapat memanfaatkan dua script yang dapat ditemukan pada CHIP CD/DVD dalam folder Registry Mania.

Source: CHIP 08/2008
Author: Tri Amperiyanto


Tidak ada komentar:

Posting Komentar