128
ANALISA PEREKAMAN DATA CHATTING DALAM YAHOO MESSENGER (YM) DENGAN TEKNIK SNIFFING Skripsi Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika Disusun oleh : Florentina Puri Cahyani 035314055 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2009

Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

ANALISA PEREKAMAN DATA CHATTING DALAM YAHOO

MESSENGER (YM) DENGAN TEKNIK SNIFFING

Skripsi

Ditujukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Informatika

Disusun oleh :

Florentina Puri Cahyani

035314055

TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2009

Page 2: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

ANALYSIS of DATA CHATTING RECORDING IN YAHOO

MESSENGER ( YM) WITH SNIFFING TECHNIQUE

A THESIS

Presented as Partial Fulfillment of the Requirements

to Obtain the Sarjana Teknik Degree

in Department of Informatics Technology

Created by:

Florentina Puri Cahyani

035314055

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2009

Page 3: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM
Page 4: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM
Page 5: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

v

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan

dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, Maret 2009

Penulis

Florentina Puri Cahyani

Page 6: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

vi

Give Thanks to :

Tuhan Yesus Kristus atas kasihNya

Bunda Maria

Terimakasih setiap pagi aku masih bisa belajar menarik napas dan

menghembuskan napas.

Bapak dan Ibuku Agustinus Agus Sudarmojo

Hanya ini yang dapat yeyen berikan sebagai syukur atas

segala kasih dan cinta yang kalian berikan.

Kakakku N,Cies

”Kapan lulus...?? sekarang aku udah lulus mbak”

Adekku Monica di Surga

”Dek.. MbYen lulus..... maaf mbYen telat, tidak bisa memakai Toga dihadapan

Adek. Tapi mbYen yakin DekMon tersenyum di Surga.”

My Soulmate Cornelius ”Robby” L.Prianggono

” Terimakasih atas semuanya.... ”

Tidak hanya hitam dan putih yang kamu hadirkan dalam hidupku.

Almamaterku Teknik Informatika Universitas Sanata Dharma

khususnya angkatan 2003

Page 7: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

vii

Segala sesuatu ada waktunya

Semua yang tercipta merupakan jawaban dari putaran waktu yang telah Tuhan

sediakan buatku

Emosi, ego, luapan tawa, tetesan air mata, impian,… semua lebur menjadi satu

dan menjadi kisah yang penuh arti dalam perjalanan hidupku.

Mungkin terlalu sederhana, tapi ini merupakan sisi hidupku yang ingin kubagi

saat ini.

Semua penuh arti…

Semua yang kulewati sampai hari ini ada hanya karena

CINTA dan KASIH

Yakin segala sesuatu ada waktunya dan tepat pada waktunya, dan akhirnya aku

tersenyum sambil berkata….

“Selamat Pagi Dunia..”

Page 8: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

viii

ABSTRAKSI

Pada Tugas Akhir ini penulis melakukan analisa dalam proses sniffing

pada pemakaian yahoo messenger. Hampir setiap pengguna internet tidak asing

dengan istilah chatting. Dari chatting kita dapat dengan mudah menerima

informasi yang kita butuhkan. Banyak tindak kejahatan yang dapat

dikomunikasikan melalui media ini (chatting) agar informasi dapat diterima

dengan rahasia.

Yahoo Messenger Logging ini berfungsi untuk melakukan log (pencatatan

informasi) selama proses chatting berlangsung. Dalam hal ini proses log hanya

dibatasi pada layanan chatting saja.

Akses internet sangat diperlukan dalam proses sniffing ini. Untuk

membantu proses logging, penulis menggunakan C sebagai bahasa

pemrogramannya dan tcpdump sebagai programnya. Hasil yang diperoleh adalah

perangkat lunak YM log yang dapat merekam beberapa aktivitas ( dalam hal ini

pengiriman dan penerimaan pesan) lewat chatting.

Page 9: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

ix

ABSTRACT

At this project writer tries to do analysis in process of sniffing at usage of

yahoo messenger. Almost every internet user is not foreign to the term chat. Of

chat, we can easily receive the information we need. Many crime that can be

communicated through this media (chat) that information can be received with a

secret.

Yahoo Messenger Logging to perform this function log (recording

information) during a chat in progress. In this case the log is only limited to just

chat service

Internet access is required in this process sniffing. To help the process of

logging, as the author using C language and pemrogramannya as tcpdump

program. Results obtained YM is a software log that can record a few events (in

this case the sending and receiving of messages), via chat.

Page 10: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

x

Page 11: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xi

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan

berkat dan hikmatNya sehingga penulis dapat menyelesaikan tugas akhir ini.

Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah

memberikan bentuan dan perhatian dengan caranya masing-masing sehingga

tugas akhir ini dapat diselesaikan. Oleh karena itu saya mengucapkan terima kasih

diantaranya kepada :

1. Bapak JB Budi Darmawan, S.T.,M.Sc. selaku dosen pembimbing I tugas

akhir yang telah banyak memberikan bimbingan dalam penyusunan tugas

akhir ini.

2. Bapak H.Agung Hernawan, S.T. selaku dosen pembimbing II tugas akhir

yang telah banyak memberikan bimbingan dalam penyusunan tugas akhir

ini.

3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T dan PH. Prima

Rosa,S.Si.,M.Sc selaku panitia penguji yang telah memberikan banyak

kritik dan saran sempurnanya tugas akhir ini.

4. Ibu Ridowati Gunawan, S.Kom., M.T., selaku dosen pembimbing

akademik angkatan 2003.

5. Bapak Emanuel Belle Bau, SPd. dan Yustinus Nugroho sebagai laboran

yang telah mendukung dalam mempersiapkan ujian pendadaran.

Page 12: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xii

6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang

telah memberikan bekal ilmu, arahan dan pengalaman selama penulis

menempuh studi.

7. Seluruh staff Sekretariat Fakultas Sains dan Teknologi yang banyak

membantu penulis dalam urusan administrasi akademik terutama

menjelang ujian tugas akhir dan yudisium.

8. Orangtuaku tersayang A.Agus Sudarmojo dan kakak adekku yang telah

memberikan cintanya, doa, semangat, perhatiannya sehingga penulis dapat

menyelesaikan tugas akhir ini.

9. Semua teman-teman seperjuangan di Jurusan Teknik Informatika angkatan

2003.

10. Semua pihak yang telah membantu penulisan baik secara langsung

maupun tidak langsung, yang tidak dapat penulis sebutkan satu persatu.

Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari

sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir

ini sangat saya harapkan. Akhir kata semoga tugas akhir ini bermanfaat bagi

semua pihak. Terima kasih.

Yogyakarta, Maret 2009

Penulis

Page 13: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xiii

DAFTAR ISI

Halaman

Halaman Judul …………………………………………………………

Halaman Persetujuan …………………………………………………... iii

Halaman Pengesahan …………………………………………………... iv

Halaman Pernyataan Keaslian Karya ………………………………….. v

Halaman Persembahan …………………………………………………. vi

Halaman Motto ………………………………………………………… vii

Abstraksi ……………………………………………………………….. viii

Abstract ………………………………………………………………… ix

Halaman Pernyataan Persetujuan Publikasi …………………………… x

Kata Pengantar ……………………………………………………........ xi

Daftar Isi ………………………………………………………………. xiii

Daftar Gambar ………………………………………………………… xv

Daftar Tabel …………………………………………………………… xvii

Daftar Listing ………………………………………………………….. xviii

I. PENDAHULUAN 1.1. Latar Belakang Masalah………………………………………. 1 1.2. Rumusan Masalah…………………………………………….. 2 1.3. Batasan Masalah ……………………………………………… 2 1.4. Tujuan Penelitian ……………………………………………... 3 1.5. Metodologi Penelitian ………………………………………… 4 1.6. Sistematika Penulisan ………………………………………… 5

II. LANDASAN TEORI 2.1. Sejarah Internet ……………………………………………….. 7 2.2. Konsep dasar jaringan computer ……………………………… 13 2.3. Konsep dasar TCP/ IP ………………………………………… 14 2.3.1 TCP(Transmission Control Protokol) …………………………. 15 2.3.2 IP (Internet Protokol) ………………………………………….. 15 2.4. Layer TCP/IP ………………………………………………….. 16 2.5. TCP Port ………………………………………………………. 18 2.6. Protokol Yahoo Messenger (YM) …………………………….. 19 2.7. Struktur Paket Yahoo …………………………………………. 20 2.8. Lipcap …………………………………………………………. 44 2.9. Sniffing ………………………………………………………… 46

Page 14: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xiv

2.10. Shell ……………………………………………………………. 47 2.10.1 Macam-macam Shell ………………………………………….. 48 2.11. Bahasa Pemrograman C ……………………………………….. 49 2.11.1 Struktur program Bahasa C ……………………………………. 50 2.11.2 Proses pembuatan Bahasa C …………………………………… 52 2.11.3 Bahasa Pemrograman C dalam Linux/Unix …………………… 53 III. PERANCANGAN SISTEM 3.1 Analisa Sistem………………………………………………….. 57 3.2 Perancangan Sistem ……………………………………………. 57 3.3 Konfigurasi Jaringan …………………………………………… 58 3.4 Perancangan Perangkat Lunak …………………………………. 59 3.4.1 Sistem Utama …………………………………………………… 59 3.4.2 Proses pada Sistem Utama………………………………………. 62 3.4.3 Flowcart Proses yang Berjalan pada Sistem Utama …….……... 64 3.5 Perancangan Perangkat Keras …………………………………... 78 IV. IMPLEMENTASI SISTEM 4.1 Lingkungan Implementasi ………………………………………. 79 4.1.1 Spesifikasi Perangkat Lunak……………………………………. 79 4.1.2 Spesifikasi Perangkat Keras …………………………………….. 80 4.2 Karakteristik Pengguna …………………………………………. 80 4.3 Implementasi Program Sniffing ………………………………… 81 4.3.1 Proses Menampilkan Menu Utama di Layar …………………… 81 4.3.2 Pengecekan device yang tersedia ……………………………….. 85 4.3.3 Proses pembacaan penginputan data pada program utama ……... 86 4.3.4 Proses Pengcapturan data ………………………………………. 89 4.3.5 Menampilkan data ke layar ataupun dalam bentuk file ………… 91 4.4 Implementasi Jaringan ………………………………………….. 94 4.5 Proses kompilasi jaringan ……………………………………….. 94 4.6 Penggunaan Program sniffing …………………………………… 98 V. ANALISA HASIL 5.1 Hasil uji coba program …………………………………………… 99 5.2 Kelebihan dan Kekurangan Program …………………………….. 104 5.2.1 Kelebihan ………………………………………..………………. 104 5.2.2 Kelemahan ……………………………….……………………… 105 5.3 Analisis Bahasa Pemrograman …………………………………. 106 VI. KESIMPULAN dan SARAN 6.1 Kesimpulan ……………………………………………………… 107 6.2 Saran …………………………………………………………….. 108 Daftar Pustaka …………………………………………………………..

Page 15: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xv

DAFTAR GAMBAR

Gambar 2.1 Layer TCP/ IP …………………………………………… 16

Gambar 2.2 Paket Yahoo Messenger ………………………………… 20

Gambar 2.3 Generic Header Yahoo Messenger ………………………. 20

Gambar 2.4 Data field Struktur Yahoo ………………………………. 21

Gambar 2.5 Yahoo Paket Reference …………………………………. 21

Gambar 2.6 Sequence Sign-In ……………………………………….. 22

Gambar 2.7 Yahoo! Verifikasi ke Server ……………………………. 23

Gambar 2.8 Yahoo! Verifikasi dari Server ………………………….. 23

Gambar 2.9 Yahoo! Otorisasi ke Server …………………………….. 23

Gambar 2.10 Yahoo! Otorisasi dari Server …………………………….. 24

Gambar 2.11 Yahoo! Respon otorisasi ke Server ……………………… 24

Gambar 2.12 Yahoo! Buddy List Dari Server …………………………. 26

Gambar 2.13 IM Terkirim ……………………………………………… 28

Gambar 2.14 IM Diterima ……………………………………………... 28

Gambar 2.15 Transfer File P2P Permintaan …………………………… 29

Gambar 2.16 Permintaan Transfer File ……………………………….. 30

Gambar 2.17 Konfigurasi Jaringan Sniffing…….……………………… 47

Gambar 2.18 Struktur Dasar Program C ………………………………. 51

Gambar 2.19 Proses Pembuatan Program C …………………………… 52

Gambar 3.1 Konfigurasi Jaringan …………………………………….. 58

Gambar 3.4 Flowcart Sistem Utama ………………………………….. 61

Gambar 3.5 Flowcart Proses Main.c ………………………………….. 64

Page 16: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xvi

Gambar 3.6 Flowcart Print Usage ……………………………………... 65

Gambar 3.7 Flowcart Switch ………………………………………….. 67

Gambar 3.8 Flowcart Create Flow State ……………………………… 68

Gambar 3.9 Flowcart Open File ………………………………………. 69

Gambar 3.10 Flowcart Close File ………………………………………. 70

Gambar 3.11 Flowcart Proses TCP …………………………………….. 71

Gambar 3.12 Flowcart Proses IP ……………………………………….. 72

Gambar 3.13 Flowcart Store Paket …………………………………….. 73

Gambar 3.14 Flowcart Print Paket ……………………………………... 74

Gambar 3.15 Flowcart DLT_ETHERNET ……………………………... 75

Gambar 3.16 Flowcart DLT_PPP ………………………………………. 76

Gambar 3.16 Flowcart DLT_NULL ……………………………………. 77

Gambar 4.1 Implementasi Konfigurasi Jaringan ……………………… 94

Gambar 4.2 Sebelum Dilakukan Konfigurasi …………………………. 96

Gambar 4.3 Setelah Dilakukan Konfigurasi …………………………… 97

Gambar 5.1 Tampilan Awal ………….………………………………. 99

Gambar 5.2 Output Yang Hanya Ditampilkan di Konsol……………. 100

Gambar 5.3 Sebelum Dieksekusi ……………………………………. 101

Gambar 5.4 Setelah dieksekusi ……………………………………… 102

Gambar 5.5 Isi Hasil Simpan File dilihat Menggunakan MC ……….. 103

Gambar 5.6 Traffick pada Interface …………………………………. 104

Page 17: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xvii

DAFTAR TABEL

Table 2.1 Contoh Port…………………............................................. 19

Table 2.2 Kata Kunci Bahasa C ……………………………………. 50

Page 18: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

xviii

DAFTAR LISTING

Listing 4.1 Intip ……………………………………………………… 82

Listing 4.2 Fungsi Case ……………………………………………… 83

Listing 4.3 Perintah Eksekusi Snifit …………………………………. 83

Listing 4.4 Pengecekan Device ……………………………………… 86

Listing 4.5 Penginputan Data ………………………………………... 88

Listing 4.6 Konversi Karakter Titik (.) ………………………………. 89

Listing 4.7 Menampilkan Help ………………………………………. 89

Listing 4.8 Start Listening Device …………………………………… 90

Listing 4.9 Proses IP dan TCP ………………………………………. 91

Listing 4.10 Struktur Flow ……………………………………………. 92

Listing 4.11 Print Paket ……………………………………………….. 93

Listing 4.12 Store Paket ………………………………………………. 93

Page 19: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

1

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Saat ini kemajuan tegnologi sudah berkembang dengan pesat, khususnya

pada perkembangan dunia informasi. Diantaranya adalah dalam bidang

komputerisasi dan informasi. Salah satu cara yang mudah dilakukan untuk

mendapat informasi adalah melalui media internet. Hampir setiap pengguna

internet tidak asing dengan istilah chatting. Latar belakang di buatnya program ini

karena penulis berfikir bagaimana melihat suatu traffic data yang berada dalam

suatu jaringan komputer, agar data yang lewat tersebut dapat

dibaca/diterjemahkan dan bila memungkinkan dapat terekam, sehingga bila ada

suatu traffic data yang dianggap merugikan pihak lain (mis : carding, flooding dll)

dapat di ketahui. (sesuai ketentuan yang tertuang dalam peraturan pemerintah PP

no 52 tahun 2000 ps. 16 tentang penyelenggaraan telekomunikasi).

Program ini pada prinsipnya sama dengan program carnivore yang berubah nama

