16
Mar
10

Tugas Keamanan Informasi : Self-generating Code

Bismillah,

Pada postingan kali ini, kembali ditujukan untuk pengerjaan tugas kuliah Keamanan Informasi. Pada tugas kali ini, deskripsinya adalah sebagai berikut:

Tugas Anda adalah membuat self-generating code seperti yang ada di paper Ken Thompson, Reflections on Trusting Trust. Bahasa pemrograman bebas.

Untuk pengerjaan tugas ini saya akan mencoba menulis Self-generating Code menggunakan bahasa perl.kodenya kurang lebih sebagai berikut:

#!/usr/local/bin/perl
$a='#!/usr/local/bin/perl%c$a=%c%s%c;printf($a,10,39,$a,39,10);%c';printf($a,10,39,$a,39,10);

Langsung saja penjelasan dimulai dari instruksi terakhir, yaitu printf($a,10,39,$a,39,10);. Perintah ini mencetak argumen kedua dan seterusnya menggunakan format yang didapat dari argumen pertama yang berupa sebuah string. Pada contoh ini, format yang digunakan berasal dari variabel string $a, yaitu

'#!/usr/local/bin/perl%c$a=%c%s%c;printf($a,10,39,$a,39,10);%c'

. Dengan printf(), substring-substring %c selanjutnya digantikan oleh argumen yang bersesuaian dalam format karakter, sedangkan %s dengan format string. Dengan demikian, setiap %c dalam variabel $a akan digantikan oleh karakter yang memiliki kode ascii bersesuaian dengan 39 dan 10, dan %s akan digantikan oleh isi dari variabel $a itu sendiri.Maka output program di atas adalah:

#!/usr/local/bin/perl
$a=’#!/usr/local/bin/perl%c$a=%c%s%c;printf($a,10,39,$a,39,10);%c’;printf($a,10,39,$a,39,10);

yang menghasilkan dengan kode awal.

sekian postingan kali ini.


0 Tanggapan ke “Tugas Keamanan Informasi : Self-generating Code”



  1. Tinggalkan sebuah Komentar

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s


Ikuti

Get every new post delivered to your Inbox.