[Çözüldü] Shell Dosyasını Derleme

Başlatan linuxopi, 08 Haziran 2017 - 19:57:34

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

linuxopi

Merhaba Arkadaşlar,

Yaptığım .sh uzantılı dosyayı derlemek istiyorum yani okunmayacak hale getirmek istiyorum benim bildiğim ( shc ) uygulaması var derliyo tamam güzel ama sadece derlediğim sunucuda çalışıyor. Başka bir sunucuya aktardığımda çalışmıyor. Location changed,, veya Saçma karekterlerde hatalar veriyor. Şimdiden Teşekkürler arkadaşlar.

mhmtkrktr

shc --help
shc: invalid option -- '-'
shc parse: Unknown option
shc Version 3.9.5, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script

    -e %s  Expiration date in dd/mm/yyyy format [none]
    -m %s  Message to display upon expiration ["Please contact your provider"]
    -f %s  File name of the script to compile
    -i %s  Inline option for the shell interpreter i.e: -e
    -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);
    -l %s  Last shell option i.e: --
    -o %s  output filename
    -r     Relax security. Make a redistributable binary
    -v     Verbose compilation
    -D     Switch ON debug exec calls [OFF]
    -U     Make binary untraceable [no]
    -C     Display license and exit
    -A     Display abstract and exit
    -B     Compile for busybox
    -h     Display help and exit

    Environment variables used:
    Name    Default  Usage
    CC      cc       C compiler command
    CFLAGS  <none>   C compiler flags

    Please consult the shc man page.


-r     Relax security. Make a redistributable binary

Ne tür bir kodu saklamak istediğin sana kalmış fakat bu yöntemle derlenmiş kodun tamamen okunamaz olmayacağını bilmeni isterim. Sadece okumak isteyen için, işi biraz zora koşmuş olursun.

linuxopi

#2
Alıntı yapılan: mhmtkrktr - 08 Haziran 2017 - 22:12:40
shc --help
shc: invalid option -- '-'
shc parse: Unknown option
shc Version 3.9.5, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script

    -e %s  Expiration date in dd/mm/yyyy format [none]
    -m %s  Message to display upon expiration ["Please contact your provider"]
    -f %s  File name of the script to compile
    -i %s  Inline option for the shell interpreter i.e: -e
    -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);
    -l %s  Last shell option i.e: --
    -o %s  output filename
    -r     Relax security. Make a redistributable binary
    -v     Verbose compilation
    -D     Switch ON debug exec calls [OFF]
    -U     Make binary untraceable [no]
    -C     Display license and exit
    -A     Display abstract and exit
    -B     Compile for busybox
    -h     Display help and exit

    Environment variables used:
    Name    Default  Usage
    CC      cc       C compiler command
    CFLAGS  <none>   C compiler flags

    Please consult the shc man page.


-r     Relax security. Make a redistributable binary

Ne tür bir kodu saklamak istediğin sana kalmış fakat bu yöntemle derlenmiş kodun tamamen okunamaz olmayacağını bilmeni isterim. Sadece okumak isteyen için, işi biraz zora koşmuş olursun.
Biliyorum dostum unshc ile geri getirebiliyolar fakat .sh yerine ayarlarıyla oynamasınlar diye derlemek istiyorum. Peki * bir şey daha sorucam iznin olursa örnek ./test.sh.x çalıştırınca sudo komutunu almadığım için
./test.sh.x: Operation not permitted
Killed

gibi hata veriyor bunu sudo komutunu almadan çalıştırabilirmiyiz?

mhmtkrktr

Oturumu yönetici (root) olarak açmadığın sürece, yetki istenen yerde her şekilde yetki vermeni isteyecektir. İçeriği ve amacı bilmeden yorumlaması zor.
Örneğin belirli komutlar için sudoers içerisinde parolasız çalışsın (NOPASSWD) yetkisi tanımlanabilir. Betik gibi dosyalar içinde olabileceği söyleniyor fakat ben o özelliği kullanamamıştım.  https://www.sudo.ws/man/1.8.15/sudoers.man.html

Diğer taraftan sistem belirli bir şifreyi kullanıyorsa (ki önceki soru farklı kullanıcılar olduğunu gösteriyordu) şifre, yetki istenen yerin başına farklı bir yerden çağırılabilir.
sudo -kSp '' komut <<<$(echo şifre)
# veya
sudo -kSp '' komut <<<$(cat /şifrenin_tutulduğu_dosya)
# ve de daha genel olsun dersen
echo şifre | sudo -S echo

Bu durum da, aksi belirtilmediği sürece (varsayılan) 5 dakika boyunca, yetki betik içerisinde ki tüm komutlar için verilmiş olur.

Diğer bir çözüm şifreyi kullanıcıya gui üzerinden sormak. Bunun için örneğin; dialog, xdialog, gtkdialog, zenity, yad veya kullanılan sistemin kendi notifikasyonu kullanılabilir.
dialog --title "  Kullanıcı Şifrenizi Giriniz" --clear --insecure --passwordbox "" 7 32

Kullanım amacını bilmeden fikir yürütmek zor ;-)



ata1