Posts filed under 'Tips & Trik'

Joomla! : Salah satu CMS open source

Untuk membuat sebuah web site yang berbasis Content Management, kita bisa menggunakan salah satu Aplikasi CMS open source yaitu Joomla!.

Dapat di download disini : http://joomlacode.org/gf/project/joomla/frs/

Untuk versi Joomla!1.0 di http://joomlacode.org/gf/download/frsrelease/4508/13217/Joomla_1.0.13-Stable-Full_Package.zip

Untuk versi Joomla1.5RC3 di http://joomlacode.org/gf/download/frsrelease/5652/16453/Joomla-1.5RC3.zip

Semoga bermanfaat,

Salam,

Fahrul Nurzaman

1 comment Desember 7, 2007

Contoh Virus dengan Delphi

Procedure DisabledTaskManger Dgn Delphi ();

//– Dikirim oleh: saysansay pada Tuesday, December 27, 2005, 649 Reads
//– Topik: TipDanTrik Tuesday, December 27, 2005 – 03:35 AM, (Dibaca 649 kali)

procedure Tform1.FormCreate(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey(‘\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System’, True)
then Reg.WriteInteger(‘DisableTaskMgr’,1);
finally
Reg.CloseKey;
Reg.Free;
end;

end;

Syntax Highlighted with http://delphi-id.org/syntax

// Ingat untuk Restore Ke State System agar normal setelah keluar gunakan kode ini
//diform event ondestroy
procedure Tcontrolform.FormDestroy(Sender: TObject);
var
Reg: TRegistry;
begin

Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey(‘\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System’, True)
then Reg.WriteInteger(‘DisableTaskMgr’,0);
finally
Reg.CloseKey;
Reg.Free;
end;

end;

2 comments Agustus 27, 2007

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 :D

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

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

Menyetting Default Starting – up pada Linux Ubuntu-Festy Fawn

Beberapa bulan yang lalu, saat mengisi pelatihan linux dalam rangka mengenalkan open source di lingkungan fakultas dan LPT.  Ada peserta yang bertanya kepada saya, bagaimana cara mengubah default starting – up OS setelah komputer dijalankan, maksudnya ketika kita meng-install beberapa OS pada komputer kita, otomatis ada beberapa OS yang dapat digunakan di komputer kita, contoh kita menginstall 2 OS linux dan Windows, ketika kita menjalankan komputer terdapat 2 pilihan untuk masuk ke OS tersebut, secara otomatis satu OS terpilih contoh Linux, yang dia tanyakan bagaimana mengubah pilihan tersebut langsung mulai dari window.

Di bawah ini saya sampaikan tips dan trik untuk mengubah default starting up OS pada komputer dengan menggunakan Linux Festy Fawn, langkah-langkahnya sebagai berikut :

1. Setelah masuk ke Linux Ubuntu, pilih menu terminal

2. Masuk ke super user, dengan perintah sudo – i

3. Masuk ke root, dengan perintah : CD /

4. Masuk ke direktori grub, dengan perintah : CD boot/grub

5. Buka file menu.lst dengan perintah : pico menu.lst *) optional ->untuk edit bisa menggunakan editor lain.

6. Edit sesuai dengan keinginan, contoh :

- untuk menyetting default starting-up : bisa diubah nilai default sesuai dengan urutannya (urutan paling awal dimulai dari 0)

- untuk menyetting waktu starting-up : bisa diubah nilai time out -nya

- untuk menyetting tampilan menu bisa mengubah title sesuai dengan yang diinginkan.

7. Simpan perubahannya.

8. Restart komputer untuk melihat hasilnya.

Semoga bermanfaat.

Selamat mencoba.

Add comment Juli 26, 2007


Halaman

Kategori

Arsip

 

November 2009
S S R K J S M
« Jan    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Komentar Terakhir

isfiya di Hasil Survey
nyurian di Hasil Survey
nyurian di Tentang Saya
nyurian di Tentang Saya
nyurian di Hasil Survey

Blog Stats