menjadi DCS1000, yaitu program sniffing yang di pergunakan oleh FBI (Federal

Bereau of Investigation) , tcpdump, snort maupun program sniffing yang lainnya.

Program yang penulis buat menggunakan bahasa pemrograman yang telah

familiar dengan linux, yaitu bahasa C.

Pada saat program ini di jalankan, program ini akan melihat dan

menganalisa semua paket data (berbasis TCP/IP) yang lewat dalam suatu jaringan

komputer(internet) dan pada saat paket data yang diinginkan terdeteksi, program

Page 20: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

2

ini akan merekam setiap data tersebut yang kemudian akan di tampilkan dalam

layar ataupun dalam bentuk file log. Program ini bekerja pada layer 3 (network)

dan 4(transport) pada OSI.

Dengan program yang di buat ini, diharapkan segala aktifitas yang

dilakukan user atau pengguna internet dalam suatu jaringan computer dapat

diketahui dan terekam, sehingga dapat dipergunakan sebagai salah satu perangkat

lunak Bantu (tool’s software) traffic analisis atau security system.

1.2. Rumusan Masalah

Dengan melihat permasalahan yang ada maka dalam tugas akhir ini

penulis dapat merumuskan masalah “Bagaimana cara meng-capture file atau data

trafic yang melalui jaringan komputer dan merekamnya terutama data chatting

dalam yahoo messenger (YM) dengan teknik sniffing?”

1.3. Batasan Masalah

Batasan masalah yang ada dalam penelitian ini :

1. Program ini dibuat menggunakan GCC (bahasa C di linux) dengan

menggunakan header standart GCC dengan tambahan beberapa

header yang disesuaikan kebutuhan sebagai penunjang program ini.

2. Program ini berjalan dengan mengguanaka library pcap pada linux

(libpcap). Penulis tidak mencoba untuk menggunakan pada

windows dengan pertimbangan untuk saat ini OS linux banyak

dipergunakan sebagai server dan router.

Page 21: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

3

3. Program ini bila berjalan secara default, akan merekam semua

bentuk trafic yang melalui komputer yang diinstall program ini.

Tetapi penulis menitik beratkan pada sniffing/perekaman data

dengan metode filtering untuk menampilkan hanya data chattingan

(Yahoo Messenger) saja.

4. Dalam struktur jaringan penulis mencoba meletakkan di beberapa

posisi struktur jaringan. Yang penulis coba sniffing diletakkan pada

posisi workstation berbasis linux dan posisi router berbasis linux.

Tetapi untuk penulisan kali ini penulis menitik beratkan pada

komputer server berbasis linux

5. Operating System yang digunakan penulis adalah Slackware 12.0

1.4. Tujuan Penelitian

Tujuan dari dibuatnya program ini adalah

1. Membuat sebuah sistem aplikasi yang dapat memonitor dan merekam data

chatting (dalam hal ini pengiriman dan penerimaan pesan) dimaksudkan

agar dapat menghindari tindak kejahatan yang mungkin dapat dilakukan

melalui media ini. Data yang direkam dapat digunakan sebagai media

penelusuran jika tindak kejahatan terjadi.

2. Diharapkan segala aktivitas yang dilakukan user atau pengguna internet

dalam suatu jaringan komputer dapat diketahui dan terekam, sehingga

dapat dipergunakan sebagai salah satu perangkat lunak bantu (tool

software) trafic analisis atau security sistem.

Page 22: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

4

1.5. Metodologi Penelitian

Dalam penyusunan Tugas Akhir ini, penulis menyelesaikan

masalah dengan langkah-langkah sebagai berikut :

1. Studi pustaka dan studi literatur, dengan cara mencari sumber, buku

yang berhubungan dengan objek yang diteliti. Meliputi :

a. Studi pustaka tentang bahasa pemrograman C pada linux (GCC),

penulis menggunakan GCC -4.1.2 dan Sistem Operasi Linux

berbasis Slackware.

b. Studi pustaka dan studi kasus pada jaringan komputer.

c. Studi pustaka port standart International (IANA) untuk melihat

port default yang digunakanoleh services Yahoo Messenger.

d. Studi pustaka mengenai services yang dijalankan dalam Yahoo

Messenger.

e. Studi literatur tentang teknik Sniffing.

f. Studi literatur tentang aktivitas chatting dalam Yahoo Messenger.

2. Pembuatan perangkat lunak, langkah-langkah yang akan dilakukan

adalah :

a. Mempelajari metode Sniffing dalam jaringan komputer,

menterjemahkan data paket yang ter-capture dalam program

sniffing yang telah ada, Bahasa Pemrograman C, dan Sistem

Operasi yang bekerja yaitu Linux Slackware.

b. Menerapkan permasalahan yang ada dalam bahasa pemrograman.

Page 23: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

5

c. Perancangan sistem secara umum, perangkat keras dan perangkat

lunak yang akan digunakan, dan pembuatan program sesuai dengan

perancangan sistem.

3. Uji coba

Pengujian dalam meng-capture data chatting pada port 5000-5050

1.6. Sistematika Penulisan

Sistematika penulisan Tugas Akhir ini akan dibagi menjadi enam

bab dengan garis besar sebagai berikut:

BAB I. PENDAHULUAN

Bab ini berisi latar belakang masalah, batasan masalah, tujuan

penelitian, rumusan masalah, metodologi penelitian yang dipergunakan,

serta sistematika penulisan Tugas Akhir.

BAB II. LANDASAN TEORI

Bab ini membahas tentang uraian landasan teori yang

dipergunakan penulis dalam merancang sistem yang akan dibuat, meliputi

bahasa pemrograman dan teknik sniffing yang akan digunakan dalam

merekam data.

BAB III. PERANCANGAN SISTEM

Bab ini berisi pembahasan mengenai perancangan sistem yang

akan dibangun.

Page 24: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

6

BAB IV. IMPLEMENTASI

Bab ini berisi penjelasan mengenai penerapan rancangan yang

telah dibuat kedalam suatu program dengan desain yang telah ditetapkan

pada tahap perancangan.

BAB V. ANALISIS HASIL

Bab ini penjelasan hasil pengujian dan berisi jawaban atas

permasalahan yang dinyatakan pada bagian.

BAB VI. KESIMPULAN dan SARAN

Bab ini berisi kesimpulan yang dapat diambil pembahasan secara

keseluruhan dan saran-saran untuk pengembangan selanjutnya.

Page 25: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

7

BAB II

LANDASAN TEORI

2.1 Sejarah internet

Sejarah internet bermula ketika beroperasinya jaringan ARPANET pada

tahun 1969. Jaringan ARPANET pertama tersebut hanya menghubungkan empat

host komputer dan besar bandwidth-nya hanya 50 kbps.

Untuk lebih jelasnya, berikut ini diuraikan timeline perkembangan Internet

sejak awal berdirinya sampai dekade 90-an :

1967

• Lawrence G. Robert dari Massachusetts Institute of Technology (MIT)

mempresentasikan rencana pembangunan ARPANET pada sebuah

pertemuan di Ann Arbor, Michigan. Ide Roberts adalah untuk

menghubungkan beberapa komputer melalui jaringan telepon(dial up).

• Pada pertemuan Association for Computing Machine Symposium on

Operating Priciple di Galtingburg, Tennessee, Lawrence G. Roberts

mempresentasikan sebuah paper berjudul “Multiple Computer Networks

and Intercomputer Communication” yang menghasilkan standar untuk

desain jaringan ARPANET.

1968

• Proposal ARPANET dibuat untuk memulai proyek tersebut.

• University of California at Los Angeles (UCLA) mendapat kontrak

Network Measurement Center pada bulan oktober tahun lalu.

Page 26: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

8

• Bolt Beranek and Newman, Inc. (BNN) mendapat kontrak senilai 1 juta

dolar untuk membangun Interface Message Processors (IMPs).

1969

• Jaringan komputer ARPANET pertama selesai dibangun. Komputer (host)

yang terhubung hanya empat buah. Bandwidth-nya hanya sebesar 50 kbps

yang disediakan oleh AT&T. Host yang terhubung adalah host 1 di

UCLA, host 2 pada Stanford Research Institute (SRI), host 3 ada

University of California Santa Barbara (UCSB), dan host 4 pada

University of Utah. Charley Kline dari UCLA kemudian mengirimkan

paket data pertama, hasilnya komputer crash, tetapi kemudian dapat

diperbaiki oleh para programer dari BNN.

1970

• Host ARPANET mulai menggunakan NCP (Network Control Protocol),

sebagai protokol komunikasi antar-host.

1971

• Jaringan ARPANET berkembang menjadi 15 node dan 23 host, yang

menghubungkan komputer-komputer di University of California at Santa

Barbara and Los Angeles, Stanfoed Research Institute, University of Utah,

Bolt Beranek and Newman, Inc. (BNN), MIT, RAND, System Development

Corporation, Harvard, Lincoln Lab, UIU(C), CWRU, Carnegie-Mellon

University, NASA/Ames.

• Ray Tomlinson dari BNN berhasil menciptakan program email yang dapat

mengirimkan pesan antar komputer pada jaringan ARPANET tersebut.

Page 27: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

9

1972

• Ray Tomlinson menyempurnakan program email yang dibuatnya dan

kemudian email menjadi sangat populer.

• Louis Pouzin, seorang ilmuwan komputer asal Perancis, membangun

“CYCLADES” sebuah jaringan komputer mirip ARPANET.

1973

• ARPA diubah menjadi DARPA.

• ARPANET melakukan koneksi internasional pertama dengan jaringan

kompuetr di University College of London (Inggris) dan Royal

Establishment di Norwegia (NORSAR).

1974

• Vinton Cerf dan Bob Kahn mempublikasikan “A Protocol for Packet

Network Intercommunication”, yang merupakan cikal bakal lahirnya

protokol Transmission Control Protocol (TCP).

1975

• Steve Walker, seorang manager ARPA, membuat sebuah mailing list untuk

digunakan di kalangan anggota ARPA.

• Link Satelit ke Hawaii dan Inggris berhasil dibangun, dan percobaan

pengiriman paket data dari Stanford, BNN, dan UCL berhasil diterima di

Hawaii dan Inggris.

Page 28: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

10

1979

• UNESET (newsgroup) diciptakan oleh Tom Truscott dan Jim Ellis.

Pengguna dari seluruh dunia bergabung pada grup diskusi ini untuk

mendiskusikan jaringan komputer, politik, topik diskusi lainnya.

1980

• Jaringan ARPANET berkembang meliputi 213 host, dengan rata-rata

pertambahan 1 host setiap 20 hari.

1982

• DCA (Defense Communication Agency) dan DARPA berhasil

menciptakan Transmission Control Protocol (TCP) dan Internet Protocol

(IP) sebagai protokol utama pada jaringan ARPANET. Protokol ini

kemudian dikenal dengan nama TCP/IP.

• Istilah “Internet” mulai dikenal. Istilah internet digunakan sebagai sebutan

untuk jaringan komputer yang menggunakan protokol TCP/IP sebagai

protokol utamanya.

1984

• Domain Name System (DNS) diperkenalkan sebagai cara untuk

mengidentifikasikan badan atau institusi yang mengeola suatu host. Enam

domain utama dikeluarkan, yaitu edu (education), gov (government), mil

(military), com (commercial), org (organization), dan net (network

resources).

Page 29: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

11

1985

• Information Sciences Institute (ISI) di University of Southern California,

diberi kepercayaan mengelola root DNS (DNS utama).

• Tanggal 15 Maret 1985, symbolics.com tercatat sebagai domain pertama

yang didaftarkan ke root DNS. Domain-domain lainnya yang didaftarkan

antara lain cmu.edu, purdue.edu, rice.edu, ucla.edu, css.gov, mitre.org.

1986

• NSFNET dibangun sebagai backbone Internet utama dengan bandwidth 56

Kbps. Sejak saat itu, infrastruktur jaringan NSFNET menjadi tulang

punggung jaringan komputer di Amerika Serikat.

1987

• NSF bekerja sama dengan Merit Network Inc mengelola jaringan

ARPANET, dengan dukungan dari IBM dan MCI.

• Jumlah host internet melebihi 10.000.

1988

• Roberts Morris, berhasil menciptakan sebuah “Internet Worm” yaitu

sebuah program sejenis virus yang dapat memperbanyak diri sendiri di

Internet, akibatnya beban di Internet bertambah dengan sangat cepat dan

berhasil memacetkan sekitar 6000 host di seluruh dunia.

• Internet Relay Chat (IRC) diciptakan oleh Jorkko Oikarinen.

1989

• Jumlah host di Internet melebihi 100.000.

Page 30: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

12

1991

• Wide Area Information Servers (WAIS) ditemukan oleh Brewster Kahle.

WAIS kemudian dioperasikan oleh Thinking Machines Corporation.

• Gopher diperkenalkan oleh Paul Lindner dan Mark P. McCahill dari

University of Minnesota. Dengan Gopher, pengguna Internet dapat

melakukan pencarian di Internet, hanya saja format yang didukung hanya

format text.

• Worl Wide Web (WWW) dilincurkan oleh CERN di Jenewa, Swiss.

Seorang peneliti Inggris bernama Tim Berner-Lee berhasil menciptakan

Hypertext Markup Language (HTML), yang menggunakan spesifik URL

(Uniform Resource Locators) sebagai alamat web.

1993

• InterNIC didirikan oleh NSF. InterNIC menyediakan beberapa layanan

Internet seperti pendaftaran domain (dikelola oleh Network Solutions

Inc.), direktori, dan service database (dikelola oleh AT&T)

• Mosaic, sebuah Intenet Browser yang dapat menghasilkan tampilan grafis

kepada penggunanaya diluncurkan pada tahun itu. Akibatnya traffic

WWW di Internet meningkat sampai 3416 kali lipat pada tahun ini.

1994

• NASA mendirikan NASA Reseach ans Education Network (NREN),

sebuah backbone Internet eksperimental yang menghubungkan lima Pusat

Riset NASA.

Page 31: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

13

• MBONE audio multicast digunakan oleh kelompok musik Rolling Stones

pada tour musiknya.

• Yahoo!, sebuah search engine yang merupakan singkatan dari “Yet

Another Hierarchical Officious Oracle” didirikan oleh dua mahasiswa

Standford University bernama Jerry dan David Filo.

2.2 Konsep dasar jaringan komputer

Dalam beberapa tahun terakhir ini, tegnologi komputer telah berkembang

dengan pesat. Akibat perkembangan tegnologi yang sangat pesat ini, maka

teknologi satu dengan yang lain menjadi saling terkait. Perbedaan-perbedaan yang

terjadi dalam pengumpulan, pengiriman, penyimpanan dan pengolahan informasi

telah dapat diatasi. Dalam hal ini memungkinkan pengguna dapat memperoleh

informasi secara cepat dan akurat.

Sekarang ini, proses pengolahan data tidak lagi dilakukan secara terpisah,

khususnya setelah terjadi penggabungan antara tegnologi komputer sebagai

pengolah data dengan tegnologi komunikasi. Model komputer tunggal yang

melayani seluruh tugas-tugas komputasi suatu organisasi telah diganti oleh

sekumpulan komputer yang berjumlah banyak dan terpisah tetapi masih saling

berhubungan dalam melaksanakan tugasnya. Sistem ini disebut juga sebagai

Jaringan Komputer (Computer Network).

Jaringan komputer merupakan sekolompok komputer otonom yang saling

berhubungan antara satu dengan lainnya menggunakan protokol komunikasi

melalui media komunikasi sehingga dapat saling berbagi informasi, program-

Page 32: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

14

program, penggunaan bersama perangkat keras. Selain itu jaringan komputer bisa

diartikan sebagai kumpulan sejumlah terminal komunikasi yang berada di

berbagai lokasi yang terdiri dari lebih satu komputer yang saling berhubungan. (

Andri Kristanto, 2003 ).

2.3 Konsep dasar TCP/IP

Protokol-protokol TCP/IP dikembangkan pada awal 1980-an, dan menjadi

protokol-protokol standart untuk ARPAnet pada tahun 1983. protokol-protokol

mengalami peningkatan popularitas di komunitas pemakai ketika TCP/IP

digabungkan menjadi versi 4.2 dari BSD ( Berkeley Standart Distribution) UNIX.

Versi UNIX tersebut digunakan secara luas pada institusi penelitian dan

pendidikan, dan digunakan sebagai dasar dari beberapa penerapan UNIX

