Shc İle Bash Shell Script Şifreleme
SHC, binary formatında scriptlerinizi şifrelemeye yarayan bir programcık. Yazdığınız bash scriptleri şifreleyerek kodların okunamamasını sağlayabilirsiniz.
SHC’nin kurulumuna bakacak olursak,
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
# tar -xvf shc-3.8.9.tgz
# cd shc-3.8.9
# make
SHC kullanımı;
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
Basit bir script oluşturarak shc ile scripti şifreleyelim,
#!/bin/bash
echo -n "İsminiz nedir?: "
read name
echo "Merhaba $name"
# ./shc -f merhaba.sh
[root@test bash]# ls -l merhaba.sh*
-rw-r--r--. 1 root root 73 Feb 10 23:38 merhaba.sh
-rwx--x--x. 1 root root 11600 Feb 10 23:21 merhaba.sh.x
-rw-r--r--. 1 root root 9485 Feb 10 23:21 merhaba.sh.x.c
- merhaba.sh : Şifrelenmemiş shell script
- merhaba.sh.x : Binary formatında şifrelenmiş shell script
- merhaba.sh.x.c : Shell scriptin c formatına çevrilmiş hali.
SHC programını çalıştırdığınızda “merhaba.sh” shell scriptini okuyarak ilk önce C formatında “merhaba.sh.x.c” dosyasını oluşturuyor. Daha sonra “merhaba.sh.x.c” dosyasına bakarak şifrelenmiş binary formatındaki “merhaba.sh.x” dosyasını oluşturuyor.
# ./merhaba.sh.x
İsminiz nedir?: Gökhan
Merhaba Gökhan
“merhaba.sh.x” dosyası, shc tarafından çalıştırılabilir olarak oluşturulmakta. Daha sonradan çalıştırma izni vermeniz gerekmiyor. Dosyayı başka bir sunucuya taşımanız gerekiyor ise, çalıştırma izni vermeniz gerekecektir.
-e parametresi ile, scripte çalıştırılabilme süresi koyabilirsiniz. Bu sayede scriptin o tarihten sonra çalışmamasını sağlayabilirsiniz. (dd/mm/yyyy)
# shc -e 09/02/2014 -f merhaba.sh
[root@test bash]# ./merhaba.sh.x
./merhaba.sh.x: has expired!
Please contact your provider
-m parametresi ile, scriptin zaman kısıtlaması yüzünden çalışmaması durumunda kiminle nasıl iletişime geçilmesi için gerekli olan notu düşebilirsiniz.
[root@test bash]# shc-3.8.9/shc -e 09/02/2014 -m "Scriptin zaman kısıtlamaması sebebi ile çalışmamaktadir. Lütfen gokhanmankara.com sitesi üzerinden iletişime geçiniz." -f merhaba.sh
[root@test bash]# ./merhaba.sh.x
./merhaba.sh.x: has expired!
Scriptin zaman kısıtlamaması sebebi ile çalışmamaktadir. Lütfen gokhanmankara.com sitesi üzerinden iletişime geçiniz.
-r parametresi ile, güvenlik kısıtlamalarını düşürerek scripti başka bir sunucuya yada farklı bir işletim sistemine taşımanız durumunda çalışmasını sağlayabilirsiniz. “-r” parametresi kullanmadan scripti farklı bir işletim sistemli sunucuda çalıştırmayı denediğinizde hata mesajı alabilirsiniz.
Diğer parametrelerin kullanımı ile ilgili ayrıntılı bilgiyi shc’nin sitesinden edinebilirsiniz.