Tugas 6 Kuliah KI – Steganography

Coba anda cari pesan tersembunyi pada gambar di sini. Tidak ada password dalam pemecahannya. 😀

Jawaban bisa dilihat di sini.

Advertisements

Tugas 5 Kuliah KI – Self Replicating Code

Tugas ini berisi tentang bagaimana membuat program yang akan memberitahukan isi source codenya sendiri secara lengkap. Program semacam ini biasa disebut juga quine. Informasi tentang quine bisa ditemui pada halaman wikipedia berikut, http://en.wikipedia.org/wiki/Quine_(computing).

Di sini, penulis akan mencoba mengaplikasikan quine dengan kode pembatas “Dor”. Pertama, duplikat program ditulis pada array karakter seperti biasa. Lalu, pada bagian yang akan diisi oleh dirinya sendiri, kita bisa memberikan kode pembatas.

void replicate(const char *s) {
int i;
for (i=0; s[i]; ++i) {
if (s[i] == ‘\n’)
printf(“\\n”);
else if (s[i] == ‘\t’)
printf(“\\t”);
else
printf(“%c”,s[i]);
}
}

int main() {
const char source[] = “void replicate(const char *s) {\n\tint i;\n\tfor (i=0; s[i]; ++i) {\n\t\tif (s[i] == ‘\n’)\n\t\t\tprintf(\”\\n\”);\n\t\telse if (s[i] == ‘\t’)\n\t\t\tprintf(\”\\t\”);\n\t\telse\n\t\t\tprintf(\”%c\”,s[i]);\n\t}\n}\n\nint main() {\n\tconst char source[] = \”Dor\”;\n\tint i;\n\tfor (i=0; source[i]; ++i) {\n\t\tif (source[i]==’D’ && source[i+1]==’o’ && source[i+2]==’r’)\n\t\t\treplicate(source);\n\t\telse\n\t\t\tprintf(\”%c\”,source[i]);\n\t}\n}\n”;
int i;
for (i=0; source[i]; ++i) {
if (source[i]==’D’ && source[i+1]==’o’ && source[i+2]==’r’)
replicate(source);
else
printf(“%c”,source[i]);
}
}

Quine Result

Quine Result

Secara garis besar, kita cukup membuat program yang akan menuliskan seluruh isi karakter array berisi script program. Kemudian jika pembacaan isi array ditemukan kode pembatas, dalam program ini “Dor”, maka program akan menulis ulang seluruh isi array karakter apa adanya tanpa perlu mengkhawatirkan adanya kode pembatas “Dor” lagi.

Tugas 4 Kuliah KI – Anatomi E-Mail

Pertama-tama, saya mencoba mengirimkan sebuah e-mail dari account saya di yahoo ke account saya di gmail. E-mail saya attach dengan 2 macam file.

File 1
Nama : Test.txt
Isi : Hello world!

File 2
Nama : Button_hide.png
Isi :

Kemudian saya coba baca imel saya lewat opera mail client.

Dan berikut adalah isi imel yang saya dapatkan.

Header

From agi_kakkoii@yahoo.com Fri Mar 12 01:40:02 2010 162
X-Opera-Status: 0500000000000000a24b999b7200000ef408020c8000000ec60000000000000002000000000000000000000000000000210000000000000000
X-Opera-Location: [Gmail]/&MFkweTBmMG4w4TD8MOs-:124
Delivered-To: agiprasetiadi@gmail.com
Received: by 10.216.47.136 with SMTP id t8cs142006web; Thu, 11 Mar 2010
17:39:58 -0800 (PST)
Received: by 10.114.162.40 with SMTP id k40mr1890438wae.99.1268357997778; Thu,
11 Mar 2010 17:39:57 -0800 (PST)
Return-path: <agi_kakkoii@yahoo.com>
Received: from web110602.mail.gq1.yahoo.com (web110602.mail.gq1.yahoo.com
[67.195.13.193]) by mx.google.com with SMTP id
10si1169517pzk.113.2010.03.11.17.39.56; Thu, 11 Mar 2010 17:39:56 -0800 (PST)
Received-SPF: pass (google.com: domain of agi_kakkoii@yahoo.com designates 67.195.13.193 as permitted sender) client-ip=67.195.13.193;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of agi_kakkoii@yahoo.com designates 67.195.13.193 as permitted sender) smtp.mail=agi_kakkoii@yahoo.com; dkim=pass (test mode) header.i=@yahoo.com
Received: (qmail 10693 invoked by uid 60001); 12 Mar 2010 01:39:56 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1268357996; bh=scaQPG4YK9yEccO7V2YY8ovN+r91Qwe3T6CjuCeplzo=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=S0gzfa0Xx9a3Krn/yctL8DTPWeqdbVc8LRXSgGzFB074hoFQn+i2HcVHo25pUKGdnKjaurwaH5Ix5NlEvtO0IxhIMnGbJ6XCMHixg6k7dVPD1U0SBof267O7ck9UTK8hw2ZHaDp28rScJWmzeHnLvbkg+ifETW7B4tYIUO9LXlI=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=ntzGCSuwb/rYLoMiHOiMwUndJ3GjS2nQkk/LnXHYCWDTt/uXaRnlj3KrQKWRXYcd9+iZYMjY33RiX5p4X0S9bX5IcpuDTUjHWlTAIIxwIbTxMYLY5Z1kpBtlMI8lMeB/7WM5Xwvdag20T7VgM1wPXWWt+2zv5Dglq9OqSqVOZiQ=;
Message-ID: <60989.9439.qm@web110602.mail.gq1.yahoo.com>
X-YMail-OSG: p3.1Z8YVM1lP.HDfFZJBjmx_Mw5XvpxZTUw4NZI7qST9buw J2KaY1mpCjai30cjAlEcnbEtT5S7ohl1q9_Wp.F6Rlc_VUc4GnO0adn9KTfI j7Uck3PjjzI25g3F0yCPw07OF1iiOgeXZjUPLVJXQr8bR7YrApdpfwDSFs0B PtiqR.qy_B4V8rmDTM85jRzP_ChH02x7mb4EpSkgceYL35eUuNJG0M8wgQsH 4CSgrVt7NKh5OxiMvFxGl3_wZTbUFd1WMhUlDYzPQmubVWCX_ZR6rog–
Received: from [203.148.84.125] by web110602.mail.gq1.yahoo.com via HTTP; Thu,
11 Mar 2010 17:39:56 PST
X-Mailer: YahooMailClassic/9.2.12 YahooMailWebService/0.8.100.260964
Date: Fri, 12 Mar 2010 08:39:56 +0700
From: “Agi Prasetiadi” <agi_kakkoii@yahoo.com>
Subject: Anatoni e-mail
To: agiprasetiadi@gmail.com
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=”0-1035877720-1268357996=:9439″