komersil, termasuk SunOS dari Sun dan Ultrix dari Digital. Karena BSD UNIX

mendirikan hubungan antara TCP/IP dan sistem operasi UNIX, banyak

implementasi UNIX sekarang yang menggabungkan TCP/IP.

Evolusi serangkaian protokol TCP/IP berlanjut sebagai jawaban atas

evolusi internet. Pada tahun-tahun terakhir, akses ke internet telah berkembang

melampaui komunitas aslinya dan tersedia bagi hampir setiap orang yang

mempunyai komputer. Pertumbuhan yang dramatis ini telah menekankan internet

dan mendorong pembatasan beberapa protokol. Pada internet, tidak ada yang

permanen kecuali perubahan.

TCP/IP adalah serangkaian protokol dimana setiap protokol melakukan

sebagian dari keseluruhan tugas komunikasi jaringan. (Drew Heywood,1996).

Page 33: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

15

TCP/IP dapat diterapkan dengan mudah pada setiap jenis komputer dan interface

jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap

satu komputer atau peralatan jaringan tertentu. Agar TCP/IP dapat berjalan diatas

interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang

berhubungan dengan interface jaringan saja.

2.3.1 TCP (Transmission Control Protocol)

TCP ( Transmission Control Protocol) melakukan transmisi data

per segmen, artinya paket data dipecah dalam jumlah yang sesuai dengan

besaran paket, kemudian satu persatu hingga selesai. Agar pengiriman data

sampai dengan baik, maka pada setiap paket pengiriman, TCP akan

menyertakan nomor seri (sequence number). Komputer mitra yang

menerima paket tersebut harus mengirim balik sebuah sinyal

ACKnowledge dalam satu periode yang ditentukan. Bila pada waktunya

sang mitra belum juga memberikan ACK, maka terjadi “time out” yang

menandakan pengiriman paket gagal dan harus diulang kembali. Model

protokol TCP disebut sebagai connection oriented protocol.

2.3.2 IP (Internet Protokol)

Internet protokol menggunakan IP-address sebgai identitas.

Pengiriman data akan dibungkus dalam paket dengan label berupa IP-

address si pengirim dan IP-address penerima. Apabila IP penerima

melihat pengiriman paket tersebut dengan identitas IP-address yang

sesuai, maka datagram tersebut akan diambil dan disalurkan ke TCP

melalui port, dimana aplikasi menunggunya.

Page 34: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

16

IP address terbagi 2 bagian, yaitu :

1. Network ID (identitas jaringan)

2. Host ID (identitas komputer)

Penulisan IP address terbagi atas 4 angka, yang masing-masing

mempunyai nilai maksimum 255 (maksimum dari 8 bit)

2.4 Layer TCP/IP

Sekumpulan protokol TCP/IP ini dimodelkan dengan empat layer TCP/IP,

sebagaimana terlihat pada gambar 2.1 :

Application Layer

(SMTP, FTP, HTTP, Telnet,

DNS, dan lain-lain)

Transport Layer

(TCP, UDP)

Internet Layer

(IP, ICMP, ARP)

Network Interface Layer

(Ethernet, X.25, SLIP, PPP)

Gambar 2.1. Layer TCP/IP

(Sumber : Person Education Asia Pte. Ltd & Penerbit Andi Yogyakarta, 2001)

Jaringan Fisik

Page 35: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

17

Dalam TCP/IP, terjadi penyampaian data dari protokol yang berada di

suatu layer ke protokol yang berada di layer lain. Semua protokol memperlakukan

semua informasi yang diterimanya dari protokol lain sebagai data. Jika suatu

protokol menerima data dari protokol layer atasnya, ia akan menambahkan

informasi miliknya ke data tersebut (encapsulation). Informasi ini memiliki fungsi

yang sesuai dengan fungsi protokol tersebut. Setelah itu, data ini diteruskan lagi

ke protokol pada layer di bawahnya. Hal yang sebaliknya terjadi jika protokol

tersebut menerima data dari protokol yang berada pada layer di bawahnya. Jika

data ini dianggap valid, protokol akan melepas informasi tambahan tersebut,

kemudian meneruskan data itu ke protokol pada layer di atasnya (decapsulation).

Layer terbawah, Network Interface layer, bertanggung jawab mengirim

dan menerima data ke dan dari media fisik. Media fisiknya dapat berupa kabel,

serat optik, atau gelombang radio. Karena tugas ini, protokol pada layer ini harus

mampu menterjemahkan sinyal listrik menjadi data digital yang dimengerti

komputer, yang berasal dari peralatan lain yang sejenis.

Protokol yang berada pada Internet Layer bertanggung jawab terhadap

proses pengiriman paket ke alamat yang tepat. Pada layer ini ada 3 protokol, yaitu

IP, ARP, dan ICMP. IP (Internet Protocol) berfungsi untuk meyampaikan paket

ke alamat yang tepat. ARP (Address Resolution Protocol) merupakan protokol

yang digunakan untuk menemukan alamat hardware dari host/komputer yang

terletak pada jaringan yang sama. Sedangkan ICMP (Internet Control Message

Protocol) adalah protokol yang digunakan untuk mengirim pesan dan melaporkan

kegagalan pengiriman pesan .

Page 36: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

18

Transpot Layer berisi protokol yang bertanggung jawab untuk

mengadakan komunikasi antara dua host/komputer. Kedua protokol tersebut

adalah TCP (Transmission Control Protocol) dan UDP (User Datagram

Protocol).

Pada layer teratas, Application Layer, terletak semua aplikasi yang

menggunakan protokol TCP/IP ini.

2.5 TCP Port

Port merupakan pintu masuk datagram dan paket data (pintu service). Port

data dibuat mulai dari 0 sampai dengan 65.536. Nomor Port dibagi dalam tiga

bagian jangkauan : Port Umum (Well knows Ports), Port Terdaftar(Registered

Ports), dan Port Pribadi dan/atau Dinamis (Dynamic and/or Private Ports).

Adapun pembagian jangkauan Portnya yang diatur oleh sebiah badan yang disebut

IANA (Internet Assigned Number Authority) adalah sebagai berikut :

1. Port Umum : 0 sampai 1023

2. Port Terdaftar : 1024 sampai 49151

3. Port Pribadi/ Dinamis : 49152 sampai 65525

Pada Port 0 sampai 1024 disediakan untuk layanan standar, seperti FTP,

TELNET, Mail, Web, dan lainya. Port ini lebih dikenal dengan nama well known

port. Dapat dilihat contoh port pada tabel 2.1 :

Page 37: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

19

Tabel 2.1 Contoh Port

2.6 Protocol Yahoo Messenger (YM)

Yahoo Messenger protokol yang merupakan protokol jaringan yang

digunakan oleh Yahoo! Messenger instant messaging client, untuk Yahoo!

Yahoo! Instant messenger mendukung banyak fitur olah pesan hanya diluar,

termasuk off-line pesan, transfer file, chatting, konferensi, voice chat, webcam,

dan avatar.

Tujuan dari protokol YMSG adalah untuk memberikan bahasa dan

rangkaian konvensi untuk perangkat lunak berkomunikasi dengan Yahoo! 'S

Instant Messaging layanan. Pada dasarnya YMSG melakukan peran yang sama

untuk IM sebagai HTTP tidak untuk World Wide Web. Yahoo! 'S menggunakan

protokol mekanik dari standar koneksi internet untuk mencapai keberadaan,

sambungan yang sama yang digunakan untuk mengirim dan menerima data.

Berkomunikasi dengan protokol YMSG antara aplikasi klien dan server, dengan

menggunakan TCP / IP sambungan pada port 5050 secara default. Port lainnya

dapat digunakan jika port ini diblokir. Port Yahoo Messenger adalah 5000-5050.

Page 38: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

20

2.7 Struktur Paket Yahoo

Semua komunikasi Yahoo menggunakan TCP yang dilewatkan di komunikasi IP

dan data dalam Yahoo terletak di field data dari paket TCP yang terlihat pada

gambar 2.2.

Gambar 2.2 Paket Yahoo Messenger

Yahoo biasanya melewatkan persetujuan TCP/IP untuk menggunakan headers

dengan membuat sendiri format header. Sebuah header Yahoo panjangnya 20

bytes dan diidentifikasi oleh 4 bytes pertama yaitu ‘YMSG.’ Header Yahoo juga

menyertakan versi dari YMSG, panjang pesan, tipe servis, status dan session ID.

Gambar 2.3 menunjukan sebuah grafik yang menjelaskan header Yahoo dan data

Yahoo.

Gambar 2.3 Generic header Yahoo Messenger

Page 39: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

21

Porsi data dari sebuah paket yahoo juga mempunyai sebuah struktur. Setelah

session ID data dimulai di form untuk Field ID, pemisah Field, data field, pemisah

field, … , pemisah field. Field ID menjelaskan sebagai sebuah ASCII integer yang

mungkin terdiri dari beberapa karakter. Pemisah field Yahoo adalah urutan

hexadecimal dari C0 80. Gambar 2.4 menampilkan sebuah tipikal stukture field

data yahoo.

Gambar 2.4 Data field struktur yahoo

Keseluruhan dari tulisan ini adalah perpendekan gambaran dari sebuah paket

Yahoo yang akan digunakan seperti di gambarkan di gambar 2.5. Bagian atas dari

gambar tersebut mengandung referensi tipe servis dan bagian kanan atas header

menunjukkan arah dari komunikasi. Sebuah referensi yang cepat dari field ID,

tipe servis, dan status dapat ditemukan di Appendix A

Gambar 2.5 Yahoo paket reference

Page 40: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

22

SIGN-IN

Sebelum program dapat menggunakan Yahoo! Jaringan, klien harus

masuk dengan username dan password. Susunan acara yang digunakan untuk

masuk akan ditampilkan pada gambar 2.6. tidak semua kegiatan yang diperlukan

untuk menjadi tersedia pada Yahoo!jaringan dan langkah-langkah yang harus diisi

oleh denoted “*”

Gambar 2.6 - Sequence Sign-In

Langkah pertama untuk tanda-in adalah untuk mengirim verifikasi paket,

Yahoo_Verify, ke Yahoo! server untuk melihat apakah jaringan jalan yang

tersedia. struktur paket yang akan ditampilkan dalam gambar 2.7 dan gambar 2.8.

Page 41: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

23

Gambar 2.7 - Yahoo! Verifikasi ke Server

Gambar 2.8 - Yahoo! Verifikasi dari server

Setelah diverifikasi komunikasi, sebuah kesepakatan, Yahoo_Auth, paket dikirim.

Paket yang dikirimkan ke server yang berisi permintaan pengguna layanan. Server

merespon dengan sebuah tantangan dan string ID sesi. ID sesi yang diterima dari

server dan akan tinggal dengan masing-masing paket telah berakhir sampai

komunikasi dengan server. The otorisasi tahap ditampilkan pada Gambar 2.9 dan

gambar 2.10.

Gambar 2.9 - Yahoo! Otorisasi ke Server

Page 42: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

24

Gambar 2.10 - Yahoo! Otorisasi dari server

Ketika klien menerima tantangan string, klien akan menambah nilai tantangan ke

string sandi dan sebuah compute MD5 hash. Hash Hasilnya adalah data menjadi

dua bagian, 6 dan 96, dan dikirim ke server. Seiring dengan hash password, sistem

data lainnya seperti versi klien dikirim melalui Authorization Response paket,

Yahoo_AuthResp. AuthResp paket struktur yang ditunjukkan pada Gambar 2.11.

Gambar 2.11 - Yahoo! Respon otorisasi ke Server

Page 43: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

25

Setelah berlaku password hash telah diterima dari klien, pengguna tertentu yang

dianggap masuk dan tidak ada informasi lain yang perlu dari klien. Dalam banyak

kasus, hanya yang masuk sangat tidak bermanfaat, sehingga setelah AuthResp

paket dikirim dari klien, server mengirimkan daftar buddy untuk pengguna

tertentu. Daftar buddy yang terdapat dalam paket Yahoo_List.

Yahoo_List paket yang pertama adalah paket yang dapat berisi beberapa

YMSG header dan mungkin akan dikirim dalam beberapa paket. Struktur daftar

buddy paket tergantung pada jumlah teman-teman dalam daftar, dan jumlah

pengguna diabaikan. Jika beberapa header atau paket digunakan maka status paket

yang akan dikirim ke NotInOffice sampai paket terakhir yang diterima. Yang

paling penting termasuk 87 lapangan untuk daftar buddy dan 88 untuk diabaikan

pengguna. Gambar . 2.12 menunjukkan satu kemungkinan daftar buddy paket

struktur.

Page 44: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

26

Gambar 2.12 - Yahoo! Buddy List dari server

Setelah buddy daftar paket yang diterima dari Yahoo! server, yang lain segera

paket berikut. Ini adalah sebuah paket Yahoo_Ping dan berisi informasi mengenai

siapa yang online pada daftar buddy. Seperti Yahoo_List informasi, informasi

Yahoo_Ping Mei span beberapa paket, header, atau keduanya. Informasi buddy

masing-masing terdapat

Page 45: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

27

dalam struktur yang terdiri dari para pengguna, meninggalkan pesan, dan sistem

informasi lainnya. tambahan header Mei juga akan dikirim menunjukkan

keberadaan belum dibaca email melalui Yahoo! mail servers. mail server.

Pada akhir proses login klien dan server akan mengirimkan beberapa

pesan tidak penting. Contoh ini mungkin berisi kosmetik kulit jenis klien, update

Launchcast Radio, saham, cuaca, dan Yahoo! insider. Yahoo! memperbarui

program juga berjalan secara paralel dengan login untuk memeriksa program

pembaruan.

Pesan instan

IM sederhana adalah layanan yang ditawarkan di Yahoo! dan akan

digunakan sebagai contoh. percakapan ini akan berlangsung antara Yuser1 dan

Yuser2 dan dilihat dari sudut pandang Yuser1. Yuser1 mengirimkan satu paket

seperti yang ditunjukkan pada Gambar 2.13. paket yang berisi pengirim,

penerima, pesan, dan sistem informasi lainnya. Karena kenyataan bahwa paket

adalah proxy melalui Yahoo! servers, sebenarnya Yuser2 melihat paket yang

berbeda dari yang dikirimkan oleh Yuser1. Paket bidang yang reordered dan 5

adalah kolom untuk menampilkan yang berubah pada saat ini adalah pengirim.

Gambar 2.14 menunjukkan paket yang diterima dari Yuser2. Keduanya adalah

paket dari sudut pandangan Yuser1.

Page 46: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

28

Gambar 2.13 - IM Terkirim

Gambar 2.14 - IM Diterima

Peer to peer transfer

Tidak semua paket yang dikirimkan melalui Yahoo! servers. server.

Kadang-kadang yang terbaik adalah melakukan langsung ke rekan rekan

komunikasi antara klien. Setelah sambungan sudah didapatkan, dan instan semua

lalu lintas lainnya perjalanan langsung antara sesama. Ini adalah jenis komunikasi

Page 47: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

29

yang dikenal sebagai peer ke peer (P2P) dan dimulai dengan Yahoo! layanan

disebut Yahoo_P2PFileXfer.

Alasan utama untuk membuat sambungan P2P adalah karena sejumlah

besar data yang harus ditransfer antara klien. J sambungan langsung mengambil

ekstra pengolahan dan beban lalu lintas di jaringan Yahoo! servers. Yang paling

umum aplikasi yang bergantung pada sambungan P2P transfer file, percakapan

suara, webcam, dan IMVIROnMENTS tertentu.

Gambar 2.15 - Transfer File P2P Permintaan

Mentransfer file di Yahoo! Messenger jauh seperti download file melalui HTTP.

Yuser1 mengirimkan permintaan untuk mengirim file ke penerima Yuser2, seperti

terlihat pada Gambar 2.15. Dalam permintaan tersebut, inisiator dari alamat IP

akan dikirim dalam bentuk sebuah alamat http seperti

"http://192.668.1.1/messengerYuser1.filename". Yahoo! messenger mulai dari

Page 48: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

30

web server Yserver.exe untuk masuk dan mendengarkan permintaan dari Yuser2.

Yuser2 Bila menerima permintaan dia memiliki pilihan untuk menerima atau

menolak permintaan seperti yang ditunjukkan pada Gambar 2.16. Yuser2

