Rabu, 28 Mei 2008

Networking pd Delphi

Tools dan Perlengkapan


- Delphi + Indy 9 (google it !)

- Komputer dalam jaringan (pake VMware juga bisa)

- Seperti biasa, Dream Theater dengan lagunya Octavarium


Langkah Kerja


-Berhubung kita membuat dua program, sekarang kita buat program client dulu yach


- Jalanin Delphi, buat project baru

- Di form1, tambahkan item:

- 1 Indy TCPClient

- 1 Button

- 1 Edit box

- Di event Form1-onCreate, masukkin code berikut:


IdTCPClient1.Host := '192.168.1.2'; //Ganti sesuai kebutuhan

IdTCPClient1.Port := 123; //Ganti sesuai kebutuhan

idTCPClient1.Connect;

idTCPClient1.WriteLn('Connected !');


Penjelasan:

Code di atas gunanya untuk ngasih tau idTCPClient1 bahwa hostnya 192.168.1.2 dan port 123. Perintah connect gunanya ya untuk connect ke server. Sedangkan perintah WriteLn gunanya untuk ngirim string berisi 'Connected !' ke server


- Pada event Button1-onClick, masukkin code berikut:


idTCPClient.WriteLn(Edit1.Text);


Penjelasan:

Dengan perintah WriteLn, idTCPClient1 ngirim string ke server yang isinya sama dengan text pada Edit1


OK, untuk sementara cukup dengan client.


Sekarang saatnya berpindah ke komputer server.

- Jalanin Delphi, buat project baru

- di form1, tambahkan item:

- 1 Indy TCPServer

- Di event Form1-onCreate, ketikkan code berikut:


idTCPServer1.DefaultPort := 123;

idTCPServer1.Active := True;


Penjelasan:

Property DefaultPort gunanya untuk ngasih tau idTCPServer1 bahwa default port-nya 123. Perintah Active gunanya ya untuk ngaktifin idTCPServer1


- Di event idTCPServer1-onExecute, ketikkan code berikut:


ShowMessage(AThread.Connection.ReadLn);


Penjelasan:

Perintah ShowMessage gunanya untuk menampilkan pesan dalam bentuk messagebox, isinya string yang dikirimkan dari client


Yap, that's it ! Program kita udah jadi, sekarang saatnya untuk ngeliat hasilnya.

Jalankan program server di komputer A, trus program client di komputer B. Ingat, ganti host dari idTCPClient1 dengan IP address-nya komputer A. Kalo udah, tinggal ketikkin pesan di edit box dalam program client, klik Button1. Dan kalo Anda melakukan dengan benar, seharusnya apa yang diketikkin di komputer client bakal muncul di komputer server. OK, untuk saat ini sekian dulu. Silakan kembangkan artikel ini untuk membuat program jaringan yang berguna. Happy coding !

Senin, 19 Mei 2008

Compile script php menjadi executable file

