Bazen bir komut dosyası programlıyoruz Cümbüş ve bunun kodunun görünür OLMAMASINI, yani düz metin olmamasını istiyoruz. Kodu gizlemekten bahsettiğimizde doğru terim şaşırtmakbenim durumumda kodu şaşırtmak istedim bir süre önce yaptığım bir senaryo, bunun için bulduğum yardımcı programın adı: shc
shc Kodu gizlememize izin verir, işte onu kullanmak için adımlar:
1. İlk önce onu indirmeliyiz
2. İndirdikten sonra, sıkıştırılmış dosyaya sağ tıklıyor ve «yazan seçeneği seçiyoruz.Buraya Çıkart" Veya benzeri. Bu bize adında bir klasör gösterecek shc-3.8.9, burada size içeriğinin bir ekran görüntüsünü gösteriyorum
3. Tamam, diyelim ki klasör şu adrestedir: /home/usuario/Downloads/shc-3.8.9 Peki, bir terminal açıyoruz ve o rotaya gidiyoruz (cd "/home/usuario/Downloads/shc-3.8.9") ve kurulum burada başlar.
4. Klasörde bulunan terminalde (size daha önce söylediğim gibi) shc-3.8.9, bu uygulamayı kurmak için dosyanın sembolik bağlantısını yapmamız gerekiyor shc-3.8.9.c a shc.c bu yüzden aşağıdakileri uyguluyoruz:
ln -s shc-3.8.9.c shc.c
4. Bağlantı kurulduktan sonra çalıştırırız make install kök izinleriyle (sudo kullanacağız):
sudo make install
4. Bizden şifremizi isteyecek ve bir dakika bekleyecek, tuşa basmamızı bekleyecek [VE] ve bas [Girmek]yani, yazılımı kurmak istediğimizi onaylıyoruz. Bu yapıldıktan sonra sorunsuz bir şekilde kurulacaktır. Size tüm hazırlık ve kurulum sürecinin bir ekran görüntüsünü bırakıyorum:
sudo make install
es GEREKLİ paketleri kurulu: gcc y yapmak5. Bitti, bu kurulum için 😀
Kurduğumuzda, sadece nasıl kullanacağımızı öğrenmemiz gerekiyor. Evimizde adında bir senaryomuz olduğunu varsayalım. komut dosyası.sh ve içeriği aşağıdaki gibidir:
#!/bin/bash
echo "Script de prueba para DesdeLinux.net"
exit
Bu betiği çalıştırırken, bize terminalde açıkça şu mesajı gösterecektir: «Script de prueba para DesdeLinux. Net" ya da değil? ... Ama şimdi bu kodu gizleyeceğiz.
Bir terminale aşağıdakileri koyarız ve [Girmek]:
shc -v -f $HOME/script.sh
Ve bingo !! hazır 😀
Bu bize komut dosyamızla birlikte iki yeni dosya oluşturdu, şimdi komut dosyası.sh.x y script.sh.xc
script.sh.x - » Bu bizim gizlenmiş bash betiğimiz, bu çalıştırdığımızda ilk oluşturduğumuzla tamamen aynı olacak, bunlar arasındaki fark ilkinin bir metin düzenleyiciyle (nano, kate, gedit, vb.) içeriğini net bir şekilde görebiliyorduk. komut dosyası.sh.x hiçbir şey görmediğimizi açıkça göreceğiz ... LOL !!! yani kod 'şifreli' 🙂
script.sh.xc - » Bu bizim senaryomuz ama C dilinde ... bunu endişelenmeden silebiliriz çünkü gerçekten ihtiyacımız yok, en azından hiç ihtiyacım olmazdı 🙂
Teknik tarafa gerçekten eklenecek pek bir şey yok, sadece bildiğim kadarıyla (bash komut dosyası kodunu gizlemek veya şaşırtmak) lisansları veya buna benzer bir şeyi ihlal etmediğini açıklığa kavuşturmak için. Bunu açıklığa kavuşturuyorum çünkü birkaç ay önce Facebook'ta bash kodunu gizlemeyi öğrendiğimden bahsettiğimde, bazı kullanıcılar beni bunun lisansları veya benzeri bir şeyi ihlal ettiği konusunda uyardılar ... Anladığım kadarıyla lisanslar bununla ihlal edilmiyor 😉
Ekleyecek başka bir şey, herhangi bir şüphe veya soru, şikayet veya öneri bana bildirin.
Selamlar 😀
Lisansların ihlali değil, özgür yazılım olmaktan çıkmasıdır ...
Evet tabi ki. Mesele şu ki, başkalarının görmesini istemediğim bazı kişisel betiklerim var, örneğin bu betiklerden birinin yerel MySQL'imin düz metninde bir parolası var veya buna benzer bir şey.
HAYIR! Parolalarınızı komut dosyalarına kaydetmeyin!
http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts
Aslında SHA kullanarak şifrelerimi 'gizli' tutuyorum (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), sonra komut dosyasında parola karmasını saklıyorum ve yaptığım şey kullanıcının girdiği parolayı karşılaştırmak (okundu ile kaydediyorum), SHA toplamını alıyorum ve sonunda ikisini de karşılaştırıyorum 🙂
Her neyse, bağlantı için çok teşekkür ederim, şimdiden inceliyorum 😀
selamlar
Kesin! Parolayı isteyen bir kabuk istemi iyi bir alternatiftir.
Şerefe! Paul.
Ancak diğer şekilde yaptığı gibi otomatik ve gözetimsiz bir yürütme sağlamaz. 🙂
Şifreleri ve diğer erişimi veya verileri tehlikeye atan verileri kod içine koymak büyük bir hatadır. Bu bilginin uygun izinlerle başka bir dosyaya kaydedilmesi gerekir, böylece bash betiğinizi gizlemenize gerek kalmaz. Kolay ha?
Verilerin (oturum açma değişkenleri, yapılandırmalar, vb.) Başka bir dosyada bulunmasındaki sorun, 'sistem' veya 'uygulamanın' çalışması için 2 dosyaya ihtiyaç duymasıdır, oysa mümkün olduğunca 'güvenli' her şeyi tek bir dosyada saklarsam, Pekala, ona sadece ihtiyacım olacak ... tek bir dosya
Uygulamayı verilerden ayırmak iyi bir uygulamadır.
Daha doğrusu verileri kodlamak korkunç bir uygulamadır!
http://es.wikipedia.org/wiki/Hard_code
Aynı dosyaya kod ve veri koyan güvenlik ile ilgisi yoktur. Ve dahası, şifreleriniz varsa tam tersi olur !!
Başka bir dosyadan hassas bilgileri okumanın maliyeti, kodunuzu "açığa çıkarmak" için gereken işlemci maliyetinin yanında ihmal edilebilir düzeydedir.
Öte yandan, bütün bir modüler geliştirme paradigmasını çöpe atıyorsunuz, kanıtlanmış olandan daha fazla, getirdiği çözümlerden daha fazla sorun olan monolitik bir modele bahis oynuyorsunuz.
Ayrıca, diğer grupları / kullanıcıları dahil etmesi gereken izinleri kullanırsanız, ilk komut dosyasını çalıştırmak için yine de bir başlangıç parolasına ihtiyacınız olacaktır.
@KZKG yukarıdaki yorum, yorumunuza yanıttır
@morpheus: Kesinlikle belirli bir ihtiyaca bağlıdır.
Ancak ikili olarak derlenmiş özgür yazılımlar var (bu karmaşıklaştırmaktan daha fazlasıdır). Ücretsiz olması, kaynağa da sahip olduğu anlamına gelir, ancak şaşırtmakla (veya örneğin bir C programını çalıştırmak istiyorsam önemli olan derlemeyle) ilgisi yoktur.
Derlenmiş özgür yazılım durumunda, bu, kullanılan dilin gerekliliğiyle ilgilidir (C'de programlıyorsanız, uygulamanızın çalışması için derlemeniz gerekir). Ve aynı şekilde, eğer gerçekten Özgür Yazılım ise, kaynak kodu her zaman mevcut olacaktır.
hmmm Ben, çözümlerine daha bağımlı hale gelmemizi sağlamak için kaç kişinin "kodlarını gizlemeye" başladığını görmek için lol kodunu paylaşma konusunda belli bir ilgisizlik gösteriyorum ...
Kodun karıştırılıp karıştırılmaması gerektiğini söylemiyorum ... Her birinin ihtiyaçlarına göre kullanması için araçları veriyorum.
Bu sayfadaki gizli kod mu?
Okuyucuları uzaklaştırmanın iyi bir fikir olduğunu düşünüyorum, çünkü bu blogu ziyaret edenlerin çoğunun özgür yazılımın takipçisi olduğunu düşünüyorum ve bu nedenle kod gizleme pratiğini paylaşmıyoruz.
Belli ki KZKG'nin senaryosunu gizleme ihtiyacını açıklama nedenini okumadınız.
Bulduklarınızı paylaştığınız için teşekkürler KZKG!
Ve böylece virüsler Linux'ta dolaşmaya başlar ...
Şahsen ben ASLA şaşırtılmış komut dosyaları kullanmam. Sadece içerdiği güvenlik risklerinden dolayı değil, aynı zamanda betiğiniz paylaşılamayacak kadar değerliyse, * ulo'ya daha iyi koyun; Bilgilerini paylaşmak isteyen birini kesinlikle bulabilirim.
Asla gizlenmiş bir komut dosyası kullanmaz mısınız? Pekala, ÇOK iyi, ben ASLA şaşırtılmış bir komut dosyası kullanmam ... ayrıntı şu ki, ben ASLA şaşırmış bir komut dosyasını paylaşmadım, ondan çok uzakta ve orada sevgili dostum, nerede hata mevcut 😉
Bash'te ne zaman bir şey yapsam, bunu beni tartmadan veya rahatsız etmeden paylaşıyorum, zaten buradaki birçok makalede zaten yapmıştım 😀
Bloga hoş geldiniz, sizi okumak bir zevk 😉
Gabriel, KZKG ^ Gaara zaten bilgiyi paylaşıyor, gizlenmiş komut dosyalarıyla lisans ihlali olabilecek herhangi bir linux paketi oluşturmuyor, yalnızca kendi kullanımları için kullanıp kullanamayacakları uygulamaları ortaya koyuyor, kaba olmak gerekli değil, çünkü Linux'taki virüsler için o kadar basit değil, işte bununla ilgili güzel bir makale https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
KZKG ^ Gaara Resimleri kullanarak enkfler ve kriptografi hakkında bir yazı yazmanızı istiyorum, bu gerçekten sevdiğim bir konu.
Şerefe !!!
teşekkürler
Aslında, enkfler ve kriptografi hakkında yeterli bilgiye sahip olduğumdan değil, en azından bir gönderi yapacak ve kullanıcıların sahip olabileceği şüpheleri varsayacak kadar kendime güvenmiyorum 😀
Bu konuda ileri düzey bir kullanıcı olduğumdan değil ...
En çok yaptığım şey dosyaları şifrelemek için GPG kullanmaktı ve görüntülere gelince, en çok yaptığım şey bir görüntünün içine bir dosya 'eklemek' veya gizlemek oldu, bu da görsel bir görüntü görüntüleyiciyle açıldığında her şey doğru gösteriliyor, demek istediğin bu mu?
Yorumunuz için bir kez daha çok teşekkür ederim 🙂
Doğru hatırlıyorsam, şaşırtılmış C şampiyonaları var, ancak bir "gizleyici" kullanmaya değmez, ancak kaynaklarını gizlemek zorundalar.
Shc'ye gelince ve senaryonuzun şifreleri var ... çalışmanın çok kötü yolu!
Her zamanki gibi ilginç bir makale.
Evet, birden fazla kişi bana LOL dedi !!
Yorumunuz için teşekkürler 🙂
Temel olarak, uygulamayı görünür komut dosyasını paylaşmadan paylaşırsanız, GPL'yi ihlal etmiş olursunuz, bu da bir GPL uygulamasıyla oluşturulan her şeyin GPL olmasını gerektirir. Bu yüzden SHC, C'yi üretir, çünkü paylaşabileceğiniz kod budur.
selamlar
Diğer okuyucuların yorumlarına katılıyorum: sadece verileri ve komut dosyasını bir arada saklamak iyi bir uygulama değil, aynı zamanda özgür yazılımın geliştirilmesine de elverişli değil.
Sarılmak! Paul.
Merhaba Pablo 🙂
Dizüstü bilgisayarımda dahili olarak çalışan başka gizlenmiş bir komut dosyam var, onu şaşırtıyorum çünkü birisinin komut dizimi herhangi bir nedenle başka bir bilgisayara kopyalamayı başardığında, ne içerdiğini görmesini istemiyorum. aldığım bir 'güvenlik'tir.
Sin embargo, acá en DesdeLinux hago público todo o casi todo lo que programo en Bash que pueda resultar interesante.
Kısacası, kişisel amaçlar için bunu yapmak için, kişisel bir yazıyı şaşırtmak için artık SWL'nin küçük düşürücüsü değilim 😀
Selam arkadaşım
İyi bilgi. Yorumlarda ortaya çıkan tartışmalar dışında, biraz daha araştırmaya devam etmem için bana bilgi geliyor.
Yazarın makalenin hiçbir noktasında bize bunun iyi mi yoksa kötü mü yapıldığını ya da yapmamız gerekip gerekmediğini söylemediğini, sadece birisinin yararına olması durumunda yapılabilecek aracı bize söylediğini düşünüyorum. .
Bir tebrik.
kod laboratuvarı
Linuxeros bloglarında her şey tartışmalı, haha her zaman böyleydi.
@ F3niX Birisi konudan aptalca bahsettiğinde bunu koymak için yorumunuzla bir ekran görüntüsü keseceğim.
Not: Seni irc ve Chakra forumlarında bulduğumda görelim 😉
TAM !!
Ben sadece öğrendiğim yeni bir şeyi gösteririm / öğretir / açıklarım, bu bilgiyi kullanmak ya da kullanmamak sizin kararınız, sizi zorlamıyorum, çok daha az.
Bildiğim kadarıyla, bilgiyi paylaşmak iyi bir şey, değil mi? 0_oU
Yorumunuz için teşekkür ederiz, bu makalenin gerçek amacını anlayan bir veya ikiden fazla kişi olduğunu bilmek güzel.
Orada beni dar bir noktaya soktunuz xD, birkaç hafta önce «Crux kurulumu ve testi» başlıklı bir yazı hazırlıyordum ve kurulumun başarıyla gerçekleştirilmesine rağmen normal bir kullanıcıyım ve Üçüncü şahısların şüpheleriyle yüzleşip yüzleşemeyeceğimi bilmiyorum, amaç, bu dağıtımın erdemleri ve kusurları hakkında bir tartışma aracı olarak hizmet etmesi ve ortaya çıkabilecek sorunların olası çözümlerinin tüm kullanıcılar arasında bize yardımcı olmasıdır. ve okuyucular. Bitirdiğimde ve sizi incelemeye gönderdiğimde (Yöneticiler) karar verecek. Görüntülerdeki kriptografi sorunu da aynıydı, cevabınız için KZKG ^ Gaara'ya teşekkürler.
Selamlar !!!
Tamam, zevkle, bunun hakkında bir yazı yapacağım 😉
mükemmel tuto kardeşim çok faydalı buldum: 3
manjaro linux ve archlinux türevlerine kurmak isteyenler için paket şu adla aur içindedir: shc
selamlar
Afedersiniz dostum, BÜYÜK HARFLERİ panodaki küçük harflere dönüştüren küçük bir komut dosyam vardı (xclip)
komut dosyası karıştırılmadığında normal çalışıyor
#! / Bin / bash
xclip -o> R1.txt
kedi R1.txt | tr [: üst:] [: alt:]
attı ""
rm R1.txt
ama gizlenmiş komut dosyasını çalıştırmak istediğimde
ben zar
./M2m.sh: İşleme izin verilmez
Tamamlandı (öldürüldü)
Lütfen yardım et
Xclip'iniz kurulu mu?
.Bat derleyicileri veya .php olduğu gibi, aslında bir bash derleyicisi olduğuna dikkat edilmelidir.
Üreten kodun şifrelenip gizlenmiş olup olmadığını ve bir derleyiciye dayanmadığını bilmiyorum, bu benim alanım olmadığı için evet ya da hayır demiyorum, ama gördüğüm şey bir bash derlemek , .c'de bu kodu görebilirsiniz, ki bu, gizlenmiş içinde, bir istismar kabuğu gibi görünen satırlarda olduğunu görüyorum, gerçekten gizlenmiş olup olmadıklarını bilmiyorum, çünkü sormuyor bir parola veya bilmiyorum, master.config burada önceki bir anahtar kelime.
arkadaşlar senaryomu karıştırdığımda eski biten yeni senaryoyu yaratıyor, onu çalıştırıyorum ve hatta mükemmel var. Ama linuz ile başka bir bilgisayara götürdüğümde çalışmıyor, zaten tüm izinlere sahip, bir başlatıcı oluşturuyorum ve bir terminal uygulaması olduğunu söylüyorum, ancak çalışmıyor, lütfen hızlı yanıt bekleyin
Derlediniz mi ve aynı mimariye sahip bir sistem üzerinde mi çalıştırıyorsunuz? Yani, onu 32 bitlik bir sistemde gizlemek için derlediyseniz ve sonra 64 bitlik bir sistemde çalıştırmayı denerseniz veya tam tersi olursanız, size bir hata verecektir. Anladın?
Hayır, ama aynı bilgisayarı, aynı işletim sistemi ile biçimlendirmeyi zaten sağladım ve çalışmıyor, hata bile göndermiyor.
Bunu konsolla şöyle çağırıyorum: sudo /home/operations/script.x ve bu hatayı alıyorum
/home/operaciones/script.x: e } 8- q , K
bütün bir dava
Kodda bir hata olup olmadığını görmek için derlemeden çalıştırmayı deneyin.
Gizlenmiş betiği diğer bilgisayarlarda çalıştırabilmeniz için, onu «-r Rahatlatıcı güvenlik seçeneği ile derlemelisiniz. Yeniden dağıtılabilir bir ikili dosya oluşturun ', aksi takdirde yalnızca komut dosyasının SHC ile karıştırıldığı makinede çalışacaktır.
Örnek:
shc -r -f script.sh
Merhaba, bir sorgum var, shc herhangi bir Linux dağıtımına kurulabilir mi? Örneğin kırmızı şapka, bunun için kurulum nasıl olur?
Teşekkürler!
Herkese merhaba, yorumlarınız bana çok yardımcı oldu ama şu problemim var, benim için aynı sistemde ama farklı mimaride obfuscation çalışmadığında, yani 32 bit yaparsam 64 bitte çalışamaz. Gerçekten farklı mimarilerde (32 ve 64 bit) çalıştırılıp çalıştırılamayacağını bilen var mı?