kemudian melakukan operasi HTTP GET menggunakan http alamat web dari

Yuser1. Berbagi skema ini tidak memberikan suatu tingkat keamanan untuk

Yuser2 karena Yuser2 alamat IP tidak reveled ke Yuser1 kecuali Yuser2

menerima file tersebut.

Gambar 2.16 – Permintaan Transfer File

Langkah pertama yang terlibat dalam aplikasi messenger adalah utusan masuk ke

server dan kemudian mengambil daftar teman di yahoo messenger. Terhubung ke

server yahoo (cs.yahoo.com) pada port 5050. Mari kita melihat pertama masuk ke

yahoo server.

Page 49: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

31

. Kami akan melakukan koneksi ke server yahoo messenger scs.yahoo.com

pada port 5050

Seperti biasa yang paling sulit untuk mengetahui bagian dalam protokol

adalah utusan login enkripsi.

Sekarang mari kita mulai masuk ke yahoo messenger server. Kami

mengirim data berikut ke server pesan untuk memulai proses login

Ini adalah data yang terkirim bila dilihat melalui port monitor

0x0000 00 20 18 8F C8 16 00 50-BA 89 95 6B 08 00 45 00. . . È..Pº‰•k..E. E .. P º ‰ • k.. E.

0x0010 00 4A F7 6A 40 00 80 06-BA 99 C0 A8 01 C1 D8 88. J ÷ j @. €. º ™ À ¨. Aoe

0x0020 AD B7 07 0D 13 BA 7F DC-96 ED E7 DA 49 68 50 18 ... º Ü-íÚçIhP.

0x0030 44 5C F8 02 00 00 59 4D-53 47 00 0B 00 00 00 0E D \ ø YMSG ... ......

0x0040 00 57 00 00 00 00 6D 61-93 13 31 C0 80 73 75 6E. W. ... ma ",1 À € Minggu

0x0050 64 61 6D 61 6D 61 C0 80 - damamaÀ €

Marilah kita melihat apa yang tepat sedang dikirim

• YMSG - adalah judul standar untuk yahoo messenger semua perintah /

pesan

• Ini diikuti oleh 2 bytes data - 00 0B. -ini menunjukkan nomor versi dari

protokol

• Ini diikuti oleh 2 bytes data - 00 00

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total

lengthof string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

Page 50: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

32

• Hal ini diikuti oleh charecter "W" ini menandakan bahwa perintah yang

dikirimkan adalah sebuah tantangan perintah

• Berikut adalah 4 byte adalah -00 00 00 00

• 4 byte berikutnya adalah apa yang saya memanggil awal 4 byte tubir

identifier. 4 byte ini mengidentifikasi pengguna tertentu dan berubah

setiap kali Anda login Mulanya Anda bisa mengirimkan empat byte

termasuk 00 00 00 00 dan Anda akan masih dapat log in.

• Ini diikuti oleh satu byte data signifying bahwa data yang dikirim adalah

untuk masuk ke server. Byte ini memiliki ASCII setara dengan "0"

• Ini diikuti oleh 1 byte data - 31 ASCII yang setara adalah "1"

• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .-

C0 80

• Akhirnya ini diikuti oleh yahoo user id dan standar argumen pemisah.

• Server memberi tanggapan mengirimkan sebuah tantangan untuk

memverifikasi string password. respon dari server terlihat seperti ini

Ini adalah saat data yang diterima melalui port monitor

0x0000 00 50 BA 89 95 6B 00 20-18 8F C8 16 08 00 45 00. P º ‰ • k. . . È...E. E ... E.

0x0010 00 9C 13 BC 40 00 2F 06-EE F6 D8 88 AD B7 C0 A8. .¼@./. Œ îöØ À ¨

0x0020 01 C1 13 BA 07 0D DA E7-49 68 7F DC 97 0f 50 18. Á. .. ÚçIh º Ü-.P.

0x0030 FF FF 3E 30 00 00 59 4D-53 47 00 00 00 00 00 60 YY> 0 .. YMSG .....`

0x0040 00 57 00 00 00 01 6D 67-EE 27 31 C0 80 73 75 6E. W. ... mgî'1À € Minggu

0x0050 64 61 6D 61 6D 61 C0 80-39 34 C0 80 67 7C 69 2F damamaÀ € 94a € g | i /

0x0060 70 5E 68 26 7A 2D 64 2B-32 25 76 25 78 26 6A 7C p ^ h & z-d 2% v% x & j |

0x0070 65 2B 28 6D 5E 6B 2D 69-25 68 2A 28 73 2B 38 25 e + (m ^ ki% h * (s 8%

0x0080 61 2F 75 2F 78 2A 28 62-2D 34 2A 69 25 68 5E 67 a / u / x * (b-4 * i% h ^ g

Page 51: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

33

0x0090 5E 6A 7C 6D 5E 6E 2D 72-2A 66 2B 70 2B 6A 29 29 ^ j | m ^ nr * f + p + j))

0x00A0 29 C0 80 31 33 C0 80 31-C0 80) À € 13A € € 1A

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 1 byte data - 00 00. -ini menunjukkan bahwa data telah dikirim

oleh server

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Hal ini diikuti oleh charecter "W" ini menandakan bahwa perintah yang

dikirimkan adalah sebuah tantangan perintah

• Berikut adalah 4 byte adalah -00 00 00 01

• 4 byte berikutnya yang paling penting adalah bagian dari respons ini 4 byte ini

juga menandakan sesi id. Semua mendatang pesan / perintah yang dikirimkan ke

server memerlukan sesi ini id

• Ini diikuti oleh 1 byte data - 31 ASCII yang setara adalah "1"

• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0

80

• Ini diikuti dengan yahoo id user dan standar argumen pemisah.

• Berikut adalah dua byte ASCII yang setara "9" dan "4", "94" menandakan

bahwa yang berikut adalah 24 charecter tantangan string

• Akhirnya tantangan string diikuti dengan standar argumen SEPERATOR

• Ini diikuti oleh 2 bytes data - 31 dan 33 yang setara ASCII adalah "1" & 3 "

Page 52: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

34

• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0

80

Setelah ini dilakukan sekarang saatnya untuk benar-benar masuk sebagai

tidak kelihatan, kemudian menjadi online dan dapat mengirim dan menerima

pesan. Inilah yang dikirim

Hal ini akan masuk Anda dalam mode invisible.

Ini adalah data yang dikirim bila melalui port monitor

0x0000 00 20 18 8F C8 16 00 50-BA 89 95 6B 08 00 45 00. . . È..Pº‰•k..E. E .. P º ‰ • k.. E.

0x0010 01 F2 F7 6B 40 00 80 06-B8 F0 C0 A8 01 C1 D8 88. O ÷ k @. €. ÐÀ ¨ ¸. Aoe

0x0020 AD B7 07 0D 13 BA 7F DC-97 0f DA E7 49 DC 50 18 ... º Ü-.ÚçIÜP.

0x0030 43 E8 76 10 00 00 59 4D-53 47 00 0B 00 00 01 B6 Cèv ... YMSG .....¶

0x0040 00 54 5A 55 AA 55 6D 61-93 13 36 C0 80 58 3D 37. Tzu ª Uma ",6 À € X = 7

0x0050 65 2C 48 3D 6A 65 2C 48-3D 6A 37 3B 6D 3D 43 6A e, H = je, H = j7; Cj m =

0x0060 2C 48 3D 43 63 2C 45 3D-33 33 3B 51 3D 6D 6C 3B, H = Cc, E = 33; T = ml;

0x0070 48 3D 33 37 3B 46 3D 67-67 3B 77 3D 46 35 3B C0 H = 37; F = gg; w = F5; À

0x0080 80 39 36 C0 80 4E 3D 61-68 2C 6D 3D 46 31 2C 6D € € N = 96a ah, m = F1, m

0x0090 3D 33 41 2C 51 3D 41 32 3B 54 3D 41 6C 2C 5A 3D = 3A, T = A2; Al = T, Z =

0x00A0 45 70 2C 68 3D 68 65 2C-53 3D 30 6F 3B 72 3D 31 EP, h = dia, S = 0o; r = 1

0x00B0 42 2C 43 3D 68 32 3B C0-80 30 C0 80 73 75 6E 64 B, C = h2; À € 0A € sund

0x00C0 61 6D 61 6D 61 C0 80 32-C0 80 31 C0 80 31 C0 80 amamaÀ € 2a € 1A € € 1A

0x00D0 73 75 6E 64 61 6D 61 6D-61 C0 80 39 38 C0 80 69 sundamamaÀ €

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 2 bytes data - 00 0B. - ini menunjukkan nomor versi dari

protokol

Page 53: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

35

• Ini diikuti oleh 2 bytes data - 00 00

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Hal ini diikuti oleh charecter "T" ini menandakan bahwa perintah yang

dikirimkan adalah perintah login

• Berikut adalah 4 byte adalah 5A 55 AA-55

• 4 byte berikutnya adalah sesi identifier

• Berikut telah byte ascii setara dengan "6"

• Ini diikuti dengan standar argumen pemisah.

• Ini diikuti oleh pertama dari 2, 50 charcter string otentikasi Tanggapan

• Ini diikuti dengan standar argumen pemisah.

• Berikut ada 2 byte ascii setara dari "9" & "6"

• Berikut adalah 2. 50 charecter otentikasi Tanggapan

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "0"

• Ini diikuti dengan standar argumen pemisah.

• Akhirnya diikuti dengan yahoo id user (nama) dan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "2"

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "1"

• Ini diikuti dengan standar argumen pemisah.

Page 54: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

36

• Berikut telah byte ascii setara dengan "1"

• Ini diikuti dengan standar argumen pemisah.

• Akhirnya diikuti dengan yahoo id user (nama) dan standar argumen pemisah.

Lebih banyak data yang lulus alon dengan ini, tetapi sejak banyak data yang telah

dilakukan pada sesi sebelumnya, kita tidak akan mempertimbangkan ini.The

yahoo server akan kami proses permintaan tanpa memperhatikan hal ini.

• Pada berhasil mengirimkan yahoo server kami mengirimkan teman daftar dan

rincian lainnya seperti cookie dan hal-hal

0x0000 00 50 BA 89 95 6B 00 20-18 8F C8 16 08 00 45 00. P º ‰ • k. . . È...E. E ... E.

0x0010 03 1C 17 FA 40 00 2F 06-E8 38 D8 88 AD B7 C0 A8 ... ú @ À ./.è8Ø ¨

0x0020 01 C1 13 BA 07 0D DA E7-49 DC 7F DC 98 D9 50 18. Á. .. ÚçIÜ º Ü ~ UP.

0x0030 FF FF 6A 19 00 00 59 4D-53 47 00 00 00 00 02 E0 ÿÿj ... YMSG ..... à

0x0040 00 55 00 00 00 00 6D 67-EE 27 38 37 C0 80 46 72. U. ... mgî'87À € Fr

0x0050 69 65 6E 64 73 3A 62 6D-61 6E 69 75 73 2C 6B 5F iends: bmanius, k_

0x0060 76 5F 70 72 61 62 68 75 2C 70 75 6E 73 61 5F 32 v_prabhu, punsa_2

0x0070 30 30 30 2C 74 65 73 74-34 79 64 65 6D 6F 0A 6A 000, test4ydemo.j

0x0080 61 62 62 65 72 5F 79 74-3A 6B 5F 76 5F 70 72 61 abber_yt: k_v_pra

0x0090 62 68 75 2C 73 75 64 69-62 6F 79 2C 74 65 73 74 bhu, sudiboy, uji

0x00A0 34 79 64 65 6D 6F 2C 76-65 6E 6B 79 5F 64 75 64 4ydemo, venky_dud

0x00B0 65 0A 74 65 73 74 31 3A-64 65 65 70 61 6B 37 38 e.test1: deepak78

0x00C0 2C 73 75 64 69 62 6F 79-0A 74 65 73 74 34 3A 6B, sudiboy.test4: k

0x00D0 5F 76 5F 70 72 61 62 68-75 0A 74 65 73 74 35 3A _v_prabhu.test5:

0x00E0 6B 5F 76 5F 70 72 61 62-68 75 0A 76 65 6E 6B 79 k_v_prabhu.venky

Cookie dapat grabbed dari data yang diterima oleh kami dan dapat digunakan

untuk various yahoo http functions. yahoo http berbagai fungsi.

Page 55: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

37

Setelah ini kita mengubah status kita sebagai online dan tersedia

Ini adalah apa yang kami kirimkan

YMSG. W U ~ *

Bila dilihat melalui port monitor ini adalah yang ditampilkan

0000: 20 53 52 43 00 00 44 45 53 54 00 00 08 00 45 00 SRC DEST .... E. ..

0010: 00 3C CF 04 40 00 80 06 BA 25 CB 5E EA D9 D8 88 .<..@....%.^....

0020: E2 D0 04 8B 00 50 00 71 FE 1B 82 BE 3D 8B 50 18 ..... Pq ...=. P.

0030: 21 80 A3 50 00 00 59 4D 53 47 00 0B 00 00 00 00! .. P.. YMSG ......

0040: 00 04 00 00 00 0C 00 00 00 00 ..........

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 2 bytes data - 00 0B. -ini menunjukkan nomor versi dari

protokol

• Ini diikuti oleh 2 bytes data - 00 00

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• The Berikutnya byte data adalah 04 - ini menandakan pengguna untuk

mengubah status-Nya yang tersedia

• Berikut adalah 4 byte adalah -00 00 00 0C

• 4 byte terakhir adalah -00 00 00 00

Mengirimkan pesan

Untuk mengirim pesan berikut data yang dikirim ke server

Page 56: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

38

YMSG D. Zu ª V ~ *

1A-5A € sunxxxxxÀ € € venkxxxxeÀ € 14A € hiÀ € 97À € 0A € € 63À; 0A € 64A € 0A € 1002À € € 1A

Bila dilihat melalui port monitor

0000: 20 53 52 43 00 00 44 45 53 54 00 00 08 00 45 00 SRC DEST .... E. ..

0010: 00 80 F7 04 40 00 80 06 91 E1 CB 5E EA D9 D8 88 ....@......^....

0020: E2 D0 04 8B 00 50 00 71 FE 2F 82 BE 3F EA 50 18 ..... Pq /..?. P

0030: 21 80 54 8F 00 00 59 4D 53 47 00 0B 00 00 00 44!. T. .. YMSG ..... D

0040: 00 06 5A 55 AA 56 7E 2A 0A 97 31 C0 80 73 75 6E .. ZU.V. Minggu *.. 1 ..

0050: 64 xx xx 61 xx xx C0 80 35 C0 80 76 65 6E 6B 79 dxxxx venky .. 5 ..

0060: xx xx xx 64 65 C0 80 31 34 C0 80 68 69 C0 80 39 xxxxe .. 14 .. hi .. 9

0070: 37 C0 80 30 C0 80 36 33 C0 80 3B 30 C0 80 36 34 7 .. 0 .. 63 ..; 0 .. 64

0080: C0 80 30 C0 80 31 30 30 32 C0 80 31 C0 80 .. 0 .. 1002 .. 1 ..

Marilah kita melihat apa yang sedang dikirim

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 2 byte data - 00 0B. -ini menunjukkan nomor versi dari protokol

• Ini diikuti oleh 2 bytes data - 00 00

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Berikutnya byte data adalah 06 - ini menandakan bahwa perintah adalah

pengguna pesan

• Berikut adalah 4 byte yang standar untuk semua pesan / perintah yang

dikirimkan kepada Rasul server.The 4 byte adalah 5A 55 AA 56

Page 57: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

39

• 4 byte berikutnya adalah untuk pengguna identifier sesi yang sedang

berlangsung.

• Ini diikuti oleh satu byte data signifying bahwa data Pesan Pribadi (PM) yang

dikirim ke user. memiliki ASCII byte setara dengan "1"

• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0

80

• Ini diikuti dengan yahoo id user dan standar argumen pemisah.

• Diikuti oleh satu byte yang memiliki ASCII yang setara dengan "5" dan whch

menandakan bahwa data berikutnya adalah id user yang pesan untuk dikirim

• Diikuti dengan standar argumen pemisah.

• Ini diikuti dengan ID dari pengguna yang pesan sedang dikirim dan standar

argumen pemisah.

• Diikuti oleh satu byte lagi memiliki ASCII yang setara dengan "14" dan

menandakan bahwa data berikut adalah sebenarnya pengguna pesan dan standar

argumen pemisah.

• Berikut ada 2 byte ascii setara dengan "6" & "3"

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan ";"

• Berikut telah byte ascii setara dengan "0"

• Ini diikuti dengan standar argumen pemisah.

• Berikut ada 2 byte ascii setara dengan "6" & "4"

• Ini diikuti dengan standar argumen pemisah.

Page 58: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

40

• Berikut telah byte ascii setara dengan "0"

• Berikut ada 2 byte ascii setara dengan "1" & "0"

• Berikut ada 2 byte ascii setara dengan "0" & "2"

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "1"

• Akhirnya diikuti dengan standar argumen pemisah.

Menerima pesan

YMSG J. ~ * 5a-4a € sundaxxxxÀ € € venkyxxxxÀ € 14A € hi thereÀ € € 63À; 0A € 64A € 0A €

97À € € 0A

0000: 44 45 53 54 00 00 20 53 52 43 00 00 08 00 45 00 DEST .. SRC....E. SRC E. ....

0010: 00 7D 9C 0f 40 00 32 06 3A DA D8 88 E2 D0 CB 5E .}..@. 2 .:......^

0020: EA D9 00 50 04 8B 82 BE 3F 95 00 71 FE 50 18 ... 2F P. ...?.. q. / P.

0030: FF FF 73 60 00 00 59 4D 53 47 00 00 00 00 00 41 .. `s .. YMSG ..... J