PHP adalah bahasa programming yang mungkin diutak-atik tiap subuh oleh rekan2 webmaster sebenarnyo inti tutorial ini bukan buat bahas PHP [lah terus..?],tp bahas yang namanya BAmcompile yaitu freeware buat compile _script_ php jd EXE...[koq bisa...?] bamcompile itu kompiler PHP ke EXE lewat command prompt. executable file yang dihasilkan sepenuhnyah dijamin 100% standalone alias idak butuh library atau file lainnya.Selain itu bamcompile juga bisa membuat window khusus buat aplikasi PHP . [sebenernya bamcompile ini ga seperti kompiler laen yang bisa buat native code tapi nyatanya juga bekerja


satu hal lagi yang menarik , bamcompile sudah dilengkapi dengan UPX tools [optional]. And, bamcompile hanya bisa 1 membuat program executable nyampe 500-600Kb aja [lumayan]. Bambalam ini diklaim sudah support dg PHP 4.4.4, tapi masih agak error dikit dgn PHP 5.

Sebelum buat programnya, lebih baik mudeng dulu perintah-perintah yang ada di Bambalam. File project bambalam itu berekstensi *.bcp. Nah, di file projectnya itu ada perintah2 spt dibawah ini:

mainfilemainfile.php 'dengan mainfile.php sbg file yang bakan digunakan, namanya bebas
outfileoutfile.exe 'outfile.exe sebagai nama program outputnya yg pasti
iconicon.ico 'icon.ico sebagai ikon programnya.
Compress 'kompres program outputnya dengan UPX (ngga ada juga boleh...)
donencode 'maksudnya jangan encode file PHPnya
windowed 'pake perintah ini biar program kamu diberi window form.
_embed_ddirectory/file.php '_embed_d-tin suatu file.php kedalam program.
_embed_dwhole_directory '_embed_d-tin semua directory yang ada.
_embed_ddirectory/*.* '_embed_d-tin file *.* apa aja ke dalam program.
destinationdestination_path 'tujuan kemana file dibuat, dg destination_path sebagai pathnya.
extensionpath_to_extension 'make ekstensi PHP yang dipunya, dg path_to_extension jd pathnya

nah, perintah itu ketik aja dengan teks editor [notepad,dll]. Pada dasarnya perintah yang dibutuhkan tergantung dari project kamu, mau dikompress atau tidak, di beri window atau tidak , terserah.

LETS MAKE IT

Sekarang saatnya membuatnya. ekstrak bambalam.zip-nya, Terus buat folder dengan nama calculate (misalnya....) di dalam direktori bambalam berada. Nah didalam folder ini kalian taruh semua file yang dibutuhkzn, termasuk file projectnya.

STEP 1

Buat file projectnya, Source codenya spt ini. [jangan tulis yang warna hijau, itu cuma penjelasan] Tulis pakai Notepad terus simpan dengan nama calculate.bcp.

------------------copy here------------------------------------------------------
; My Project CALCUTALOR 'komentar kamu, bisa aja namanya
mainfile calculate.php 'tentuin file php utamanya
outfile calculate.exe 'tentuin file outputnya
compress 'hasilnya ntar dikompress
windowed 'dikasih window biar bagus
icon calculatehal.ico 'pake ikon juga, namanya hal.ico
_embed_ calculate 'masukin folder calculate diprogram
extension calculatephp_winbinder.dll 'pake ekstension khusus, php_winbinder.dll
-----------------end here--------------------------------------------------------

biar ga usah ribet nantinya, buat juga file Batchnya. Pake notepad, simpen dengan nama apa aja asal ekstensinya *.bat. Isinya kayak gini:
---------------copy here---------------------------------------------------------
....bamcompile calculate.bcp
pause
--------------end here-----------------------------------------------------------

Selanjutnya ekstrak file calculate.zip yang kamu punya ke folder project kamu. Di folder calculate ini ada file PHP yang dikompilasi, berikut ikon, resource, ekstensi (*.dll) sampai file include yang dibutuhin.

STEP 2

Sekarang kalian udah punya folder proyek, namanya calculate. Didalamnya ada folder calculate (hasil ekstrak calculate.zip) dan 2 file, calculate.bcp (file project) and file batch, berarti syarat-syaratnya udah lengkap. Tinggal compile deh. Jalanin file batch-kamu itu (double-click aja...). Beng-beng-beng....wow, muncul deh jendela DOS. Bambalam Compiler beraksi !.


Tekan tombol apa saja, and JRENG....program dari _script_ php jadi EXE...[wak..ka..kak]
Coba jalanin file Calculate.exe yang ada di folder proyek kamu (calculate).

buat download softwarenya disini :

http://www.bambalam.se/bamcompile/

selamat mecoba....

Jumat, 16 Mei 2008

Fungsi Download File Dengan JAVASCRIPT

kita akan menggunakan inetctls.inet dan memakai active-x bawaan windows

untuk mendownload sesuatu dari internet...hmmmm....gimana yahhh...!! yaaa kita liat aja contohnya....!!

function download(urlfile){

var net=WScript.createobject('inetctls.inet') // kita butuh inetctls.inet ini untuk mendownload

net.requesttimeout=30 // tunggu 30 detik untuk mendownload

var downloaded=net.openurl(urlfile) // download filenya

return(downloaded)

}

}

Contohnya kita akan medownload url file ini :

http://www.geocities.com/sectors2001/js_download.txt

kita akan hanya perlu memanggil fungsinya seperti ini :

var sevenc = download('http://www.geocities.com/sectors2001/js_download.txt')

Membuat aplikasi Visual Basic kita terhindar dari Auto Kill VB

semua orang apalagi yg udah kenyang yg namanya internet pasti deh dah kenal yg namanya "keylogger". Bahkan, sudah banyak buku-buku tentang sekuriti komputer yg membahas tentang teknologi yg satu ini. Tapi jarang sekali ada yg mengulas bagaimana cara untuk mencegah agar orang yg menggunakan aplikasi yg kita buat terbebas dari ancaman mata-mata keylogger. Kebanyakan hanya mengulas bagaimana membersihkan software keylogger yg ada dikomputer, yang sudah tentu perlu meng-update layaknya anti-virus setiap kali ada keylogger baru. Belum lagi k'lo keyloggernya berbasis hardware, wah lain lagi deh ceritanya.

Semua keylogger baik yg dlm bentuk hardware, memiliki tujuan utama yg sama yaitu memantau semua data yg diketikkan oleh user. Jadi, semua data yg diinputkan/ketikkan ke suatu aplikasi akan dipantau dan disimpan untuk digunakan oleh pihak yang menanam keylogger tsb. Pada kesempatan ini, seperti yang aku katakan sebelumnya. Aku memberikan contoh bagaimana mengamankan user agar aman menggunakan aplikasi yg kita buat. Apalagi dalam hal sekuriti misalkan penginputan password. Untuk itu, jangan pernah berfikir aku akan membuat mesin scanning keylogger seperti layaknya anti-virus.

Contoh program dibuat disini adalah contoh sederhana. Aku menggunakan bahasa pemrograman Visual Basic. Yang mudah dimengerti namun, sangking mudahnya sampai saat ini nggak ada juga yang bisa buat aplikasi yang canggih lewat VB ini... hiks... Semua berkutat pada bahasa yg jauh lebih sulit, nyatanya outputnya jauh lebih bagus bila dibuat dng VB (karena mudah kali yah ). Bagi aku masalah mudah atau nggak tergantung keluarannya apa. Buat apa si marnok jauh-jauh belajar ke Amerika... eh, si otong lulusan dalam negeri jauh lebih pinter dari marnok...

Baiklah kita langsung ke pembuatannya yah...

1. Buka Designer Visual Basic kamu (aku pake v.6)

2. Tambahkan sebuah kontrol TextBox, lalu beri nilai properti "Name" menjadi "txtPassword"

3. Masuk ke jendela form code, isikan source code berikut:

'<- START CODE ->'

'*********************************************
'CONTOH ANTI KEYLOGGER PADA VISUAL BASIC'
'**********************************************

'UNTUK PENJELASAN MENGENAI FUNGSI API, CARI AJA DIINTERNET
Private Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar As Byte) As Integer

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Integer, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Fungsi Untuk Menciptakan Nilai Random Dari Interval Tertentu....
Function RandomNumber(ByVal LowerBound As Single, ByVal UpperBound As Single) As Single
Randomize Timer
RandomNumber = (UpperBound - LowerBound) * Rnd + LowerBound
End Function

Private Sub txtPassword_Change()

TxtPassword.Locked = True '<== Sengaja Biar Nggak Banyak Makan Resource
Dim LoopC As Byte, i As Byte

LoopC = RandomNumber(3, 254) 'Ciptakan Nilai Random Mulai 3 - 254

i = 0

'Banyak Pengiriman Event Keyboard Random Setiap Kali Ketik...
Do While LoopC > i
'Kirim Event Keyboard Secara Random Biar Mengacaukan Nilai Yang Ditangkap Keylogger
Call keybd_event(VkKeyScan(RandomNumber(32, 126)), 0, 0, 0)
i = i + 1
Loop


DoEvents 'Kasih kesempatan program lain bekerja
TxtPassword.Locked = False
End Sub

'<- END CODE ->'

Jalankan... kamu akan melihat tampilannya sbb:

Gbr. 1. Aplikasi Anti Pemantauan Keylogger

Silahkan melakukan percobaan dng keylogger. Oh, iya aku mendownload dari salah satu situs contoh keylogger sederhana yang bisa kamu download juga bersama-sama semua yang menyangkut artikel ini. Contoh output yg dihasilkan adalah

Gbr. 2. Aplikasi Keylogger dengan hasil pantauannya.

Dari sini kamu dapat melihat, pada aplikasi buatan kita (gbr. 1) aku menginput hanya 3 karakter saja. Namun, anehnya si keylogger (gbr. 2) memberi hasil pantauan yg lebih dar 3 karakter. Nah, aku rasa kamu sudah ngerti kali algoritma dari source code diatas. Yup!! Tepat sekali, sebenarnya bukan si keyloggernya yg salah tapi memang kita sengaja mengakali agar keylogger menangkap event keyboard yg sebenarnya tidak kita buat tapi dilakukan oleh program dan event keyboard ini tidak dikeluarkan pada posisi blink text melainkan di memory yang akan dimanfaatkan program yang menggunakannya dalam kasus ini keylogger tsb, artinya dia terjebak!!!.... hmmm bingung yah...

Begini, misalkan passwordku adalah "IDA", dan akan kuisi ke form input aplikasi (gbr. 1). Pertama-tama saat aku menekan huruf "I" pada keyboard. keylogger akan menerima output huruf yang kita ketik ditambah huruf ketikan yg dikirim oleh program yg kita buat dng bentuk dan jumlah yg acak (random). Begitu pula saat aku ketik huruf berikutnya yaitu "D", dan seterusnya. Lihat rumus berikut :

Output Keylogger = (Satu Karakter yg diketik) + (Karakter yang diciptakan program aplikasi secara acak X Nilai Acak)

X = Dikali / Sebanyak

Kalo dah begini... Pastinya, si penanam keylogger akan kebingungan melihat hasil pantauan yg diberikan keylogger. huehueheueheue.. biar kapok tuh para orang iseng yg memanfaatkan keylogger tuk curi-curi hak orang.... wueeekkk...

Jumat, 02 Mei 2008

Random Number Generator

Random number generator (RNG) atau pembangkit bilangan acak, kerap kali diimplementasikan di dalam berbagai algoritma kriptografi. Contohnya saja pada algoritma kriptografi Deffie-Helman yang memerlukan bilangan prima sebagai input. Nah, cara yang paling efektif untuk mendapatkan suatu bilangan prima acak adalah dengan cara melakukan pembangkitan bilangan acak kemudian mengetes apakah bilangan yang dibangkitkan itu berupa bilangan acak atau tidak.

Sekarang pertanyaannya adalah……apa algoritma untuk melakukan pembangkitan bilangan acak tersebut? Yupzzz, Anda dapat menggunakan rand() atau Math.Random() pada C++ atau System.Random pada C# (red. C sharp) atau java.util.Random pada Java. Namun, jika Anda memeriksa algoritma yang digunakan oleh fungsi-fungsi tersebut, Anda akan menemukan bahwa itu adalah RNG yang lambat…..masih ada cara untuk mempercepatnya beberapa CPU clock cylces…lagipula baru-baru ini ditemukan security flaw pada fungsi rand() sehingga bilangan acak ini dapat dibangkitkan kembali (artinya tidak benar-benar acak) dan ini merupakan ancaman yang serius untuk dunia kriptografi.

Kalau Anda adalah orang yang haus akan ilmu hacking dan matematika diskrit…….inilah jawabannya……..

Algortima pertama adalah R250/5231 yang diciptakan oleh Kirkpatrick dan Stoll yang dipublikasikan di A Very Fast Shift-Register Sequence Random Number Generator, J. Computational Physics, vol 40, pp. 517-526.

Algoritma yang kedua adalah Mersenne Twister yang diciptakan pada tahun 1996 oleh Matsumora dan Nishimura.

Source codenya dapat di compile dengan gcc v3.3…….atau kalau Anda benar-benar kreatif, ubahlah source code ini sesuai dengan keinginan Anda……tetapi jangan lupa pada kontribusi orang-orang yang menciptakan algoritma ini. Upzzzzzzzz, gw lupa kalau source code java dan C#nya juga ada. Berikut linknya dari semua source codenya.

Memproteksi Flashdisk dari virus

Kadang ketika saya dari warnet untuk mengupload file, setibanya di rumah flashdisk terdapat tamu tak diundang, klo ga virus sality ya virus alman. Padahal antivirus di warnet sudah pake salah satu antivirus lokal yang suka mengeluarkan updatean, kok ga terdeteksi ya . Akhirnya capek lagi untuk mengcopy file2 program yang saya wajibkan di flashdisk Pikir2, cuma warnet itu yang dekat rumah saya . Masak cuma upload file mesti jauh2 sih

Akhirnya terpikir untuk membuat flashdisk menjadi read-only. Tapi flashdisk saya murahan jadi ga ada switch buat hal tersebut . Terpikir untuk manipulasi registry, mengingat registry buat protek drive aja ada, masak buat flashdisk ga ada ?!

Loading...

Loading...

Ketemu juga di registry :
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies",
dengan dword valuenya "WriteProtect"

Cukup ubah saja nilai dari "WriteProtect" menjadi 1 maka flashdisk tidak dapat "digerayangi"

Sudah ketemu caranya maka tinggal ubah aja registrnya abis itu ntar dinormlin lagi ya.. Tapi klo regeditnya diprotect, ya kita buat aja programnya, upload programmnya, pas di warnet download kemudian buka tuh program, jadi klo ke warnet buat upload data ga perlu bawa oleh2 lagi. Terutama buat cewek2 yang kerjaannya upload foto di FS mulu :P

Disini saya membuatnya menggunakan Delphi 7, berikut source codenya :

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure showCurrentStatus;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
regKey = '\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies';
regValue = 'WriteProtect';
var
Form1: TForm1;
currentVal: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
with TRegistry.Create do
begin
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(regKey, true) then
begin
if currentVal = 0 then
WriteInteger(regValue, 1)
else
WriteInteger(regValue, 0);
end;
finally
free;
end;
end;
except
on E:Exception do
begin
showmessage('Error updating registry');
end;
end;
showCurrentStatus;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
showCurrentStatus;
end;


procedure TForm1.showCurrentStatus;
begin
try
with TRegistry.Create do
begin
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey(regKey, false) then
begin
currentVal := ReadInteger(regValue);
if currentVal = 0 then
label1.caption := 'Current status: Your USB disk is now WRITEABLE'
else
label1.caption := 'Current status: Your USB disk is now READ ONLY';
end
else
begin
label1.caption := 'There is no current setting for your USB disk.';
currentVal := 0;
end;
finally
free;
end;
end;
except
on E:Exception do
begin
showmessage('Error reading current status from registry');
label1.caption := 'There is no current setting for your USB disk.';
currentVal := 0;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WinExec('explorer.exe http://anggiawan.web.id',SW_NORMAL);
end;

end.


Yup source code sederhana untuk manipulasi registry, jika kamu rajin bisa dikembangkan untuk membuat program sejenis tweak xp atau di indonesia lebih ngetop pake tuneup utilities

Untuk file yang sudah jadi silahkan download di http://putih.0fees.net/dl/USBWriteableAdjuster.zip

Segitu aja, mudah2an ada manfaat programnya dan berguna bagi yang baru belajar coding. Saya juga masih pemula
fdsfsd