Selamat Siang Teman-Teman 😀
Kembali lagi kita bertemu di sesi tulis menulis siang kali ini. Setelah lama tak berjumpa karena harus kejar-mengejar dedlen serta pertapaan mencari suatu hal yang berbeda dari biasanya, akhirnya dapat waktu luang juga untuk nulis (koyo sibuk-sibuk o wae)..
Yak,untuk kali ini saya akan membahas tentang bagaimana caranya memproteksi atau lebih tepatnya ngompile bash script yang kita buat sehingga isi script yang kita buat tidak terbaca oleh para pengguna. Walau saya lebih senang terhadap opensource, tapi ya, posting ini dibuat untuk sekedar pembelajaran aja sih :p
Berawal dari pembicaraan dengan seorang teman yang ngompile source code yang dibuatnya (python) jadi biner, saya jadi tertarik untuk nyari-nyarigimana caranya ngompile bash script yang biasa saya buat menjadi sesuatu yang tidak terbaca. Dan ditemukanlah sebuah aplikasi yang membuat itu menjadi mungkin, yang bernama shc, yaitu software untuk mengompilasi sebuah bash script menjadi bentuk biner. Selain itu ada juga output yang berupa bahasa C dari bash script yang kita buat. Yah, tidak jauh-jauh dari C dan assembly juga sih kalo berhubungan sama biner 😀
Untuk detil pemakaiannya bisa dilihat pada helpnya, istilahnya ya yang biasa disebut-sebut orang dengan Read The Fuckin’ Manual, biar lebih mantep belajarnya. Untuk contohnya,kita coba buat satu bash script bernama script.sh
#!/bin/bash
for i in `seq 1 10`
do
echo $i
done
fungsi script itu cuma buat menampilkan angka 1-10 aja koq,nothing special (namanya juga cuma contoh :p). Sekarang kita coba compile jadi biner pake shc tadi.
root@gate-linx:/data/linx/coba# shc -r -f script.sh
root@gate-linx:/data/linx/coba# ls -l
total 25
-rwxrwxrwx 1 root root   50 2011-05-19 14:20 script.sh
-rwxrwxrwx 1 root root 10372 2011-05-19 14:21 script.sh.x
-rwxrwxrwx 1 root root 9706 2011-05-19 14:21 script.sh.x.c
nah,akan terlihat 2 file lain yang berakhiran .x dan .x.c , yang mana yang .x itu adalah file binernya, sedangkan yang .x.c itu adalah source code C. Saya memakai ‘-r’ agar hasil binernya dapat didistribusikan kembali (redistributable), sehingga dapat dipakai di distro linux apa saja (Saya membuat di distro ubuntu dan saya coba di slackware, file biner masih dapat tereksekusi).
root@gate-linx:/data/linx/coba# ./script.sh.x
1
2
3
4
5
6
7
8
9
10
Yaph, mungkin untuk kesempatan kali ini, itu dulu yang bisa saya bagikan ke teman-teman, untuk kekurangan dari si newbie ini, saya mohon maaf, dan untuk perhatian, saran dan kritiknya, saya ucapkan terima kasih 😀