0040: 00 06 00 00 00 01 7E 2A 0A 97 35 C0 80 73 75 6E .......*.. 5 .. Minggu

0050: xx xx xx xx xx 61 C0 80 34 C0 80 76 65 6E 6B 79 dxxxxx venky .. 4 .

0060: xx xx xx xx xx xx xx 31 34 C0 80 68 69 20 74 68 xxxxe .. 14 th .. hi

0070: 65 72 65 C0 80 36 33 C0 80 3B 30 C0 80 36 34 C0 sebelum .. 63 ..; 0 .. 64.

0080: 80 30 C0 80 39 37 C0 80 30 C0 80 .0 .. 97 .. 0 ..

Marilah kita melihat apa yang telah diterima

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 1 byte data - 00. -bahwa ini adalah server Tanggapan

• Ini diikuti oleh 3 bytes data - 00 00 00

Page 59: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

41

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Berikutnya byte data adalah 06 - ini menandakan bahwa perintah adalah

pengguna pesan

• Berikut adalah 4 byte adalah 00 00 00 01

• 4 byte berikutnya adalah sesi id

• Ini diikuti oleh satu byte data signifying bahwa data Pesan Pribadi (PM) yang

dikirim ke user.This memiliki ASCII byte setara dengan "5"

• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0

80

• Ini diikuti dengan yahoo id user dan standar argumen pemisah.

• Diikuti oleh satu byte yang memiliki ASCII yang setara dengan "4" dan

menandakan bahwa data berikutnya adalah id user yang telah pesan

• Diikuti dengan standar argumen pemisah.

• Ini diikuti dengan ID dari pengguna yang pesan sedang dikirim dan standar

argumen pemisah.

• Diikuti oleh satu byte lagi memiliki ASCII yang setara dengan "14" dan

menandakan bahwa data berikut adalah sebenarnya pengguna pesan dan standar

argumen pemisah.

• Berikut ada 2 byte ascii setara dengan "6" & "3"

• Ini diikuti dengan standar argumen pemisah.

Page 60: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

42

• Berikut telah byte ascii setara dengan ";"

• Berikut telah byte ascii setara dengan "0"

• Ini diikuti dengan standar argumen pemisah.

• Berikut ada 2 byte ascii setara dengan "6" & "4"

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "0"

• Berikut ada 2 byte ascii setara dari "9" & "7"

• Ini diikuti dengan standar argumen pemisah.

• Berikut telah byte ascii setara dengan "0"

• Akhirnya diikuti dengan standar argumen pemisah.

PENGGUNA DI ONLINE

0x0030 FF FF D2 AA 00 00 59 4D-53 47 00 00 00 00 00 31 ÿÿÒ ª .. YMSG ..... 1

0x0040 00 04 00 00 00 01 B5 67-52 29 37 C0 80 73 75 6E ...... μgR) 7A € sue

0x0050 64 61 6D 61 6D 61 C0 80-31 30 C0 80 30 C0 80 31 ddddddÀ € 10A € 0A € 1

0x0060 31 C0 80 37 35 36 42 36-36 41 39 C0 80 31 37 C0 1A € 756B66A9À € 17a

0x0070 80 30 C0 80 31 33 C0 80-31 C0 80 € 0A € 13A € € 1A

Mari kita lihat apa yang sedang dikirim

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 1 byte data - 00. - -bahwa ini adalah server Tanggapan

• Ini diikuti oleh 3 bytes data - 00 00 00

Page 61: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

43

Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Berikutnya byte data adalah 04 - menetapkan status sebagai pengguna online

• Berikut adalah 4 byte adalah 00 00 00 01

• The 4 byte berikutnya adalah sesi id

• Dalam pesan ini juga hadir ID dari pengguna yang telah secara offline

PENGGUNA Goes Offline

0x0030 FF FF CD C6 00 00 59 4D-53 47 00 00 00 00 00 31 ÿÿÍÆ .. YMSG ..... 1

0x0040 00 02 00 00 00 01 B5 67-52 29 37 C0 80 73 75 6E ...... μgR) 7A € Minggu

0x0050 64 61 6D 61 6D 61 C0 80-31 30 C0 80 30 C0 80 31 damamaÀ € 10A € 0A € 1

0x0060 31 C0 80 45 32 36 31 46-45 44 37 C0 80 31 37 C0 1A € E261FED7À € 17a

0x0070 80 30 C0 80 31 33 C0 80-30 C0 80 € 0A € 13A € € 0A

• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan

• Ini diikuti oleh 1 byte data - 00. -bahwa ini adalah server Tanggapan

• Ini diikuti oleh 3 bytes data - 00 00 00

• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof

string-panjang header (20 bytes)

• Byte berikutnya adalah data 00

• Berikutnya byte data adalah 02 - menetapkan status sebagai pengguna offline

• Berikut adalah 4 byte adalah 00 00 00 01

Page 62: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

44

• 4 byte berikutnya adalah sesi id

• Dalam pesan ini juga hadir ID dari pengguna yang telah secara offline

2.8 Lipcap

Packet Capture adalah salah satu metode yang dilakukan untuk mencari

gangguan pada jaringan (troubleshooting). Menggunakan metode ini, paket-paket

yang melalui jaringan diambil atau dikumpulkan untuk di analisis. Dengan

demikian, kondisi jaringan dapat diketahui secara real-time. Pada jaringan

broadcast, seperti jaringan ethernet yang menggunakan hub, paket yang dikirim

oleh satu host akan disebar ke tiap host pada jaringan tersebut. Normalnya, paket

yang diterima suatu piranti jaringan akan dibuang jika alamatnya tidak sama

dengan alamat tujuan peket tersebut. Untuk melakukan packet capture, semua

paket yang diterima akan diproses walau alamat tujuan paket tersebut berbeda

dengan alamat piranti jaringan. Hal ini dilakukan dengan menempatkan piranti

jaringan pada promiscuous mode.

Informasi yang dapat diambil dari paket-paket tersebut adalah informasi

low-level. Namun dengan membuang header-header low-level dan menyatukan

paket-paket terfragmen, informasi high-level juga dapat diperoleh. Kemungkinan

besar tidak semua paket yang diterima dalam packet capture dibutuhkan untuk

analisis. Karena itu paket yang masuk biasanya difilter berdasarkan kriteria

tertentu, misalnya berdasarkan port tujun.

Libpcap adalah library yang menyediakan API (Application Programming

Interface) untuk pengimplementasian tool packet capture. Library ini didesain

Page 63: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

45

system-independent, dan tersedia untuk sistem operasi berbasis UNIX. Pada

sistem operasi windows, library packet capture yang umum digunakan adalan

Winpcap.

Libpcap adalah library yang banyak digunakan tool-tool security,

diantaranya yaitu nmap, tcpdump, dan snort. Library ini memungkinkan untuk

menangkap paket yang berada pada network, bahkan paket-paket yang ditujukan

untuk host lain. Library Libpcap dapat diaplikasikan untuk pengumpulan data

statistik, pengawasan keamanan jaringan, debugging jaringan, dan lain-lain.

Libpcap bisa dimanfaatkan untuk mempelajari protokol jaringan

komputer, libpcap biasanya digunakan pada aplikasi yang berkaitan dengan

analisa network. Walaupun sudah tersedia tool-tool tersebut hanya menampilkan

data atau informasi dari paket yang ditangkap. Library ini memungkinkan

pembuatan aplikasi yang spesifik, dan disesuaikan dengan keperluan. Aplikasi

yang dihasilkan menggunakan library ini memiliki performa yang baik karena

API libpcap ditulis dalam bahasa C.

Cara kerja library libpcap ini seperti loop. Jadi suatu program akan

menunggu terus sampai ada paket yang datang, dan paket yang datang tersebut

akan diolah dengan callback functionnya.

2.9 Sniffing

Sniffing adalah pekerjaan memonitor paket data yang lalu-lalang di sebuah

jaringan pada komputer yang terhubung pada jaringan internet menggunakan

suatu modem. Paket data ini bisa berisi informasi mengenai apa saja, baik itu

Page 64: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

46

username, apa yang dilakukan pengguna melalui jaringan, termasuk

mengidentifikasi komputer yang terinfeksi virus., sekaligus melihat apa yang

membuat komputer menjadi lambat dalam jaringan. Bisa juga untuk menganalisa

apa yang menyebabkan jaringan macet. Jadi bukan sekedar untuk kejahatan, tapi

bisa juga untuk mencegah suatu kejahatan. Semuanya tergantung dari

penggunanya.

Sniffing bisa dilakukan tidak berarti karena masalah komputer atau sistem

operasi, tapi system dari jaringan sendirilah yang bermasalah. Misalnya pada

system jaringan yang menggunakan hub, permintaan data maupun pengiriman

data disiarkan ke seluruh komputer dalam jaringan, dan hanya komputer yang

membutuhkan saja yang mengambil data. Dengan menggunakan sniffer, semua

data yang disiarkan akan ditangkap tanpa adanya permintaan dari salah satu

komputer. Sniffing juga termasuk mengendus data yang disembunyikan dalam

komputer, termasuk yang dienkripsi.

Konfigurasi jaringan sniffing dapat dilihat pada gambar 2.17

Gambar 2.17. Konfigurasi Jaringan Sniffing

2.10 Shell

Page 65: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

47

Shell adalah bahasa penterjemah perintah (Command Interpeter

Language) atau sebuah prosesor makro yang menjalankan perintah. Shell juga

dapat berarti intepreter perintah yang menjadi antarmuka antara user dengan

utilitas dan bahasa pemrograman. Dengan shell, dapat dibuat sebuah perintah atau

file yang berisi perintah-peintah itu sendiri. Perintah baru tersebut mempunyai

status yang sama dan diletakkan pada direktori /bin.

Shell mengijinkan eksekusi perintah secara synchronously dan

asynchronously. Shell menunggu perintah synchronous untuk dilengkapi sebelum

menyetujui lebih banyak input, sedangkan perintah asynchronous terus berjalan

dalam paralel dengan shell ketika membacanya dan menjalankan perintah

tambahan. Shell juga mengenal adanya redirection. Dengan redirection dapat

dilakukan kontrol untuk input dan output dari perintah yang ada dan juga

melakukan kontrol terhadap isinya. Secara default, shell UNIX juga menyediakan

perintah-perintah built-in, seperti pwd, cd, kill, history atau utilitas lain yang

terpisah.

Sebagai interface dan command intepreter, shell dapat digunakan secara

interaktif maupun non interaktif. Dengan 2 mode tersebut, shell mampu menerima

input dari device(keyboard) atau file. Fitur interaktif yang termasuk di dalamnya

adalah kontrol job, history, alias, dan editor command line.

Hal lain yang menjadikan shell sangat penting adalah shell menyediakan

bahasa pemrograman yang telah disertakan (embeded). Sama halnya dengan

bahasa pemrograman tingkat tinggi lainnya, intepreter shell juga menyediakan

variabel, flow control, quoting, dan fungsi.

Page 66: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

48

2.10.1. Macam-macam Shell

Pada UNIX/linux terdapat berbagai macam shell dengan kelebihan

dan kekurangannya masing-masing. Dengan banyaknya variasi shell ini,

user bebas memilih shell yang digunakan. Meskipun kebanyakan sistem

operasi telah menentukan sebuah shell sebagai shell default, tetapi tidak

menutup kemungkinan shell lain juga dapat dijalankan.

Berikut ini beberapa macam shell yang umum terdapat dalam

sistem operasi UNIX/Linux :

1. Bourne Shell (/bin/sh):sebagai bahasa pemrograman, Bourne Shell

menggunakan bahasa dasar Algol.

2. Bourne Again Shell (/bin/bash):bash merupakan pengembangan dari

Bourne Shell. Saat ini bash semakin berkembang dan banyak dijadikan

sebagai shell default untuk sistem operasi Linux.

3. C Shell (/bin/csh):jika digunakan dalam pemrograman, sintaknya akan

mirip dengan bahasa C, karena shell ini memang berbasis bahasa C.

4. Tenex C Shell (/bin/tcsh):merupakan pengembangan dari C Shell

dengan penambahan beberapa fitur, yaitu logout, locking, job

sceduling, variabel dan command line editing (vi dan emacs).

5. Tcl Shell (/bin/tclsh):shell yang menggunaka intepreter tcl, sehingga

tcl dapat membaca perintah-perintah tcl dari standar input atau file.

6. Korn Shell (shell /bin/ksh):sama dengan bash, korn shel juga tersedia

untuk sistem operasi selain UNIX, seperti DOS, OS/2 dan VMS.

Page 67: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

49

7. Public Domain Korn Shell (/bin/pdksh):shell ini merupakan kloning

Korn Shell dalam versi public domain.

8. A Shell (/bin/ash):Ash merupakan variasi dari sh.

9. Z Shell (/bin/zsh):merupakan bentuk lain dari Korn Shell tetapi

dengan menggunakan fitur dari TC Shell.

2.11 Bahasa Pemrograman C

Bahasa C telah berhasil digunakan untuk mengembangkan berbagai jenis

permasalahan pemrograman, dari level operating system (unix, linux, ms dos,

dsb), aplikasi perkantoran (text editor, word processor, dsb), bahkan sampai

pengembangan sistem pakar (expert System). Kompiler C juga telah tersedia di

semua jenis platform komputer, mulai dari Macintosh, UNIX, PC, Mokro PC,

sampai super komputer.

C bisa disebut sebagai bahasa pemrograman tingkat menengah (middle

Programming language). Artinya tingkat(level) disini adalah kemampuan

mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware

(machine basic instruction set). Dalam perspektif mudahnya dipahami manusia, C

bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan

kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi

byte, pengaksesan memori, dsb.

C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit. Kata

kunci disini adalah merupakan fungsi ataupun kata dasar yang disediakan oleh

kompiler suatu bahasa pemrograman. Hal ini membawa pengaruh semakin

Page 68: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

50

mudahnya kita menulis program dengan C. Pengaruh lain dari sedikitnya kata

kunci ini adalah proses eksekusi program C yang sangat cepat.

C hanya menyediakan 32 kata kunci seperti terangkum pada tabel 2.2 di

bawah ini :

Table 2.2 Kata Kunci Bahasa C

2.11.1 Struktur program Bahasa C

Program bahasa C adalah suatu program terdiri dari satu atau lebih

fungsi-fungsi. Fungsi utama dan harus ada pada program C adalah fungsi

main(). Fungsi main() ini adalah fungsi pertama yang akan diproses pada

saat program di kompile dan dijalankan, sehingga bisa disebut sebagai

fungsi yang mengontrol fungsi-fungsi lain. Karena struktur program C

terdiri dari fungsi-fungsi lain sebagai program bagian (subrountine), maka

bahasa C biasa disebut sebagai bahasa pemrograman terstruktur. Cara

penulisan fungsi pada progmam bahasa C adalah dengan memberi nama

