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.