Bash komut dosyalarımızdan kod nasıl gizlenir veya gizlenir

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

SHC v3.8.9'u indirin

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:

 


Sonunda görebileceğiniz gibi bir hata alıyorum, hata sistemimde belirli bir klasörün bulunmadığına atıfta bulunuyor, bunu görürseniz, önem vermeyin ... öyle olsa bile CHS başarıyla kuruldu 😉
Böylece koşabilirler sudo make install es GEREKLİ paketleri kurulu: gcc y yapmak

5. 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 😉

Çok teşekkürler Matias Gaston bir süre önce bana bu yardımcı programdan bahsettiğim için

Ekleyecek başka bir şey, herhangi bir şüphe veya soru, şikayet veya öneri bana bildirin.

Selamlar 😀


44 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   xykyz dijo

    Lisansların ihlali değil, özgür yazılım olmaktan çıkmasıdır ...

    1.    KZKG ^ Gaara dijo

      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.

      1.    Morpheus dijo
        1.    KZKG ^ Gaara dijo

          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

        2.    Hadi Linux kullanalım dijo

          Kesin! Parolayı isteyen bir kabuk istemi iyi bir alternatiftir.
          Şerefe! Paul.

          1.    msx dijo

            Ancak diğer şekilde yaptığı gibi otomatik ve gözetimsiz bir yürütme sağlamaz. 🙂

      2.    Willians vivanco dijo

        Ş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?

        1.    KZKG ^ Gaara dijo

          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

          1.    Morpheus dijo

            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 !!

          2.    Willians vivanco dijo

            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.

          3.    msx dijo

            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.

          4.    msx dijo

            @KZKG yukarıdaki yorum, yorumunuza yanıttır
            @morpheus: Kesinlikle belirli bir ihtiyaca bağlıdır.

    2.    Morpheus dijo

      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.

      1.    Willians vivanco dijo

        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.

  2.   Hyuuga_Neji dijo

    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 ...

    1.    KZKG ^ Gaara dijo

      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.

      1.    yorumcu dijo

        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.

        1.    msx dijo

          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!

  3.   Cebrail dijo

    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.

    1.    KZKG ^ Gaara dijo

      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 😉

  4.   Percaff_TI99 dijo

    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 !!!

    1.    KZKG ^ Gaara dijo

      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 🙂

  5.   Ratakruel dijo

    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.

    1.    KZKG ^ Gaara dijo

      Evet, birden fazla kişi bana LOL dedi !!
      Yorumunuz için teşekkürler 🙂

  6.   hiç dijo

    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

  7.   Hadi Linux kullanalım dijo

    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.

    1.    KZKG ^ Gaara dijo

      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

  8.   kod laboratuvarı dijo

    İ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ı

    1.    f3niX dijo

      Linuxeros bloglarında her şey tartışmalı, haha ​​her zaman böyleydi.

      1.    msx dijo

        @ 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 😉

    2.    KZKG ^ Gaara dijo

      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.

  9.   Percaff_TI99 dijo

    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 !!!

    1.    KZKG ^ Gaara dijo

      Tamam, zevkle, bunun hakkında bir yazı yapacağım 😉

  10.   makubex uchiha dijo

    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

  11.   marcos dijo

    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

    1.    KZKG ^ Gaara dijo

      Xclip'iniz kurulu mu?

  12.   SynFlag dijo

    .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.

  13.   Juan David dijo

    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

    1.    KZKG ^ Gaara dijo

      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?

      1.    Juan David dijo

        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

        1.    KZKG ^ Gaara dijo

          Kodda bir hata olup olmadığını görmek için derlemeden çalıştırmayı deneyin.

    2.    çentik dijo

      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

  14.   william dijo

    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!

  15.   Ruyzz dijo

    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ı?