fungsi dan kemudian dibuka dengan kurung kurawal buka ({ ) dan ditutup

dengan kurung kurawal tutup ( }).

Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau

sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal

Page 69: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

51

program. Bisa juga dituliskan pada file lain yang apabila kita ingin

memakai atau memanggil fungsi dalam file lain tersebut, kita harus

menuliskan header filenya, dengan prepocessor directive #include. File ini

disebut file pustaka (library file). Untuk lebih jelas tentang struktur

program C, lihat gambar 2.18 :

# include<stdio.h> prepocessor directive

Fungsi_lain(); prototype fungsi lain

Main()

{ fungsi utama

Statement;

}

Fungsi_lain()

{ fungsi lain

Statement;

}

Gambar 2.18 Struktur dasar program C

2.11.2 Proses pembuatan program C

Proses pembuatan program C dapat dilihat pada gambar 2.19

Page 70: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

52

Gambar 2.19 proses pembuatan program C

1. Tulis source code program bahasa C dengan menggunakan text editor

(dalam hal ini menggunakan emacs) kemudian simpan dalam sebuah file.

Text editor disini bisa merupakan aplikasi notepad atau editplus pada

windows, untuk operating system unix/linux kita bisa mengunakan

aplikasi emacs, vi, ataupun mcedit yang cukup terkenal.

2. Kompile file yang berisi source code program bahasa C.

Kompilasi atau kompile(compile) adalah sutau proses merubah source

code ke bahasa mesin sehingga bisa dieksekusi (executable) atau

dijalankan. Banyak sekali kompiler bahasa C yang saat ini, baik yang

gratis maupun yang kita harus membeli untuk menggunakannya. Untuk

linux kita menggunakan gcc sebagai kompiler C

3. Jalankan program yang sudah dikomplile

Setelah kita kompile file yang berisi source code, maka sebagai hasil

kompilasi tersebut kita akan mendapatkan suatu file yang bisa dijalankan

Page 71: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

53

(executable file). Menjalankan program yang kita buat berarti menjalankan

file hasil proses kompilasi tersebut.

2.11.3 Bahasa Pemrograman C dalam Linux/Unix

Bahasa C adalah bahasa pemrograman yang sangat cocok untuk

dipelajari bagi yang ingin mengetahui lebih dalam tentang Linux dan

Sistem Operasi Unix lainnya yang sebagian besar dibuat dengan bahasa C.

Linux sendiri merupakan sistem operasi yang langsung menyediakan C

pada saat instalasi.

Tiga hal yang dibutuhkan dalam membuat program C adalah :

1. Text editor

Text editor diperlukan untuk membuat source code program C. Text

editor yang bisa digunakan di linux antara lain : vi, gedit, kedit,

mcedit, nano, dan lain sebagainya.

2. Compiler

Compiler adalah program yang mengkonversi source code menjadi

bahasa mesin ( biasa disebut object code atau machine code) sehingga

dapat dimengerti langsung oleh CPU. C compiler termasuk dalam

GNU Compiler Colection (GCC), salah satu komponen penting dalam

distribusi linux. Untuk mengecek GCC pada sistem ketikkan gcc pada

command line, jika pesan yang diterima berupa: “no input files” berarti

gcc telah terinstall dan siap digunakan, jika tidak pesan yang diterima

adalah “command not found”

Page 72: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

54

3. C standart library

Library adalah kumpulan subprogram yang dapat digunakan

programmer untuk membuat source code. Glibc adalah standart C

library yang diimplementasikan oleh GNU. Sebagian besar komponen

linux membutuhkan standart tersebut.

Program yang pertama biasa dibuat oleh programmer adalah “Hello

World”

Cara membuatnya:

1. Ketikkan progran berikut pada editor text

#include

main()

{

printf("Hello,world!\n");

return 0;

}

Baris pertama pada kode diatas disebut dengan preprocessor directive

yang diawali dengan tanda ‘#’. Directive terdiri dari header file yang

berada dalam glibc dan digunakan oleh compileruntuk memindahkan

isi dari file header ke dalam file c sehingga dapat digunakan.

Contohnya, pada code diatas directive yang digunakan adalah stdio.h

yang menyediakan fasilitas input dan output pada C, sehingga dapat

menggunakan perintah “printf”.

Page 73: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

55

Setiap program C memiliki fungsi main() yang berisi satu atau lebih

statement yang dituliskan di dalam kurung kurawal( {} ).

Perintah printf digunakan untuk menampilkan hasil dari program C

kelayar. Huruf f diakhir kata printf berarti formatted (terformat). Setiap

string yang ingin ditampilkan dengan perintah printf harus dibuat

dalam tanda petik dua (double quotes).

Simpan kode nama apa saja dan diakhiri dengan extension .c,

extension untuk program c yang akan dikenali compiler sebagai C

source code. Contohnya, simpan kode diatas dengan nama hello.c

2. Compile program terdiri dari dua langkah yaitu compile dan linking.

Cara meng-compile program dengan menggunakan GCC, adalah

dengan mengetikkan perintah di bawah ini pada command line :

gcc –o hello hello.c

compile program akan menghasilkan file berextension .exe yaitu

heloo.exe.

3. Menjalankan program yang telah di compile , caranya adalah dengan

mengetikkan pada command line :

./hello

Run program diatas akan menghasilkan Hello World di layar

Tapi jika program terbuat dari beberapa file sumber, harus

menjalankan utility "make". Maka harus menulis sesuatu yang

dinamakan makefile, yang mana memberitahu kompiler tentang

Page 74: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

56

keterkaitan/ketergantungan antara file sumber(source file) dan file

objek(object file ).

Page 75: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

57

BAB III

PERANCANGAN SISTEM

Pada bab ini akan diberikan gambaran dan penjelasan mengenai konsep

perekaman data chatting dalam Yahoo Messenger (YM) dengan teknik sniffing.

Berikut secara teknis, yang terdiri dari perancangan sistem, konfigurasi jaringan,

perancangan perangkat lunak dan perancangan perangkat keras.

3.1. Analisis Sistem

Sistem ini berfungsi untuk mencatat informasi paket dalam

aktivitas chatting yang melewati jaringan komputer sniffing. Paket yang

dicapture meliputi IP asal, IP tujuan serta data asal, data tujuan.

3.2. Perancangan Sistem

Program sniffing dijalankan pada komputer sniffing yang kemudian

melihat lalu lintas/ trafic data yang melewati komputer sniffing. Pada saat

program ini melihat trafic data yang diidentifikasikan sebagai data Yahoo

Messenger (YMSG) maka program ini mulai mengambil data tersebut

yang kemudian ditampilkan, baik ditampilkan dalam layar monitor

ataupun direkam dalam bentuk file log. Data yang ditampilkan hanya data

paket yang tidak terenkripsi, untuk data-data yang terenkripsi/ tidak

teridentfikasi, program ini hanya menampilkan karakter titik (.).

Page 76: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

58

Program tidak dibatasi oleh waktu untuk menghentikan aktivitas capture.

Operator dapat menghentikan capture paket kapan saja.

3.3. Konfigurasi Jaringan

Pada konfigurasi yang penulis buat untuk sniffing kali ini, penulis

membuat konfigurasi jaringan dengan menggunakan satu buah server

gateway berbasis linux slackware, dua buah laptop berbasis windows XP,

satu buah router utama, dan AP hotspot, terlihat pada Gambar 3.1.

Gambar 3.1. Konfigurasi jaringan

3.4. Perancangan Perangkat Lunak

Page 77: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

59

Pada perancangan perangkat lunak ini penulis membuat program

untuk meng-capture data chatting dalam Yahoo Messenger dengan diberi

nama snifit. Program snifit ini terdapat beberapa program yang saling

berkaitan.

Snifit adalah suatu program untuk meng-capture data yang dikirimkan

sebagai bagian dari koneksi TCP (arus), dan menyimpan data dengan cara

yang tepat untuk analisa protokol atau debugging. Suatu program seperti

“tcpdump” yang menunjukkan ringkasan dari paket-paket di atas jaringan,

tetapi biasanya tidak menyimpan data.

Snifit menyimpan semua data yang ditangkap dan menyimpannya di

dalam file-file dan mempunyai nama-nama dari form

128.129.130.131.02345-010.011.012.013.45103

di mana isi-isi dari file akan menjadi data tersebut dikirimkan dari host

128.129.131.131 port 2345, kepada host 10.11.12.13 port

45103.

3.4.1. Sistem Utama

Perancangan program Snifit ini mengontrol 4 proses yang ada

didalam sistem utama. Empat proses tersebut meliputi :

1. Proses 1 adalah main.c

2. Proses 2 adalah flow.c

3. Proses 3 adalah datalink.c

4. Proses 4 adalah tcpip.c

Page 78: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

60

Pada sistem utama ini, keyboard akan menginputkan karakter. Lalu

program akan melihat interface. Setelah pengecekan interface selesai maka

program akan melihat paket data yang melewati jaringan, pada proses ini

program akan membedakan apakah paket berupa IP atau paket berupa

data. Setelah paket data ter-capture maka proses selanjutnya adalah

membuat struktur arus data dari hasil capture file.

Compile program akan menghasilkan file berextension .exe, seperti halnya

pada program installan dalam windows. Program Snifit terbuat dari

beberapa file sumber, maka harus menjalankan utility "make". Maka harus

menulis sesuatu yang dinamakan makefile, yang mana memberitahu

kompiler tentang keterkaitan/ketergantungan antara file sumber(source

file) dan file objek(object file ).

Page 79: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

61

Gambar 3.4. Flowchart Sistem Utama.

3.4.2. Proses pada Sistem Utama

Proses yang berjalan pada sistem utama meliputi :

Page 80: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

62

1. Proses 1 adalah main.c

Program ini berfungsi untuk menginputkan masukan dari keyboard

yang kemudian dari inputan tersebut akan muncul sebuah statement

yang sesuai dengan apa yang diinputkan.

Dalam program main.c ini terdapat fungsi print usage, yang berfungsi

untuk menampilkan data yang dapat diinputkan melalui keyboard serta

penjelasan fungsi masing-masing inputan tersebut. Terdapat

pernyataan switch dalam proses main.c. Pernyataan switch ini

digunakan untuk menjalankan salah satu pernyataan dari beberapa

kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan

nilai penyeleksi.

2. Proses 2 adalah flow.c

Program ini berfungsi untuk membuat struktur arus data.

Dalam program ini terdapat 3 fungsi, yaitu :

a. Create flow state, fungsi ini befungsi untuk menentukan letak tiap

paket data.

b. Open file, fungsi ini berfungsi untuk membuka file yang sudah

tercapture. Termasuk membuka paket data ataukah membuka paket

IP. Open file tidak seharusnya dipanggil jika file sudah terbuka.

c. Close file, fungsi ini berfungsi untuk menutup file pada struktur

arus.

Page 81: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

63

3. Proses 3 adalah datalink.c

Program ini berfungsi untuk melihat/ mengecek interface pada sistem

ini. DLT_PPP untuk modem, DLT_ETHERNET untuk wirelles

ataupun ethernet, dan DLT_NULL jika tidak terdapat interface.

4. Proses 4 adalah tcpip.c

Program ini berfungsi untuk melihat paket-paket yang sedang

melewati jaringan, khususnya paket pada saat aktivitas chatting Yahoo

Messenger berlangsung.

Dalam program ini terdapat 4 fungsi yaitu :

a. Proses IP, fungsi ini dipanggil ketika menerima suatu IP datagram.

Kita memeriksa paket untuk meyakinkan bahwa ada beberapa data

yang lewat. Kita meyakinkan bahwa berisi suatu TCP, jika

demikian maka pengolahan data yang lewat akan diproses oleh

proses_tcp(). Dalam proses ini menggunakan ip_total_len, karena

mungkin dalam memproses paket kita akan menangkap byte

didalam lapisan ethernet.

b. Proses TCP, fungsi ini hanya mencari TCP, selain itu akan

dibuang. Jika tidak mempunyai data apapun maka kembalikan

paket. Setelah mendapat sebuah TCP maka mengkalkulasi total

panjangnya TCP header. Mengisi struktur arus dengan info yang

mengidentifikasikan arus ini. Serta mengkonversi data yang tidak

terbaca menjadi karakter titik(.).

Page 82: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

64

c. Store paket, fungsi ini untuk menyimpan paket data ke dalam file.

Sebelumnya kita melihat dulu apakah paket ini mempunyai arus

struktur, jika belum maka akan diciptakan dulu struktur arus untuk

paket tersebut.

d. Print paket, fungsi ini mencetak muatan paket kedalam console.

3.4.3. Flowchart Proses Yang Berjalan Pada Sistem Utama

3.4.3.1. Flowchart Proses 1 main.c

Gambar 3.5. Flowchart Proses 1 Main.c

Page 83: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

65

Gambar 3.6 Flowchart Print Usage

Page 84: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

66

Start

Switch (arg)

Case ‘b’ ;

IfByte_per_flow-atoi(optarg)<0

Debug “capturing max of byte per

traffic”

Debung” warning:invalid value used with -b ignored “

Break

True

False

Case ‘c’

Console only=1Debug “ printing packet to

console only”

Case ‘s’

Strip_nonprint=1Debug “concerting non

printable character to ’.’ “

Break

1

Page 85: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

67

1

Case ‘h’

Print usage

Exit

Break

Default

Debug “ error : unrecognized switch”

Need_usage=1

Break

End

Gambar 3.7 Switch

Page 86: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

68

3.4.3.2. Flowchart Proses 2 “ Flow.c “

Gambar 3.8. Flowchart Create Flow State

Page 87: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

69

End

Start

If flow_state->fp

Debug “ …. Trying to open already open file”

Return flow_state->fp

If flow state, filename!=NULL

Open file succeededOpen failed sebab terlalu banyak file yang sedang

dibuka

True

False

True False

While (!done)

True

If flow_state->fp==NULL

Set finished, dan jangan mencoba untuk membuka

file kembali

Mengurutkan arus dari yang lama ke yang baru

Close file

False

True

False

Return NULL

Gambar 3.9 Flowchart Open File

Page 88: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

70

Start

If flow_state->==NULL

Return 0

Debug “closing file “

Menutup file

Return 1

End

True

False

Gambar 3.10 Flowchart Close File

Page 89: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

71

3.4.3.3. Flowchart Proses 3 “ Tcpip.c “

Start

IfPanjang paket<TCP

header

Debug "received truncated TCP

segment!"

Return

Mengkalkulasi total panjangnya

TCP header

If tidak mempunyai

data

Debug “got TCP segment with no

data:

Return

Mengisi struktur flow dengan info yang

mengidentifikasi arus

Mengkalkulasi lagi permukaan data dan

panjangnya TCP header

IfStrip nonprint

If (console only)

Mencetak output Menyimpan output

End

True

False

True

False

True

False

True

False

Data=(data, panjangnya)

Gambar 3.11. Flowchart proses TCP

Page 90: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

72

Gambar 3.12 Flowchart Proses IP

Page 91: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

73

Gambar 3.13 Flowchart Store Paket

Page 92: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

74

Gambar 3.14 Flowchart Print Paket

Page 93: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

75

3.4.3.4. Proses 4 “ Datalink.c “

Start

If (length!=caplen)

Debug “warning : only captured byte of byte

ether frame”

