source antivirus kspoold menggunakan delphi
uses
Windows, Messages, Classes, SysUtils, Controls, Forms,
Dialogs, StdCtrls;
const
SAMPLE_SIZE = 524;
{ Microsoft Word & Excel using the same file header at the first 512,
so we get unique header at the first 12 byte after 512 offset
512 + 12 = 524 –> it's my lucky number
You can download sample of infected file by KSpoold here:
http://delphi-id.org/dpr/Downloads-index-req-viewdownloaddetails-lid-180.pas
}
type
IDEPatternRecognizer = interface
['{9AB98B63-B58E-4D0A-B420-30E6F5E37E46}']
function GetSample(const FileName: WideString; out Sample: Pointer; Size: Integer): HRESULT; stdcall;
function SetSample(const PatternName: WideString; const Sample: Pointer; const Size: Integer): HRESULT; stdcall;
function RemoveSample(const PatternName: WideString): HRESULT; stdcall;
function EnumSamples(const Dest: TStrings): HRESULT; stdcall;
function RestoreInfectedFile(const FileName: WideString; var DestFileName: string): HRESULT; stdcall;
end;
TMainForm = class(TForm)
GroupBox1: TGroupBox;
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
FDEPR: IDEPatternRecognizer;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
TKSpoolInfPattern = class(TInterfacedObject, IDEPatternRecognizer)
private
FSamples: TStream;
function FindResourceOffset(const FileName, Sample: string): Int64;
protected
{ IDEPatternRecognizer }
function GetSample(const FileName: WideString; out Sample: Pointer; Size: Integer): HRESULT; stdcall;
function SetSample(const PatternName: WideString; const Sample: Pointer; const Size: Integer): HRESULT; stdcall;
function RemoveSample(const PatternName: WideString): HRESULT; stdcall;
function EnumSamples(const Dest: TStrings): HRESULT; stdcall;
function RestoreInfectedFile(const FileName: WideString; var DestFileName: string): HRESULT; stdcall;
public
constructor Create; virtual;
destructor Destroy; override;
end;
var
MainForm: TMainForm;
implementation
uses IniFiles, Math, ShellApi;
{$R *.dfm}
{ TMainForm }
constructor TMainForm.Create(AOwner: TComponent);
begin
inherited;
FDEPR:= TKSpoolInfPattern.Create;
FDEPR.EnumSamples(ListBox1.Items);
end;
destructor TMainForm.Destroy;
begin
FDEPR:= nil;
inherited;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var Dlg: TOpenDialog;
Buf: Pointer;
PattName: string;
begin
Dlg:= TOpenDialog.Create(nil);
try
Dlg.Filter:= 'Microsoft Office Files (*.doc; *.xls)|*.doc;*.xls';
if Dlg.Execute then
if FDEPR.GetSample(Dlg.FileName, Buf, SAMPLE_SIZE) = S_OK then
begin
PattName:= UpperCase(ExtractFileExt(Dlg.FileName));
FDEPR.SetSample(PattName, Buf, SAMPLE_SIZE);
FreeMem(Buf);
ListBox1.Items.Add(PattName);
end;
finally
Dlg.Free;
end;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
if MessageBox(Handle, 'Are you sure?', 'Confirm', MB_ICONWARNING or MB_YESNO) = mrYes then
begin
if FDEPR.RemoveSample(ListBox1.Items[ListBox1.ItemIndex]) = S_OK then
begin
ListBox1.DeleteSelected;
ListBox1.OnClick(nil);
end else MessageBox(Handle, 'Unable delete sample!', 'Failed', MB_ICONWARNING or MB_OK);
end;
end;
procedure TMainForm.ListBox1Click(Sender: TObject);
begin
Button2.Enabled:= ListBox1.ItemIndex >= 0;
end;
procedure TMainForm.Button3Click(Sender: TObject);
var Dlg: TOpenDialog;
Dest: string;
begin
Dlg:= TOpenDialog.Create(nil);
try
Dlg.Filter:= 'Infected File (*.exe)|*.exe';
if Dlg.Execute then
begin
Dest:= ChangeFileExt(Dlg.FileName, '.clean.unk');
if FDEPR.RestoreInfectedFile(Dlg.FileName, Dest) = S_OK then
begin
if MessageBox(Handle, 'Succesully disinfecting the file. Open the file now?', 'Success', MB_ICONINFORMATION or MB_YESNO) = mrYes then
ShellExecute(0, 'open', PAnsiChar(Dest), '', '', SW_SHOW);
end else MessageBox(Handle, 'Unable disinfecting file!', 'Failed', MB_ICONWARNING or MB_OK);
end;
finally
Dlg.Free;
end;
end;
procedure TMainForm.Button4Click(Sender: TObject);
begin
MessageBox(Handle, 'KSpoold Disinfector 1.0 – Freeware'#13#10#13#10'Copyright © Indra Gunawan, 2ind@mail.com'#13#10'www.delphiexpert.wordpress.com',
'About Disinfecter', MB_ICONINFORMATION or MB_OK);
end;
{ TKSpoolRestore }
const CBufferSize = 1024;
BUFFER_SIZE = 4096;
constructor TKSpoolInfPattern.Create;
var SampleFile: string;
begin
SampleFile:= ChangeFileExt(ParamStr(0), '.samples.bin');
if FileExists(SampleFile) then
FSamples:= TFileStream.Create(SampleFile, fmOpenReadWrite)
else FSamples:= TFileStream.Create(SampleFile, fmCreate);
end;
destructor TKSpoolInfPattern.Destroy;
begin
FSamples.Free;
inherited;
end;
function TKSpoolInfPattern.EnumSamples(const Dest: TStrings): HRESULT;
var Mem: TMemIniFile;
begin
Mem:= TMemIniFile.Create('');
try
FSamples.Seek(0, soFromBeginning);
Dest.LoadFromStream(FSamples);
Mem.SetStrings(Dest);
Mem.ReadSections(Dest);
Result:= S_OK;
finally
Mem.Free;
end;
end;
function TKSpoolInfPattern.GetSample(const FileName: WideString;
out Sample: Pointer; Size: Integer): HRESULT;
var F: TFileStream;
begin
Result:= S_OK;
F:= TFileStream.Create(FileName, fmOpenRead);
try
GetMem(Sample, Size);
try
F.ReadBuffer(Sample^, Size);
except
FreeMem(Sample, Size);
Result:= E_POINTER;
end;
finally
F.Free;
end;
end;
function TKSpoolInfPattern.FindResourceOffset(const FileName, Sample: string): Int64;
var
FS: TFileStream;
Buf: PChar;
BufSize: Integer;
WorkPos: Int64;
Signature: string;
SignatureLen: integer;
function IsCorrectHeader(Data: PChar): Boolean;
begin
Result:= StrLComp(PChar(Signature), Data, SignatureLen) = 0;
end;
function FindSignatureInBlock(FilePos: Int64; var SignatureOffset: Int64): Boolean;
var
i: Integer;
SizeToCheck: Integer;
begin
Result:= False;
SizeToCheck:= min(FS.Size-FS.Position, BufSize)-SignatureLen;
FS.Read(Buf^, SizeToCheck);
for I:= 0 to SizeToCheck do
if (StrLComp(PChar(Signature), Buf+I, SignatureLen) = 0) then
if (IsCorrectHeader(Buf+i)) then
begin
Result:= True;
SignatureOffset:= FilePos + I + SignatureLen +
SignatureLen;
Break;
end;
end;
begin
Result:= -1;
FS:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
Signature:= Sample;
SignatureLen:= Length(Sample);
BufSize:= 10000;
Buf:= AllocMem(BufSize);
try
FS.ReadBuffer(Buf^, SignatureLen+SignatureLen);
if (StrLComp(PChar(Signature), Buf, SignatureLen) = 0) then
if (IsCorrectHeader(Buf)) then
Result:= 0;
if (Result < 0) then
begin
WorkPos:= 0;
while (WorkPos < FS.Size) do
if (FindSignatureInBlock(WorkPos, Result)) then
Break
else WorkPos:= WorkPos+BufSize-SignatureLen;
end;
finally
FreeMem(Buf, BufSize);
end;
finally
FS.Free;
end;
end;
function TKSpoolInfPattern.RestoreInfectedFile(const FileName: WideString;
var DestFileName: string): HRESULT;
var Mem: TMemIniFile;
Strs: TStrings;
Stream, Dest: TStream;
Sample: string;
SignOffset: Int64;
begin
Mem:= TMemIniFile.Create('');
try
FSamples.Seek(0, soFromBeginning);
Strs:= TStringList.Create;
try
Strs.LoadFromStream(FSamples);
Mem.SetStrings(Strs);
Strs.Clear;
Mem.ReadSections(Strs);
while Strs.Count > 0 do
begin
Stream:= TMemoryStream.Create;
try
Mem.ReadBinaryStream(Strs[0], 'Sample', Stream);
Stream.Seek(0, soFromBeginning);
SetLength(Sample, Stream.Size);
Stream.ReadBuffer(Sample[1], Stream.Size);
finally
Stream.Free;
end;
SignOffset:= FindResourceOffset(FileName, Sample);
if SignOffset >= 0 then
begin
DestFileName:= ChangeFileExt(DestFileName, LowerCase(Strs[0]));
Dest:= TFileStream.Create(DestFileName, fmCreate);
try
Stream:= TFileStream.Create(FileName, fmOpenRead);
try
Stream.Seek(SignOffset, soFromBeginning);
Dest.CopyFrom(Stream, Stream.Size – SignOffset);
Result:= S_OK;
Exit;
finally
Stream.Free;
end;
finally
Dest.Free;
end;
end;
Strs.Delete(0);
end;
finally
Strs.Free;
end;
finally
Mem.Free;
end;
Result:= S_FALSE;
end;
function TKSpoolInfPattern.RemoveSample(
const PatternName: WideString): HRESULT;
var Mem: TMemIniFile;
Strs: TStrings;
begin
Mem:= TMemIniFile.Create('');
try
FSamples.Seek(0, soFromBeginning);
Strs:= TStringList.Create;
try
Strs.LoadFromStream(FSamples);
Mem.SetStrings(Strs);
if Mem.SectionExists(PatternName) then
begin
Mem.EraseSection(PatternName);
Strs.Clear;
Mem.GetStrings(Strs);
FSamples.Size:= 0;
Strs.SaveToStream(FSamples);
Result:= S_OK;
end else Result:= S_FALSE;
finally
Strs.Free;
end;
finally
Mem.Free;
end;
end;
function TKSpoolInfPattern.SetSample(const PatternName: WideString;
const Sample: Pointer; const Size: Integer): HRESULT;
var Mem: TMemIniFile;
Strs: TStrings;
Stream: TStream;
begin
Mem:= TMemIniFile.Create('');
try
FSamples.Seek(0, soFromBeginning);
Strs:= TStringList.Create;
try
Strs.LoadFromStream(FSamples);
Mem.SetStrings(Strs);
finally
Strs.Free;
end;
Stream:= TMemoryStream.Create;
try
Stream.WriteBuffer(Sample^, Size);
Stream.Seek(0, soFromBeginning);
Mem.WriteBinaryStream(PatternName, 'Sample', Stream);
finally
Stream.Free;
end;
1 comment Agustus 27, 2007
Antrian Panjang Minyak Tanah
Lucu tapi juga prihatin, ketika melihat antrian para pembeli minyak tanah di kawasan pasar burung jatinegara.
Senin pagi, tampak padat kebanyakan ibu-ibu dan beberapa abang penjaja minyak tanah sedang menunggu giliran untuk membeli minyak tanah di Pangkalan minyak tanah kawasan pasar burung Jatinegara. Terlihat drum-drum sebagai wadah menyimpan minyak tanah tertata rapih membaris sepanjang 15 meter, lucunya setiap drum diberi nama para pemiliknya.
Saat-saat ini minyak tanah menjadi barang langka khususnya di Jakarta yang notabene menjadi pusat ekonomi di Indonesia.
Makin majunya kota, makin banyaknya orang-orang berpendidikan tinggi, makin banyaknya fasilitas-fasilitas kota, tetapi tidak membawa perubahan bagi orang-orang “bawah”, mereka tetap bersusah payah untuk mendapatkan sumber energi demi kelangsungan hidup mereka.
Sungguh prihatin melihat kondisi bangsa ini, jurang semakin lebar dan dalam memisahkan antara orang-orang “bawah” dengan orang-orang “atas”.
Semoga menjadi bahan renungan.
1 comment Agustus 27, 2007
DESPERATELY SEEKING PARADISE
Lagi surfing di internet ketemu buku bagus lumayan untuk menambah wawasan berpikir tentang arti kehidupan.
Dikutip dari :
http://event.web.id/index.php?option=com_content&task=view&id=491&Itemid=2
Bab 1
SURGA YANG DI BANGUNKAN
……Dr. Khan menyela, “Saatnya salat Zuhur.” Dia berkata sambil
menepikan mobil kebagian bahu jalan. Dia menghentikan mobil, dan
dalam satu gerakan, memegang tikar salat di tangan. Masud Sahib
mengikuti dengan gesit.
“Apakah Anda tidak salat Zuhur bersama kami?”tanya mereka
serempak.
“Tapi hujan turun,” kataku. “Di samping itu kita dalam
perjalanan. Kita dapat menunda salat dan menggabungkannya nanti.”
“Jangan mencari cara mudah,” timpal Masud Sahib. Dan dr.Khan
menambahkan, “Agama kita dirusak oleh orang yang mencari jalan
pintas.”
Aku mengikutinya, keluar dari mobil. Masud Sahib mulai
mencari tempat untuk menggelar tikar salat. Dr. Khan membacakan
azan, panggilan untuk salat.
Usai dr.khan azan, Masud Sahib mencari kiblat. Orang bisa
mengarah ke utara untuk pergi ke selatan, tapi tidak untuk arah
salat. Haruslah satu arah dan tepat. Menghadap Mekkah. Dr. Khan
menunjuk pada kompas yang ada di tikar salat. Benda yang penting
untuk ketenangan dan kepastian. Masalahnya, kita tidak dapat melihat
jarum penunjuknya. Perbedaan suhu antara udara hangat dalam mobil
dan curah hujan menimbulkan uap, termasuk pada kompas.
Tikar salat basah, kami semua basah kuyup. Lalu, dr. Khan
berdir di antara tikar dan curahan hujan. Dia memutar kepala dan
bagian atas tubuhnya ke berbagai arah. Beberapa saat kemudian dia
meluruskan badan dan menyakinkan kami bahwa dia membaca arah
tenggara dengan tepat. Tikar salat dirapikan, lalu kami bersama
mengerjakan salat. Langit terus mencurahkan berkah-Nya ke atas kami.
Pernyataan Noel Cowards tentang lelucon orang Inggris di daerah
tropis muncul dalam benakku. Pikiran itu datang saat kelakuan aneh
kami menjadi tontonan mengasyikkan para pengendara yang lewat.
Kembali ke perjalanan, Masud Sahib meneruskan sejarah Jamaah
Tabligh, tanpa ragu…..
……Aku hanya dapat memikirkannya sekilas. Tak
berapa lama, tibalah waktu asar. Sambil berbasah-basah, kami
menunaikan kewajiban kami lagi. Aku segera merasa khawatir
menghadapi magrib, salat menjelang malam. Hal luar biasa, mengingat
betapa kerasnya pelaksanaan ritus salat menjadi fokus utamaku kini.
Untungnya, dan aku bersyukur pada kemurahan-Nya, kami sampai di
Plymouth sebelum magrib….
……”Aku telah memperhatikan, saudara-saudaraku,” Masud
sahib memulai, “banyak di antara Anda yang tidak menjalankan salat
dengan benar.” Jemaah, sebagian besar mahasiswa Malaysia,
mendengarkan dengan seksama. Masud Sahib meneruskan, salat saja
belum cukup. Sangatlah penting untuk mengingat Allah, mengingat-Nya
dengan cara yang dicontohkan Nabi Muhammad SAW. Dia mengakhiri
pidatonya dengan meng-ingatkan pentingnya dakwah. Ucapan yang selalu
diulang ini menjadi akrab ditelinga. Dan kini ucapan ini
mengingatkannya untuk mengajak jemaah pergi bersama kami mengikuti
konferensi Jamaah Tabligh. “Sheffield akan menjadi saksi untuk
sebuah pertemuan Muslim terbesar dalam sejarah Inggris.”……
( Kutipan dari Bab 1 )
Add comment Agustus 24, 2007
Membuat Class Path pada windows
Beberapa hari yang lalu ada teman kantor bertanya bagaimana membuat class path di windows.
Mungkin dari teman-teman semua memiliki pertanyaan sama, di bawah ini saya sampaikan tips untuk membuat class path di windows :
- klik kanan pada my computer lalu klik properties
- klik menu advanced lalu klik tombol environment variables
- kalo ingin membuat baru klik new dan isi variable name dan value
- kalo ingin mengubah klik edit dan ubah variable name dan valu
Semoga bermanfaat
4 comments Agustus 24, 2007
Salut untuk teman-teman UI
Tepatnya hari kamis, tanggal 16 Agustus, saya harus menyelesaikan draft proposal tesis untuk diajukan ke dosen. Karena malamnya ketiduran, terpaksa jam 4 pagi bangun untuk menyelesaikan draft proposal. Sudah jam 8 tapi draft proposal belum selesai, ya sudah, dilanjutkan di kantor. Draft proposal selesai sekitar jam 10.
Ijin ama atasan untuk keluar ke UI Depok, ternyata atasan tidak ada ditempat akhirnya ijin ama sekretarisnya agar disampaikan. Naik KRL dari stasiun manggarai menuju stasiun Pondok Cina. Sampai di UI Depok sekitar jam 11.30, masuk ruangan sudah banyak teman-teman yang menunggu giliran untuk mengajukan proposal.
Menunggu giliran sambil membuat presentasi, tidak terasa waktu dzuhur telah masuk, tinggalkan sebentar aktivitas menuju mushola untuk sholat dzuhur. Ketika sampai mushola sudah banyak teman-teman UI yang mengantri untuk mengambil wudhu dan sholat berjamaah. Berbondong-bondong teman-teman Mahasiswa baik yang cowok maupun yang cewek ke mushola walaupun gak semua, ada juga yang mampir dulu ke kantin dan juga ke tempat lain.
Suasana seperti itu, sungguh sangat langka pada saat sekarang terlebih-lebih di kampus saya sendiri, dari kesibukan2 mereka, mereka tidak lalai untuk sholat di awal waktu secara berjamaah. Jika suasana seperti itu ada disetiap kantor, kampus, atau dimana saja, insyaallah akan datang kejayaan seperti yang dijanjikan oleh ALLAH yang tersirat di lafadz Adzan.
Sekali lagi salut buat teman-teman UI.
2 comments Agustus 20, 2007
Hilangnya Pesona Liga Inggris
Kecewa … Kecewa
Sebagai salah satu penggemar liga Inggris, saya kecewa sekali, tidak dapat menyaksikan langsung pertandingan liga Inggris secara gratis di tv. Kalaupun bisa harus mengeluarkan uang untuk membayar sewa tv kabel. Mahalnya hak siar liga Inggris membuat TV swasta dan juga sponsorship setia bola mengalihkan siarannya ke liga lain.
Gocekan ala cristiano ronaldo, tackling ala john terry, tendangan gledek ala steven gerrard, penyelematan gawang ala petr cech, gaya robotnya peter crouch, aksi-aksi bintang-bintang baru sepeti fernando torres, malouda, owen hagreaveas dll tidak bisa disaksikan langsung, paling-paling hanya di cuplikan-cuplikan berita saja.
Sepak bola adalah hiburan tv yang paling kecil mudharatnya (baca:efek negatif), karena selama ini jarang nonton, paling-paling nonton bola tiap sabtu malam dan minggu malam (waktu liga Inggris masih ditayangkan di salah satu tv swasta) selebihnya kadang2 nonton berita.
Tapi itu semua ada hikmahnya, makin jarang nonton tv, yang sekarang isi hanya sinetron minded (pagi-siang-malam) yang notabene sedikit sekali manfaatnya.
Bagi penggemar liga Inggris, selamat bersedih dan kecewa, he..he..
2 comments Agustus 15, 2007
Hati hati : Modus Kejahatan di Jakarta
Kejadian ini menimpa saya Kamis malam 9 Agustus sekitar jam 19.15
Ketika pulang dari kantor menuju UI untuk Sholat Isya, pas persis di depan halte busway UI, tiba-tiba ada menyapa dan menanyakan nama saya dengan nada tegas dan keras. Dia (baca:preman) langsung mengenalkan diri dan menjelaskan motifnya, dia(baca:preman) sedang nyari orang yang mirip saya, dia(baca:preman) disuruh orang dan dibayar karena orang yang menyuruhnya mempunyai anak perepmpuan dipukuli dan dirampas, dan orang yang memukuli dan merampas mirip saya. Maka saya disuruh untuk menemui anak tersebut untuk memastikan apakah pelakunya saya apa bukan, karena adzan udah selesai saya buru-buru mau sholat, tapi dia (baca:preman) meminta saya untuk menemui anak tersebut, tiba-tiba ada dua orang teman yang berkenalan dan mengantar saya menuju ke rumah (aku mereka). Sangka baik, saya ikut dengan janji sebentar saja, sambil ngobrol2 saya diantar sampai ke belakang gedung perpustakaan nasional, dekat sungai talang melewati kampus STMIK&STIE Jayakarta. Disana 3 orang temannya menunggu, dan menyapa saya dengan akrab dan kami pun bersalaman. Saya ditanya oleh pemimpin mereka (yang pertama kali menegur saya waktu didepan UI), dia menanyakan apa saja yang saya bawa, dari jam tangan, jenis HP, isi dompet, ATM dari Bank mana isinya berapa, Visa. Persisnya saya dikelilingi sama 6 orang preman. Singkat cerita, ada gelagat yang tidak beres, saya izin untuk sholat isya sebentar dan saya akan kembali lagi kesini, itu yang saya sampaikan kepada pemimpin preman (anehnya preman itu menurut saja dan memperbolehkan saya pergi), tapi preman itu mengancam kalau tidak balik teman-temannya nanti akan menunggu diujung jalan dan memukuli saya.
Saya sholat isya di mushola kampus Jayakarta, setelah itu sedikit panik langsung pulang ke rumah kos. Ketika sampai di kos, saya bercerita kepada teman2 kos ternyata ada temannya teman kos saya yang mengalami hal serupa seperti saya tetapi temannya kurang beruntung.
Saya bersyukur harta dan diri masih diselamatkan Allah. (Puji Syukur ya Allah).
Bagi teman-teman pembaca, jika ada orang yang mengaku-ngaku mencari orang mirip seperti diri kita, sebaiknya berusaha menghindar dan mengacuhkan orang tersebut.
Semoga pengalaman saya bermanfaat bagi teman-teman semua.
Waspada adalah ikhtiar yang terbaik buat kita, tapi tetap mengedepankan sangka baik.
2 comments Agustus 13, 2007
Orang-orang Berjiwa Besar (1)
Ketika pulang menuju Cibinong dari Salemba, lewat jalan raya bogor, saya melihat seorang bapak petugas parkir jalanan yang sedang mengatur kendaraan yang lewat, yang membuat saya kaget, bapak petugas parkir itu (maaf) cacat fisik pada kedua kakinya. Saya memperhatikan dari mobil bapak itu dengan menggunakan seragam petugas parkir, dengan bangga dan semangatnya mengatur kendaraan yang lalu lalang agar jalanan tertib dan teratur. Yang membuat saya lebih kaget lagi, ada anak muda memberi uang (saya tidak melihat dengan jelas, mungkin sekitar 3 ribu) kepada bapak petugas parkir tersebut, ternyata bapak itu menolaknya dengan memberi isyarat tangannya agar anak muda itu tidak usah memberikan uang kepadanya sambil memberitahu dia lagi sibuk (menurut asumsi saya karena saya tidak mendengar apa yang dikatakan bapak petugas parkir kepada anak muda itu, bahwa dirinya menolak pemberiannya karena dia bukan seorang peminta-minta, dia lagi sibuk bekerja).
Kagum sekali, saya dibuatnya, bapak petugas parkir tersebut benar-benar orang yang sangat hebat-berjiwa besar, jarang sekali pada zaman sekarang ada orang yang seperti itu. Orang kaya tidak puas dengan rumahnya yang sudah megah ingin punya rumah lagi, orang kaya yang punya mobil mewah ingin punya mobil lagi dan macam-macam kelakuan orang-orang pada zaman sekarang. Melihat bapak petugas parkir, bagaikan menemukan sebuah intan-berlian di kubangan lumpur yang kotor.
Salah besar kalau untuk hidup mengandalkan status, fisik, materi saja tapi juga jiwa yang memiliki kebesaran dan kelapangan. Mudah-mudahan bapak petugas parkir diberi kemudahan dan keluasan rezeki oleh Allah SWT untuk membekali hidup bagi dirinya dan keluarganya.
Insyaallah bersambung ……………………..
Add comment Juli 31, 2007
Hidupkan Masjid (1)
Ketika selesai sholat sunnah bada isya, tiba-tiba seorang pemuda menyapa saya dari belakang, dia memperkenalkan diri begitu juga saya, ternyata anak muda tersebut bernama Hanafi (seorang muallaf yang dulunya bernama Hendrik, masuk islam semenjak 2 bulan yang lalu pada saat itu). Dia bercerita bagaimana dulu dia masuk islam, (dalam hati,saya ucapkan puji syukur kepada Allah, Allah sebarkan taufik dan hidayah kepada siapapun yang Allah kehendaki), dia bercerita bagaimana ujian melanda dia, bapak mengusirnya (mungkin bapaknya kaget dan dia tidak bicara baik2 kepada bapaknya). Sehari-hari aktivitas dia membantu bapaknya berdagang, uang didapatkannya dari upah yang diberikan bapaknya selama dia membantu berdagang. Bapaknya tidak suka dia meninggalkan dagangannya karena dia mau sholat. Karena bapaknya mengusirnya pada waktu itu, otomatis biaya untuk hidup tidak ada karena hanya mengandalkan dari upah bapaknya, dan dia hanya lulusan SMP. Dia mengeluh soal ekonominya, dalam hati saya, saya juga lagi butuh biaya kuliah S2 (sungguh egois dan pelit saya), saya langsung teringat bagaimana Rasulullah dan para sahabat yang memiliki sifat iqram (memuliakan) kepada saudara semuslim yang sangat tinggi, langsung saja saya menanyakan kebutuhannya sekarang. Karena keinginannya belajar mengaji tinggi, dia ingin membeli buku Iqra tapi tidak punya uang, dan dia bertanya kepada saya apakah saya punya buku Iqra dan juga dia belum makan pada hari itu. Saya langsung pulang mencari buku iqra (alhamdulillah ada), dan saya bawakan beberapa baju koko, sarung dan celana serta nasi beserta lauk-pauk dan sayur dalam satu nampan untuk makan sama2. Sambil makan bersama dalam satu nampan (sunnah Nabi), dia bertanya kepada saya yang membuat saya malu sebagai umat Nabi, yang dia tanyakan “Mengapa umat islam yang peduli akan muallaf yang kurang mampu seperti dirinya hanya sedikit sekali”, saya agak lama menjawabnya, sambil meneruskan makan dan menunggu ilham, saya menceritakan bagaimana dulu para sahabat yang mempunyai sifat mulia, memberlakukan saudara muslim seperti diri mereke sendiri, dan saya juga menceritakan kondisi umat islam sekarang karena kelemahannya dan ketidakpahamannya akan islam belum bisa meneladani para sahabat (begitu juga saya), setelah mendengar cerita saya (padahal saya tidak menjawab pertanyaannya, hanya cerita saja) dia akhirnya memaklumi. Setelah makan, dia pamitan untuk pergi (saya tidak tahu dia pergi kemana, katanya dia mau pergi ke masjid lain) dan minta doa agar diberi kekuatan menjalankan islam.
Setelah dia pergi, saya berpikir kenapa yang dia temui selepas sholat isya tadi itu saya, kenapa bukan imam masjid atau ustadz (karena tadi di masjid ada kajian tafsir quran) yang notabene punya segudang ilmu dan pengalaman. Mungkin kalo ada Ustadz atau Imam Masjid saat itu masalah bisa selesai. Kalau dipikul saya sendiri sepertinya berat sekali.
Andai masjid seperti kantor atau pabrik yang setiap saat ada yang memikirkannya, ada yang mengaturnya, ada yang mengelolanya pagi sampai malam, mungkin masjid tidak sesepi seperti sekarang, orang-orang berbondong-bondong ke masjid, menyelesaikan masalah di masjid, bertukar pikiran di masjid, kalau ada masalah orang-orang larinya ke masjid, orang-orang cinta masjid. (Kapan masjid bisa seperti itu ?)
Masjid-masjid sekarang hanya sebagai simbol keagamaan saja (Megah tapi gak ada yang mo ngisi), tidak ada bedanya dengan Peti Mati (Sama-sama megah juga tapi gak ada yang mo ngisi). Perbanyak istighfar.
Insyaallah bersambung …………………..
1 comment Juli 27, 2007