–0-1035877720-1268357996=:9439
Content-Type: multipart/alternative; boundary=”0-568047514-1268357996=:9439″

–0-568047514-1268357996=:9439

Ini adalah bagian merekam jejak trace bagaimana e-mail dikirim dan diterima sepanjang perjalanannya. Atau secara singkatnya, pada bagian ini alamat pengirim dan penerima dicatat di sini.

Body

Content-Type: text/plain; charset=us-ascii

hai~ ini test untuk melihat anatomi imel saya.

–0-568047514-1268357996=:9439
Content-Type: text/html; charset=us-ascii

<table cellspacing=”0″ cellpadding=”0″ border=”0″ ><tr><td valign=”top” style=”font: inherit;”><br>hai~ ini test untuk melihat anatomi imel saya.<br></td></tr></table><br>

–0-568047514-1268357996=:9439–

Ini adalah bagian di mana isi e-mail ditulis.

Attachment 1

–0-1035877720-1268357996=:9439
Content-Type: text/plain; name=”Test.txt”
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=”Test.txt”

SGVsbG8gd29ybGQh

Ini adalah file Test.txt yang berisi Hello world tadi. File diencode dengan metode base64 agar file tidak bisa dibaca dengan mudah ketika disadap.

Attachment 2

–0-1035877720-1268357996=:9439
Content-Type: image/png; name=”Button_hide.png”
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=”Button_hide.png”

iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c
6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0
SU1FB9gGEA4jO+jcJZIAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRo
ZSBHSU1Q72QlbgAAAHRJREFUOMutlDsOwCAMQ18sLsf9D0SXTi0Q88mCkC0T
OwoBNM4rCkBr+1oRAVDFpSoddUZdznAlLQ/v35LhPxX5CWV2Zjw5JAfXCnn2
iJygncC1Qp7h2gm2x5MTrLNCcqeTiZUbo0+tLS+tswLpd/Ke9VToATVrMbpI
inv6AAAAAElFTkSuQmCC

–0-1035877720-1268357996=:9439–

Dan ini adalah bagian e-mail yang menyimpan file png tadi. Satu hal yang mencolok di sini, png yang dikodekan dalam biner 8-bit menjadi sebuah pesan ASCII 7-bit seperti ini. Dengan kata lain, pada sistem e-mail, pengiriman dilakukan dalam ASCII, bukan dalam mode char 8-bit. Encoder dan decoder untuk merubah antara format char 8-bit dan ASCII 7-bit seharusnya dimiliki oleh hampir semua e-mail client standar.

Selain itu terdapat juga parser code untuk e-mail ini. –0-568047514-1268357996=:9439– digunakan sebagi pembatas header-body-attachment. Adapun –0-1035877720-1268357996=:9439 digunakan sebagai pembatas komponen-komponen yang lebih kecil yang berada pada header-body-attachment.

Sekian laporan saya. Terima kasih.

Tugas 3 Kuliah KI – DNS (Domain Name System)

1. Pertama, saya mencoba menggunakan tools online yang ada di internet, yaitu menggunakan http://whois.domaintools.com/. Di sana saya masukkan detik.com, dan inilah biografi dari detik.com yang berhasil saya tangkap.

Adapun ketika menggunakan, nslookup saya hanya mendapatkan data sebagai berikut

> nslookup detik.com
Server: ns.comlabs.ITB.ac.id
Address: 167.205.79.4

Non-authoritative answer:
Name: detik.com
Addresses: 203.190.242.69
203.190.241.43

2. Adapun untuk mencari 4 level domain di seluruh itb, saya tidak berhasil mencari secara eksak. Yang ditemukan malah 4 level domain ke atas di seluruh itb. Adapun tools menggunakan host biasa, dengan DNS any cast ITB 167.205.30.5.

> host -l itb.ac.id 167.205.30.5 | wc
847

Dengan kata lain, ditemukan sekitar 847 domain dengan 4 level ke atas di seluruh ITB yang aktif saat ini.