If (caplen<sizeof(struct

ether_header)

Return

if (ntohs(eth_header->ether_type)

!= ETHERTYPE_IP)

Debug “warning : received incomplete ethernet frame”

Debug “ warning received ethernet frame with unknown type”

Return

Proses IP

End

True

True

False

False

True

False

Gambar 3.15 Flowchart DLT_ETHERNET

Page 94: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

76

Gambar 3.16 Flowchart DLT_PPP

Page 95: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

77

Start

If (length!=caplen)

Debug “warning : only captured byte of byte null

frame“

If (caplen < NULL_HDRLEN)

Debug “warning : received incomplete null frame “

Return

Proses IP

end

True

True

False

If (fammily!+AF_INET)

Debug “warning :received non AF_INET null frame “

return

Gambar 3.16 Flowchart DLT_NULL

Page 96: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

78

3.5. Perancangan Perangkat Keras

Perancangan perangkat keras yang digunakan oleh perangkat lunak ini dibagi

menjadi tiga bagian :

a. Komputer server gateway:

a. Pentium 4 core2duo 1.8Ghz

b. Memory 1GB

c. Harddisk 80GB

d. NIC(network interface card) realtek

e. Hardware support *NIX

b. Komputer klien/korban

a. Laptop Toshiba M1 pentium 4 mobile 1.6Ghz

b. Memory 768MB

c. Harddisk 40GB

d. NIC(network interface card) intel

e. Wifi card intel

c. Media penunjang

a. Wireless merk senao SL-2611CB3 (AP mode)

b. Kabel UTP belden cat5

Page 97: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

79

BAB IV

IMPLEMENTASI SISTEM

Pada bab ini penulis akan menjelaskan mengenai implementasi perekaman

data chatting dalam Yahoo Messenger (YM) dengan teknik sniffing. Dikarenakan

teknik sniffing hanya dapat berjalan pada satu kelas jaringan (dalam satu network),

maka untuk memudahkan sniffing, penulis meletakkan program ini di dalam

gateway server.

Sehinga dalam bab ini penulis hanya menjelaskan pada sisi server atau pada sisi

dimana sniffing tersebut diletakkan.

4.1 Lingkungan Implementasi

4.1.1 Spesifikasi Perangkat Lunak

Dalam implementasi kali ini, penulis perangkat lunak yang dipakai

adalah sebagai berikut :

a. Sistem operasi : Linux varian kernel 2.6.xx

Telah di coba di distro centos 4.4,

centos 5 dan slackware 12.0

b. Bahasa pemrograman : gcc-4.1.2, dan bash-3.1.017

c. Paket library dan pendukung: glib2-2.12, lpcap, tcpdump

Page 98: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

80

4.1.2 Spesifikasi Perangkat Keras

Perangkat keras yang penulis gunakan untuk mendukung dalam

implementsai ini dibagi menjadi tiga bagian :

d. Komputer server gateway:

a. Pentium 4 core2duo 1.8Ghz

b. Memory 1GB

c. Harddisk 80GB

d. NIC(network interface card) realtek

e. Hardware support *NIX

e. Komputer klien/korban

a. Laptop Toshiba M1 pentium 4 mobile 1.6Ghz

b. Memory 768MB

c. Harddisk 40GB

d. NIC(network interface card) intel

e. Wifi card intel

f. Media penunjang

a. Wireless merk senao SL-2611CB3 (AP mode)

b. Kabel UTP belden cat5

4.2 Karakteristik Pengguna

a. Seseorang yang memiliki minat dalam analisa data jaringan.

Page 99: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

81

b. Seseorang yang memiliki kepentingan di dalam data yang lewat di dalam

jaringan mereka, baik untuk sisi keamanan ataupun sisi yang lain.

Program ini dapat digunakan oleh system administrator atau network

administrator untuk melakukan analisa data ( karena paket yang di ‘capture’

baik http,chat adalah sama) yang membedakan program ini dengan program

sniffing yang lain (mis:tcpdump) adalah hasil output dan filtering nya saja.

4.3 Implementasi Program Sniffing

Dalam implementasi program ini, akan dijelaskan beberapa fungsi-fungsi

utama sehingga program ini dapat melakukan capture paket data yang lewat

di dalam jaringan hingga dapat tertampil di layar maupun dalam bentuk file.

Penulis membagi program ini kedalam beberapa bagian proses, yaitu

• Proses menampilkan menu utama di layar

• Pengecekan device yang tersedia

• Proses pembacaan input

• Proses pengcapturan atau pengambilan data pada jaringan

• Proses menampilkan data hasil pengcapturan ke layar ataupun

dalam bentuk file.

4.3.1 Proses Menampilkan Menu Utama di Layar

Berikut merupakan script program untuk menampilkan menu

utama di layar, disimpan dengan nama intip, terlihat pada listing 4.1.

Page 100: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

82

#!/bin/sh clear pil() { echo "Program sniffing sederhana" echo "by florentina puri cahyani" echo "1.melihat pada interface default tanpa disimpan" echo "2.melihat pada interface default dengan disimpan" echo "3.melihat semua trafic pada interface tanpa disimpan" echo "4.keluar" echo -n "masukkan pilihan:";read pilih case $pilih in 1)tidak;; 2)iya;; 3)semua;; 4)exit;; esac } tidak(){ /home/robby/script/bin/snifit -c -i eth1|grep YMSG pil } iya(){ /home/robby/script/bin/snifit -i eth1|grep YMSG pil } semua(){ /home/robby/script/bin/snifit -c -i eth1 pil } pil exit 0

Listing 4.1. Intip

Penulis menggunakan BOURNE SHELL(/bin/sh) untuk

menampilkan menu utama di layar. Program ini hanya sebagai

program tambahan untuuk tampilan. Tujuan program ini dibuat untuk

memudahkan penginputan data, sehinga pengguna program tidak perlu

menuliskan perintah secara manual untuk mengcapture data dalam

Yahoo Messenger. Pengguna hanya tinggal memanggil script shell

maka akan tertampil menu utama di layar.

Page 101: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

83

Pada shell di atas, di situ menunjukkan fungsi case, dimana

program membaca input dari keyboard dengan ketentuan yang telah

ditentukan, yaitu angka 1,2,3 dan 4. dapat di lihat pada listing 4.2

{

echo -n "masukkan pilihan:";read pilih case $pilih in 1)tidak;; 2)iya;; 3)semua;; 4)exit;; esac }

Listing 4.2. Fungsi Case

Pada statement itu menunjukkan bahwa input data di olah dalam

case, dimana fungsi case tersebut bernama pilih. bila input berada

diluar case, maka program secara otomatis akan berhenti/langsung

keluar.

Statement berikutnya merupakan sederet perintah untuk menjalankan

program snifit tersebut. Dapat dilihat pada potongan listing 4.3. di

bawah ini

tidak(){ /home/robby/script/bin/snifit -c -i eth1|grep YMSG pil } iya(){ /home/robby/script/bin/snifit -i eth1|grep YMSG pil } semua(){ /home/robby/script/bin/snifit -c -i eth1 pil } pil exit 0

Listing 4.3. Perintah Eksekusi Snifit

Page 102: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

84

Dimana input ‘1’ berarti menjalankan program ‘tidak’, dimana ‘tidak’

tersebut berisi sederetan perintah eksekusi program snifit, dengan

option –c yang berarti hanya menampilkan di konsol dengan interface

yang di capture adalah interface eth1 (-i eth1), dengan batasan

protokol Yahoo Messenger (grep YMSG). Dikarenakan progam ini

bila dijalankan secara default akan menyimpan semua yang tercapture

dalam bentuk file, maka bila input angka ‘2’ yang berarti menjalankan

program ‘iya’ dimana ‘iya’ berisi sederetan perintah untuk

menjalankan program snifit secara default dengan batasan protokol

Yahoo Messenger (grep YMSG). Bila input angka ‘3’ berarti

menjalankan program ‘semua’ dimana ‘semua’ itu berisi perintah

menjalankan program snifit secara default tanpa di simpan , dengan

mengcapture semua port. Sedangkan bila input merupakan angka ‘4’

maka program akan melakukan perintah exit atau keluar dari program.

Agar script tersebut dapat langsung di eksekusi, penulis melakukan

perubahan permission access pada script tersebut. Adapun perintah

yang dilakukan dengan perintah :

root@ns1:/home/yeyen# chmod 755 intip

dan untuk menjalankan script tersebut penulis tinggal mengetikkan

root@ns1:~# /home/yeyen/intip

Page 103: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

85

Adapun hasil eksekusi program shell adalah sebagai berikut:

Program sniffing sederhana by florentina puri cahyani 1.melihat pada interface default tanpa disimpan 2.melihat pada interface default dengan disimpan 3.melihat semua trafic pada interface tanpa disimpan 4.keluar Masukkan pilihan:

4.3.2 Pengecekan Device yang Tersedia

Dapat di lihat pada listing program 4.4 di bawah ini

/* melakukan pengecekan root previllege*/

if (infile != NULL) {

setuid(getuid());

/* membuka file capture */

if ((pd = pcap_open_offline(infile, error)) == NULL)

die("%s", error);

/* mencoba mencari network device jika tidak ada device yang

ditunjuk */

if (device == NULL)

if ((device = pcap_lookupdev(error)) == NULL)

die("%s", error);

/* memastikan device dapat di buka */

if ((pd = pcap_open_live(device, SNAPLEN, !no_promisc, 1000,

error)) == NULL)

die("%s", error);

/* menutup root privileges */

setuid(getuid());

/* mengambil handler untuk semacam paket */

dlt = pcap_datalink(pd);

Page 104: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

86

handler = find_handler(dlt, device);

}

Listing 4.4 Pengecekan Device

4.3.3 Proses Pembacaan Penginputan Data pada Program Utama

Pada sub bab ini, penulis akan membahas beberapa fungsi untuk penginputan

data pada program utama. Terlihat pada listing 4.5

#define __MAIN_C__ #include "snifit.h" int debug_level = DEFAULT_DEBUG_LEVEL; int no_promisc = 0; int bytes_per_flow = 0; int max_flows = 0; int max_desired_fds = 0; int console_only = 0; int strip_nonprint = 0; char error[PCAP_ERRBUF_SIZE]; void print_usage(char *progname) { fprintf(stderr, "%s version %s by florentina puri\n\n", PACKAGE, VERSION); fprintf(stderr, "usage: %s [-ch ", progname); fprintf(stderr, " [-i iface][expression]\n\n"); fprintf(stderr, " -c: console print only \n"); fprintf(stderr, " -h: print this help message\n"); fprintf(stderr, " -s: strip non-printable characters (change to '.')\n"); fprintf(stderr, " -i: network interface on which to listen\n"); } RETSIGTYPE terminate(int sig) { DEBUG(1) ("terminating"); exit(0); /* libpcap untuk mengakhiri */ }

Page 105: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

87

int main(int argc, char *argv[]) { extern int optind; extern int opterr; extern int optopt; extern char *optarg; int arg, dlt, user_expression = 0; int need_usage = 0; char *device = NULL; char *infile = NULL; char *expression = NULL; pcap_t *pd; struct bpf_program fcode; pcap_handler handler; init_debug(argv); opterr = 0; while ((arg = getopt(argc, argv, "b:c:hi:s")) != EOF) { switch (arg) { case 'b': if ((bytes_per_flow = atoi(optarg)) < 0) { DEBUG(1) ("warning: invalid value '%s' used with -b ignored", optarg); bytes_per_flow = 0; } else { DEBUG(10) ("capturing max of %d bytes per traffic", bytes_per_flow); } break; case 'c': console_only = 1; DEBUG(10) ("printing packets to console only"); /* fall through */ case 's': strip_nonprint = 1; DEBUG(10) ("converting non-printable characters to '.'"); break; case 'h': print_usage(argv[0]); exit(0); break; case 'i': device = optarg; break; default: DEBUG(1) ("error: unrecognized switch '%c'", optopt); need_usage = 1; break; } } /* mencetak help dan keluar jika terdapat kesalahan dalam argumen */

Page 106: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

88

if (need_usage) { print_usage(argv[0]); exit(1); }

Listing 4.5 Penginputan Data

Untuk mendefinisikan nilai-nilai konstan adalah dengan menggunakan kata

kunci case. Dalam melakukan pemilihan dengan menggunakan statement

switch,harus menambahkan statement break pada setiap nilai yang kita

definisikan.

Dimana ‘c’ mengartikan bahwa console_only diaktifkan, karena secara

default program nilai console_only adalah ‘0’(int console_only = 0;) yang

berarti tidak diaktifkan.

Sedangkan ‘i’ mengartikan interface yang dipergunakan. Secara default

interface bernilai null (char *device = NULL;) sedangkan nilai ‘s’ berarti

akan merubah karakter yang tidak terdefinisi ke dalam bentuk titik(.) dengan

merubah nilai strip_nonprint menjadi 1 (strip_nonprint = 1). Dapat dilihat

pada listing program 4.6 dibawah ini:

/* merubah semua karakter yang tidak terdifinisi ke karakter (.)*/ u_char *do_strip_nonprint(const u_char *data, u_int32_t length) { static u_char buf[SNAPLEN]; u_char *write_ptr; write_ptr = buf; while (length) { if (isprint(*data) || (*data == '\n') || (*data == '\r')) *write_ptr = *data; else *write_ptr = '.';

Page 107: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

89

write_ptr++; data++; length--;

}

Listing 4.6. Konversi Karakter Titik (.)

Nilai ‘h’ menunjukkan akan ditampilkannya help penggunaan program ini.

Sedangkan bila input yang dimasukkan bernilai salah atau di luar yang telah

di tentukan, maka program akan keluar dan sekaligus menampilkan help

atau cara penggunaan dari program ini. Terlihat pada listing 4.7 :

……..

if (need_usage) {

print_usage(argv[0]);

exit(1);

………

Listing 4.7 Menampilkan Help

4.3.4 Proses Pengcapturan Data

Dapat di lihat pada listening program di bawah ini;

Program akan meng-capture data chatting pada device. Dalam

implementasinya adalah eth1. jika infile==NULL maka akan melakukan

listening pada device.

Terlihat pada listing 4.8:

/* start listening! */

Page 108: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

90

if (infile == NULL)

DEBUG(1) ("listening on %s", device);

if (pcap_loop(pd, -1, handler, NULL) < 0)

die("%s", pcap_geterr(pd));

return 0;

Listing 4.8 Start Listening Device

Jika terdapat data yang masuk, dan diterima sebagai IP datagram, maka akan

menjalankan program di bawah ini, listing 4.9,

void process_ip(const u_char *data, u_int32_t caplen) { const struct ip *ip_header = (struct ip *) data; u_int ip_header_len; u_int ip_total_len; /* memastikan bahwa paket memiliki panjang paket minimal IP header */ if (caplen < sizeof(struct ip)) { DEBUG(6) ("received truncated IP datagram!"); return; } /* memantau traffic di TCP */ if (ip_header->ip_p != IPPROTO_TCP) { DEBUG(50) ("got non-TCP frame -- IP proto %d", ip_header->ip_p); return; } /* melakukan cek dan melihat data yang lewat. Disini harus menggunakan ip_total_len karena kita mungkin membutuhkan pengcapturan byte untuk melakukan pengukuran besaran paket */ ip_total_len = ntohs(ip_header->ip_len); if (caplen < ip_total_len) { DEBUG(6) ("warning: captured only %ld bytes of %ld-byte IP datagram", (long) caplen, (long) ip_total_len); } /* menampilkan keluaran dimana IP header berakhir */ ip_header_len = ip_header->ip_hl * 4; /* melakukan pengecekan bahwa memang ada data */

Page 109: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

91

if (ip_header_len > ip_total_len) { DEBUG(6) ("received truncated IP datagram!"); return; } /* TCP processing */ process_tcp(data + ip_header_len, ip_total_len - ip_header_len, ntohl(ip_header->ip_src.s_addr), ntohl(ip_header->ip_dst.s_addr));

}

Listing 4.9. Prose IP dan TCP

Untuk melakukan pembedaan paket atau identifikasi alur(flow) tersebut adalah

paket yang masuk atau yang keluar dari jaringan, maka perlu dibuat struktur

flow_t seperti listing program 4.10 di bawah ini:

……………… this_flow.src = src; this_flow.dst = dst; this_flow.sport = ntohs(tcp_header->th_sport); this_flow.dport = ntohs(tcp_header->th_dport); seq = ntohl(tcp_header->th_seq);

Listing 4.10 Struktur Flow

4.3.5 Menampilkan Data ke Layar ataupun dalam Bentuk File

Pada sub bab ini penulis akan menjelaskan bagaimana proses dilakukannya

dari proses diatas, yaitu melakukan pengcapturan, yang kemudian hasil dari

pengcapturan tersebut ditampilkan ke dalam layar atau konsol, maupun

ditampilkan kedalam bentuk file atau disimpan.

Page 110: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

92

Untuk menampilkan isi dari hasil capture kedalam konsol, dapat di lihat pada

listing program 4.11 di bawah ini:

void print_packet(flow_t flow, const u_char *data, u_int32_t length) { printf("%s: ", flow_filename(flow)); fwrite(data, length, 1, stdout); putchar('\n'); fflush(stdout); }

Listing 4.11. Print Paket

Sedangkan untuk melakukan penyimpanan hasil capture ke dalam bentuk file,

penulis melakukan beberapa tahapan, dapat di lihat pada listing program 4.12

di bawah ini:

/* menyimpan isi dari paket ke dalam suatu tempat dalam bentuk file*/ void store_packet(flow_t flow, const u_char *data, u_int32_t length, u_int32_t seq) { flow_state_t *state; tcp_seq offset; long fpos; /* melihat jika kita telah memiliki state mengenai alur ini, jika tidak ada maka dibuat state */ if ((state = find_flow_state(flow)) == NULL) { state = create_flow_state(flow, seq); } /* jika telah selesai mengumpulkan flow, maka ulangi kembali dari awal*/ if (IS_SET(state->flags, FLOW_FINISHED)) return; /* melakukan kalkulasi offset di dalam flow akan mengendalikan seq num * wrapping dengan tepat karena tcp_seq merupakan ukuran yang benar */ offset = seq - state->isn; /* menentukan maksimal besaran setiap file sebesar 64K*/

Page 111: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

93

if (offset >= 0xffff0000) { DEBUG(2) ("dropped packet with seq < isn on %s", flow_filename(flow)); return; } /* menolak paket jika paket diluar range byte yang kita tentukan untuk menerima paket */ if (bytes_per_flow && (offset > bytes_per_flow)) return; /* mengurangi jarak jika itu berjalan diluar nomer dari bytes per flow */ if (bytes_per_flow && (offset + length > bytes_per_flow)) { SET_BIT(state->flags, FLOW_FINISHED); length = bytes_per_flow - offset; } /* jika tujuan dari file tidak benar maka dapat mencoba disana*/ if (offset != state->pos) { fpos = offset; FSETPOS(state->fp, &fpos); } /* menulis data kedalam file*/ DEBUG(25) ("%s: writing %ld bytes @%ld", flow_filename(state->flow), (long) length, (long) offset); if (fwrite(data, length, 1, state->fp) != 1) { /* DEBUG statement itu menggunakan passes strerrror() sebagai argumen, tetapi SunOS 4.1.3 kelihatannya tidak mempunyai strerror. */ if (debug_level >= 1) { DEBUG(1) ("write to %s failed: ", flow_filename(state->flow)); perror(""); } } fflush(state->fp); /* mengingat posisi terakhir, untuk melakukan penulisan selanjutnya*/ state->pos = offset + length; if (IS_SET(state->flags, FLOW_FINISHED)) { DEBUG(5) ("%s: stopping capture", flow_filename(state->flow)); close_file(state); }

Listing 4.12 Store Paket

Page 112: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

94

4.4 Implementasi Jaringan

Pada tahap ini menjelaskan implementasi jaringan untuk melakukan uji coba

program sniffing. Terlihat pada gambar 4.1:

Laptop windows XP10.10.10.2

Laptop windows XP

Server linux slackware10.10.10.1

Router utamaAP hotspot

10.10.10.0/24

192.168.0.0/24

192.168.10.0/24

100.100.10.0/24

ISP

58.145.171.23

Gambar 4.1 Konfigurasi Jaringan

4.5 Proses Kompilasi Program

Pada sub bab kali ini penulis akan menjelaskan proses kompilasi program.

Dikarenakan program ini memiliki beberapa fungsi, dimana tiap-tiap fungsi

dibuat dengan nama file yang berbeda-beda, maka penulis dalam melakukan

kompilasi menggunakan source code kompilasi yang banyak digunakan pada

program-program GNU GPL.

Source code yang penulis ambil adalah file Makefile, Makefile.am,

Makefile.in yang berfungsi sebagai program untuk membuat secara otomatis

Page 113: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

95

file make, merubah file *.c menjadi *.o. atau bila dibuat secara manual

penulisannya seperti #gcc –o tcpip.o tcp.c snifit.h conf.h sysdep.h

Yang berarti untuk membuat file tcpip.o merupakan hasil dari gabungan

beberapa program.

Disamping source Makefile, penulis juga mengambil source code configure,

acconfig.h, acinclude.m4, aclocal.m4 dimana configure merupakan source

code untuk melakukan konfigurasi awal program, dimana dalam konfigurasi

awal tersebut dilakukan pengecekan file-file atau library yang dibutuhkan

oleh program snifit, misalnya pengecekan file libpcap.

Dikarenakan penulis melakukan beberapa pengambilan source code dari

GNU GPL, maka disertakan pula lisensi dari GPL yang penulis ambil dalam

bentuk file COPYING.

Untuk melakukan instalasi program ini, pertama kali penulis melakukan

konfigurasi program dengan sistem dengan peletakan program tersebut

nantinya berada pada folder /home/robby/script/.

# configure --prefix=/home/robby/script/

Dalam gambar di bawah terlihat isi file sebelum dilakukan konfigurasi dan

setelah dilakukan konfigurasi

Sebelum dilakukan konfigurasi terlihat pada gambar 4.2:

Page 114: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

96

Gambar 4.2. Sebelum dilakukan Konfigurasi

Page 115: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

97

Setelah dilakukan konfigurasi terlihat pada gambar 4.3 :

Gambar 4.3. Setelah dilakukan Konfigurasi

Dalam gambar di atas dapat dilihat beberapa penambahan file berekstensi .o

Setelah melakukan konfigurasi, penulis melakukan kompilasi dan instalasi

#make

#make install

Lalu membuka folder /home/robby/script/

Page 116: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

98

Di situ terdapat dua folder tambahan yaitu folder /bin/ dan folder /man/ dapat

di lihat pada gambar di bawah ini:

Dikarenakan hasil dari instalasi program ini under text, yang dalam

pengertiannya bila penulis menjalankan program harus dengan sederet

perintah, maka penulis mencoba untuk menyederhanakan sehingga hanya

dengan menekan tombol tertentu sudah mewakili perintah yang di sebut di

atas. Untuk lebih jelasnya, akan di bahas pada Bab V.

4.6 Penggunaan Program Sniffing

Program ini merupakan program berbasis linux, dan dalam penerapannya,

program ini melakukan perekaman traffic pada jaringan, termasuk salah

satunya perekaman paket data Yahoo Messenger. Dalam implementasi ke

dalam jaringan, pengguna meletakkan program sniffing pada komputer server

berbasis linux slackware. Data yang tercapture hanya data chatting Yahoo

Messenger yang terdapat pada satu jaringan saja. Pengguna menggunakan

komputer klien untuk uji coba program( sebagai korban), dalam hal ini

komputer klien yang digunakan adalah komputer berbasis windows xp.

Page 117: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

99

BAB V

ANALISIS HASIL

5.1 Hasil uji coba program

Untuk mengetahui hasil kerja dari perangkat lunak ini secara rinci serta

untuk mengetahui tingkat keberhasilan penggunaannya, maka telah diuji

cobakan penerapannya secara langsung pada suatu area jaringan komputer

lokal di rumah tinggal dari penulis. Dengan melakukan pemantauan dari 1

komputer yang diposisikan sebagai server dan melakukan inisialisasi 1 laptop

client sebagai korban. Adapun hasil eksekusi program shell adalah sebagai

berikut, terlihat pada gambar 5.1 :

Gambar 5.1 Tampilan awal

Dalam output diatas pengguna diberikan pilihan untuk dapat menetukan

sendiri pilihan 1,2,3,atau 4. Dimana pengguna hanya tinggal mengetikan saja

Page 118: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

100

angka pilihan tersebut, maka akan tertampil output sesuai keterangan tiap-tiap

angka. Program shell sederhana ini sangat membantu pengguna dalam

menjalankan program, karena pengguna tidak perlu mengetikkan perintah

secara manual untuk mengeksekusi program.

Pada saat pengguna memilih pilihan 1 maka akan menghasilkan output

sebagai berikut, terlihat pada gambar 5.2 :

Gambar 5.2. Output hanya ditampilkan di konsol

Dalam tampilan output diatas, meng-capture data dalam Yahoo Messenger

yang terdapat dalam satu jaringan. Output yang tertampil hanya terbatas IP, user

ID, dan pesan yang terdapat dalam chatting. Selain itu data yang lewat akan

dikonversi sebagai karakter titik(.). Dalam hasil diatas protokol YMSG yang ter-

Page 119: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

101

capture adalah 5050. Dalam pengujian yang melakukan aktivitas chatting adalah

flo_cute_blue dengan iyus_slam.

Dimana :

Id flo_cute_blue memiliki IP address 10.10.10.2

Id iyus_slam memiliki IP address 68.180.217.13 dengan protocol

YMSG 5050

Isi data chatting diantaranya adalah “coba km ketik kalimat rada

panjang”

Pada saat pengguna memilih pilihan 2 maka akan menghasilkan output yang

terlihat pada gambar 5.3 dan gambar 5.4 :

Sebelum dieksekusi terlihat pada gambar 5.3:

Gambar 5.3. sebelum dieksekusi

Page 120: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

102

Setelah dieksekusi pada gambar 5.4:

Gambar 5.4. Setelah dieksekusi

File yang tersimpan berada pada directory kerja pada saat penulis

menjalankan program tersebut. Seperti gambar 5.4 di atas, karena penulis

menjalankan program snifit pada directory kerja /home/yeyen/, maka hasil output

yang disimpan dalam bentuk file berada pada directory /home/yeyen/.

Nama file yang disimpan dalam bentuk IP. Adapun urutan penulisannya

adalah [IP asal]:[port asal]:[ip tujuan]:[port tujuan]. File yang tersimpan

merupakan file universal, yang dimaksud universal di sini adalah, file yang dapat

dibuka menggunakan editor apapun di dalam linux. Penulis mencoba membuka

file hasil pengcapturan menggunakan editor vi, mcedit, maupun cat tetap dapat

dibaca. Dari hasil data yang tersimpan tersebut yang merupakan hasil capture

Yahoo Messenger adalah dengan protokol 5050.

Page 121: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

103

Melihat isi hasil simpan file pada gambar 5.5.

Gambar 5.5 Isi hasil simpan file dilihat menggunakan mc

Page 122: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

104

Pada saat pengguna memilih pilihan 3 maka akan menghasilkan output sebagai

berikut, terlihat pada gambar 5.6.

Gambar 5.6. Trafick pada Interface

5.2 Kelebihan dan Kekurangan Program

Setelah melakukan uji coba program dalam jaringan yang sudah dibuat, maka

program sniffing ini mempunyai beberapa kelemahan dan kelebihan.

5.2.1 Kelebihan

Beberapa kelebihan program sniffing ini adalah :

1. Mampu meng-capture data yang dikirim maupun yang diterima

oleh client dalam aktivitas chatting Yahoo Messenger.

2. File yang tersimpan disimpan menurut alamat IP dan port masing-

masing client sehingga memudahkan dalam melakukan pencarian.

Page 123: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

105

3. untuk memudahkan pembacaan hasil dari sniffing, data yang tidak

terdefinisi di ubah menjadi nilai nol, dengan di konversi ke bentuk

titik(.)

4. program dapat dikembangkan menjadi sniffing seluruh paket data

yang lewat dalam jaringan, karena secara default program ini

melakukan pencacatan data yang lewat, dan melakukan filtering

protocol YMSG sehingga data yang ditampikan merupakan data

yahoo messenger.

5.2.2 Kelemahan

Beberapa kelemahan program sniffing ini adalah :

1. Program tidak berdiri sendiri, saling ketergantungan satu program

dengan yang lainnya, dan ketergantungan dengan paket-paket yang

terdapat di linux. Salah satu contohnya, program dapat di

konfigurasi, di compile dan di install bila dalam sistem memiliki

fungsi pcap dan librarynya.

2. Program hanya dapat berjalan pada satu interface. Dengan asumsi

satu interface terdiri dari satu jaringan(satu network). Dapat

melakukan sniffing pada 2-3 network, bila network tersebut berada

dalam satu interface(NIC).

3. Hanya dapat meng-capture IP asal,IP tujuan serta ID asal,ID tujuan

dan data percakapan yang terjadi, tidak dapat membaca data yang

terenskripsi.

Page 124: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

106

5.3 Analisis Bahasa Pemrograman

Penulis menggunakan 2 bahasa pemrograman dalam membuat program

sniffing ini.

1. Yang pertama, penulis menggunakan BOURNE SHELL(/bin/sh) untuk

menampilkan menu utama di layar. Karena bertingkah laku seperti

interpreter maka statement yang ada pada script akan langsung di

translasikan pada instruksi executable dan menyebabkannya untuk

langsung menjalankan executable tersebut. Setelah menulis shell script,

maka akan memberitahukan pada OS bahwa program dapat dijalankan.

Hal ini dapat dilakukan dengan menggunakan perintah chmod untuk

merubah mode dari file.

2. Yang kedua, penulis menggunakan bahasa pemrograman C.

Bahasa C adalah bahasa pemrograman yang sangat cocok untuk dipelajari

bagi yang ingin mengetahui lebih dalam tentang Linux dan Sistem Operasi

Unix lainnya yang sebagian besar dibuat dengan bahasa C. Linux sendiri

merupakan sistem operasi yang langsung menyediakan bahasa

pemrograman C pada saat instalasi.

Page 125: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

107

BAB VI

KESIMPULAN DAN SARAN

Pada akhir penulisan skripsi ini dicantumkan beberapa kesimpulan dan saran

dari hal-hal yang terkait dengan program sniffing yang penulis buat.

6.1 Kesimpulan

Dari implementasi pembuatan program sniffing, maka dari hasil uji coba dapat

disimpulkan bahwa:

1. Program sniffing dapat merekam data chatting Yahoo Messenger

dalam satu interface.

2. Program sniffing dapat menyimpan hasil capture berdasarkan nomor

IP.

3. Program sniffing dapat meng-capture dapat merekam aktivitas

chatting mulai dari ID asal dan ID tujuan, IP asal dan IP tujuan, data

percakapan dari kedua belah pihak, selama data tersebut tidak

terenskripsi.

4. Program ini dapat digunakan untuk kepentingan penelusuran apabila

terjadi tindak kejahatan yang dikomunikasikan melalui media

chatting, dalam hal ini Yahoo Messenger.

Page 126: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

108

6.2 Saran

Saran yang dapat diberikan penulis dalam pengembangan program sniffing ini

adalah sebagai berikut :

1. Penyimpanan hasil capture data sebaiknya disimpan lebih terstruktur agar

memudahkan bagi pengguna untuk mencari.

2. Pada hasil capture pada konsol sebelum proses simpan, sebaiknya

dibedakan dengan warna antara mana IP, mana ID, atau data percakapan.

Sehingga lebih memudahkan dalam pembacaan.

3. Penyimpanan hasil capture paket dapat dikembangkan dengan

menggunakan database seperti MySQL, SQL server, atau database lainnya

agar hasil capture paket dapat terorganisir dengan lebih baik.

Page 127: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

DAFTAR PUSTAKA

Hari Sudibyo, Mandahadi, Langkah Mudah: Menguasai Linux Slackware 10,

Penerbit Andi, Yogyakarta, 2005.

Yuliardi, Rofiq, Buku Pintar Linux: BASH Scripting untuk Administrasi Sistem

Linux, PT Elex Media Komputindo, Jakarta, 2003.

I Made Joni, Budi Raharjo, Pemrograman C dan Impelementasinya, Informatika

Bandung, Bandung, 2006.

Kadir, Abdul, Pengenalan Unix dan Linux, Penerbit Andi, Yogyakarta, 2002.

Jhony H. Sembiring, Jaringan Komputer Berbasis Linux, PT Elex Media

Komputindo, Jakarta, 2001

Garcia, Jess, LinuxForensicsTools,

http://www.lnx4n6.be/index.php?sec=Documentation&page=bootcdconte

nt

Paul, Ryan, Monitoring Network Traffic with Ruby and Pcap,

http://arstechnica.com/open-source/news/2005/10/linux-20051002.ars

Gonzato, Guido, From DOS to Linux,

http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/id/other-

formats/html/ID-DOS-TO-LINUX-HOWTO-7.html

www.apjii.or.id/dokumentasi/peraturan/PP_52_2000.htm

http://en.wikipedia.org/wiki/Carnivore_(FBI)

www.tcpdump.org/

Page 128: Analisa Perekaman Data Chatting dalam Yahoo Messenger YM

www.snort.org

http://www.geocities.com/indoprog/tutorial/linux/osi.html

http://www.venkydude.com/articles/yahoo.htm http://libyahoo2.sourceforge.net/ymsg-9.txt