bashスクリプトからコードを難読化または非表示にする方法

スクリプトをプログラムすることもあります Bash そして、このコードを非表示、つまりプレーンテキストにしないようにします。 コードを隠すことについて話すとき、正しい用語は 難読化する、私の場合、コードを難読化したかった 少し前に作ったスクリプト、これのために私が見つけたユーティリティは呼ばれます: shc

shc これにより、コードを難読化できます。使用する手順は次のとおりです。

1. まずダウンロードする必要があります

SHCv3.8.9をダウンロードする

2. ダウンロードしたら、圧縮ファイルを右クリックして、«というオプションを選択します。ここで抽出"または同様のもの。 これにより、というフォルダが表示されます shc-3.8.9、ここにその内容のスクリーンショットを示します

3. OK、フォルダがにあるとしましょう /home/usuario/Downloads/shc-3.8.9 さて、ターミナルを開いてそのルートに行きます(cd "/home/usuario/Downloads/shc-3.8.9")、ここからインストールが始まります。

 4. (私がすでにあなたに言ったように)フォルダにあるターミナルで shc-3.8.9、このアプリケーションをインストールするには、ファイルのシンボリックリンクを作成する必要があります shc-3.8.9.c a shc.c したがって、以下を実行します。

ln -s shc-3.8.9.c shc.c

 4. リンクが作成されたら、実行します make installを ルート権限(sudoを使用します):

 sudo make install

 4. パスワードの入力を求められ、しばらく待ちます。キーを押すのを待ちます。 [そして] を押して [入る]つまり、ソフトウェアをインストールすることを確認します。 これが完了すると、問題なくインストールされます。 準備とインストールのプロセス全体のスクリーンショットを残しておきます。

 


最後にエラーが発生するのがわかるように、エラーは特定のフォルダーがシステムに存在しないという事実を示しています。これが表示された場合は、単に重要視しないでください...それでも SHC 正常にインストールされました😉
だから彼らは走ることができます sudo make install es 必要 パッケージをインストールします。 gccの y make

5. 完了しました。これでインストールは完了です😀

インストールしたら、使い方を学ぶだけです。 自宅に次のようなスクリプトがあるとします。 スクリプト.sh その内容は次のとおりです。

#!/bin/bash
echo "Script de prueba para DesdeLinux.net"
exit

このスクリプトを実行すると、明らかにターミナルに次のメッセージが表示されます。«のテストスクリプト DesdeLinux.NET" か否か? …しかし、今度はそのコードを難読化します。

ターミナルに以下を入れて押す [入る]:

shc -v -f $HOME/script.sh

そしてビンゴ!! 準備ができました😀

これにより、スクリプトとともにXNUMXつの新しいファイルが作成されました。 スクリプト.sh.x y script.sh.xc

script.sh.x-» これは難読化されたbashスクリプトです。これを実行すると、最初に作成したスクリプトとまったく同じように動作します。これらの違いは、テキストエディター(nano、kate、geditなど)で開いた場合の最初のスクリプトがはっきりと見えることです。その内容、 スクリプト.sh.x 何も表示されていないことがはっきりとわかります... LOL !!!つまり、コードは「暗号化」されています🙂

script.sh.xc-» これは私たちのスクリプトですが、C言語では...本当に必要ないので心配せずに削除できます。少なくとも私はまったく必要ありません🙂

技術的な面で実際に追加することは他にあまりありません。これについて私が知る限り(bashスクリプトコードを非表示または難読化する)、ライセンスなどに違反していないことを明確にするためです。 数か月前にFacebookでbashコードを難読化することを学んだと言ったときに、これがライセンスなどに違反していると警告したユーザーがいたため、これを明確にします...まあ、私が理解している限り、ライセンスはこれで違反されていません😉

非常にありがとうございました マティアスガストン 少し前にこのユーティリティについて私に言ったことに対して

追加するものは何もありません。疑問や質問、苦情や提案は私に知らせてください。

ご挨拶😀


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   キシキーズ

    ライセンスが侵害されているのではなく、無料のソフトウェアでなくなるということです...

    1.    KZKG ^我愛羅

      はい、もちろん。 重要なのは、他の人に見られたくない特定の個人的なスクリプトがあるということです。たとえば、これらのスクリプトのXNUMXつに、ローカルのMySQLからのプレーンテキストのパスワードなどがあります。

      1.    モーフィアス

        番号! パスワードをスクリプトに保存しないでください。
        http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts

        1.    KZKG ^我愛羅

          実際、SHAを使用してパスワードを「非表示」にしています(https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/)、スクリプトでパスワードハッシュを保持し、ユーザーが入力したパスワードを比較し(読み取りで保存します)、SHAの合計を取得し、最後に両方を比較します🙂

          とにかく、リンクをありがとうございました、私はすでにそれをレビューしています😀

          よろしく

        2.    Linuxを使いましょう

          正確です! パスワードを要求するシェルプロンプトは、良い代替手段です。
          乾杯! ポール。

          1.    MSX

            ただし、他の方法のように、自動で無人の実行を提供することはありません。 🙂

      2.    ウィリアンズビバンコ

        スクリプトにパスワードやその他のアクセスを入力したり、データを危険にさらしたりすることは大きな間違いです。 この情報は、適切な権限で別のファイルに保存する必要があるため、bashスクリプトを難読化する必要はありません。 簡単ですね

        1.    KZKG ^我愛羅

          データ(ログイン変数、confsなど)を別のファイルに保存する場合の問題は、「システム」または「アプリケーション」が機能するために2つのファイルが必要であるのに対し、「安全」としてすべてをXNUMXつのファイルに保存すると、まあ私はそれだけが必要だろう...単一のファイル。

          1.    モーフィアス

            アプリケーションをデータから分離することをお勧めします。
            むしろ、データをハードコーディングするのはひどい習慣です!
            http://es.wikipedia.org/wiki/Hard_code
            コードとデータを同じファイルに入れるセキュリティとは何の関係もありません。 さらに、パスワードがそこにある場合はまったく逆になります。

          2.    ウィリアンズビバンコ

            別のファイルから機密情報を読み取るコストは、コードを「取得」しないために必要なプロセッサコストの次に無視できます。

            一方、あなたはモジュラー開発のパラダイム全体を捨てて、証明されている以上に解決策よりも多くの問題があるモノリシックモデルに賭けています。

          3.    MSX

            また、必然的に他のグループ/ユーザーが関与する権限を使用する場合は、最初のスクリプトを実行するための初期パスワードも必要になります。

          4.    MSX

            @KZKG上記のコメントはあなたのコメントへの返信です
            @morpheus:それは特定のニーズに絶対的に関連しています。

    2.    モーフィアス

      しかし、バイナリでコンパイルされたフリーソフトウェアがあります(これは難読化以上のものです)。 無料であるという事実は、ソースもあることを意味しますが、難読化(または、たとえばCプログラムを実行する場合に不可欠なコンパイル)とは関係ありません。

      1.    ウィリアンズビバンコ

        コンパイルされた無料ソフトウェアの場合、使用される言語の要件の問題です(Cでプログラミングする場合、アプリケーションが機能するようにコンパイルする必要があります)。 そして、同じように、それが本当に無料のソフトウェアである場合は常に、ソースコードが利用可能になります。

  2.   日向ネジ

    hummは、コードを共有することにある程度の無関心を示しています。heheheは、ソリューションへの依存度を高めるために、「コードを難読化」し始めた人の数を確認します。

    1.    KZKG ^我愛羅

      コードを難読化するべきかどうかを言っているのではありません...私はツールを提供し、それぞれがニーズに応じてツールを使用します。

      1.    コメンテーター

        このページのコードをわかりにくくしますか?

        このブログにアクセスする人の多くはフリーソフトウェアのフォロワーであると私は考えているので、読者を遠ざけるのは良い考えだと思います。したがって、コードを難読化する慣行を共有していません。

        1.    MSX

          あなたは明らかに、KZKGが主張する理由と、KZKGがスクリプトを難読化する必要性を説明する理由を読んでいませんでした。

          あなたの発見を共有してくれてありがとうKZKG!

  3.   ガブリエル

    そして、ウイルスはLinuxで循環し始めます...

    個人的には、難読化されたスクリプトを使用することは決してありません。 関係するセキュリティリスクのためだけでなく、スクリプトが貴重すぎて共有できない場合は、* uloに入れてください。 知識を共有したい人はきっと見つかります。

    1.    KZKG ^我愛羅

      難読化されたスクリプトを使用することはありませんか?まあ、非常に良いですが、難読化されたスクリプトを使用することは決してありません...詳細は、難読化されたスクリプトをそれから遠く離れた場所で共有したことがないということです。間違いがあります😉

      Bashで何かをするときはいつでも、私は体重を量ったり気にせずにそれを共有します。

      ブログへようこそ、あなたを読むことを楽しみにしています😉

  4.   パーカフ_TI99

    Gabriel、KZKG ^ Gaaraはすでに知識を共有しています。彼は、ライセンス違反の可能性がある難読化されたスクリプトを使用してLinuxパッケージを作成していません。それは、自分で使用できるかどうかを明らかにするだけです。失礼である必要はありません。 Linuxのウイルスについてはそれほど単純ではありません、ここにそれについての良い記事があります https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara画像を使ったencfsと暗号化についての投稿をお願いします、それは私が本当に好きなトピックです。
    乾杯!!!

    1.    KZKG ^我愛羅

      ありがとう
      実際、私がencfsと暗号化について十分な知識を持っているわけではありません。少なくとも、投稿を行ってユーザーが疑う可能性があると推測するのに十分な自信がありません😀
      このトピックでは、私が上級ユーザーであるということではありません...
      私が行ったほとんどのことは、GPGを使用してファイルを暗号化することです。画像に関しては、画像内にファイルを「挿入」または非表示にすることで、画像を画像ビューアで開いたときに、すべてが正しく表示されますが、これはどういう意味ですか?

      もう一度、コメントありがとうございます🙂

  5.   ラタクルエル

    私の記憶が正しければ、難読化されたCチャンピオンシップがありますが、「難読化ツール」を使用する価値はありませんが、ソースをコンドームをつけずに難読化する必要があります。

    shcとパスワード付きのスクリプトについては…非常に悪い作業方法です!

    いつものように、興味深い記事。

    1.    KZKG ^我愛羅

      はい、すでに複数の人が私にLOLを教えてくれました!!
      コメントありがとうございます🙂

  6.   これまで

    基本的に、表示されているスクリプトを共有せずにアプリケーションを共有すると、GPLに違反することになり、GPLアプリケーションで生成されたものはすべてGPLである必要があります。 これが、SHCがCを生成する理由です。これは、共有できるコードだからです。

    よろしく

  7.   Linuxを使いましょう

    私は他の読者のコメントに同意します。データとスクリプトをすべて一緒に保存することは良い習慣ではないだけでなく、無料のソフトウェアの開発にも役立ちません。
    ハグ! ポール。

    1.    KZKG ^我愛羅

      こんにちはパブロ🙂
      ラップトップの内部で機能する難読化されたスクリプトが他にもありますが、なんらかの理由で誰かがスクリプトを別のコンピューターにコピーした場合に、そのスクリプトが何であるかを見せたくないので、難読化しています。含まれている、それは私が取る「セキュリティ対策」です。

      ただし、ここでは DesdeLinux 私は、Bash でプログラムした興味深いものすべて、またはほぼすべてを公開しています。

      要するに、私が個人的な目的でこれを行うために、個人的なスクリプトを難読化したことでSWLを批判しているわけではありません😀

      友達の挨拶

  8.   コードラボ

    良い情報。 コメントで発生している論争は別として、私にはもう少し調査を続けるための情報のようです。

    著者は、記事のどの時点でも、それがうまくいったのか悪いのか、あるいはやるべきかやるべきでないのかを教えてくれないと信じています。

    挨拶。

    コードラボ

    1.    f3niX

      Linuxerosのブログでは、すべてが物議を醸しています、ハハそれはいつもそうだった。

      1.    MSX

        @ F3niX誰かが主題について愚かな言及をするたびに、コメント付きのスクリーンショットを切り取って配置します。

        注:ircフォーラムとChakraフォーラムであなたを見つけたら見てみましょう😉

    2.    KZKG ^我愛羅

      正確!!
      私は単に私が学んだ新しいことを示し/教え/説明します。この知識を使用するかどうかはあなたの決定です。私はあなたに強制しません。

      私の知る限り、知識を共有することは前向きなことですよね? 0_oU

      コメントありがとうございます。この記事の真の目的を理解している人がXNUMX人かXNUMX人以上いることを知っておくとよいでしょう。

  9.   パーカフ_TI99

    そこで、あなたは私をタイトな位置に置きましたxD、数週間前、私は「Cruxのインストールとテスト」というタイトルの投稿を準備していて、インストールが正常に実行されたにもかかわらず、私は通常のユーザーですサードパーティからの疑問に対処できるかどうかはわかりませんが、このディストリビューションの長所と短所、および私たちの間で発生する可能性のある問題の解決策についてのディスカッション手段として機能することを目的としています。すべてのユーザーと読者。 私がそれを終えてレビューするためにそれを送るとき、あなた(管理者)が決定します。 画像の暗号化の問題についても同じでした。KZKG^ Gaaraに回答していただきありがとうございます。

    ご挨拶!

    1.    KZKG ^我愛羅

      よろしくお願いします。それについて投稿します

  10.   マクベックス内葉

    優れたtutobro私はそれが非常に便利だと思いました:3
    manjaro linuxおよびarchlinuxの派生物にインストールしたい人のために、パッケージはaurにあります:shc

    よろしく

  11.   ランドマーク

    すみません、友人、私は大文字をクリップボードにある小文字に変換する小さなスクリプトを持っていました(xclip)

    難読化されていない場合、スクリプトは正常に機能します

    #!/ bin / bashに
    xclip -o> R1.txt
    cat R1.txt | tr [:upper:] [:lower:]
    捨てた ""
    rm R1.txt

    しかし、難読化されたスクリプトを実行したいとき
    私はサイコロ

    ./M2m.sh:操作は許可されていません
    完了(殺された)

    助けてください

    1.    KZKG ^我愛羅

      xclipをインストールしていますか?

  12.   シンフラグ

    .batコンパイラまたは.phpがあるため、実際にはbashコンパイラであることに注意してください。
    生成するコードが暗号化されて難読化されており、デコンパイラーに耐えられないかどうかはわかりません。これは私の分野ではないため、「はい」または「いいえ」とは言いませんが、bashをコンパイルすることであることがわかります。あなたはコードを見ることができます、それは難読化された中で、それがエクスプロイトシェルのように見える行にあるのを見る、それが本当に難読化されているかどうかはわかりません、なぜならそれはパスワードを要求しないか、私は知らない、master.configここで前のキーワード。

  13.   フアン·デビッド

    友達が私のスクリプトを難読化すると、彼がexエンディングで新しいスクリプトを作成し、それを実行すると、完璧なものさえあります。 しかし、それが実行されていないlinuzを使用して別のコンピューターに持っていくと、すでにすべてのアクセス許可があり、ランチャーを作成して、それがターミナルアプリケーションであることを伝えますが、機能しません。プロンプト応答を待ってください。

    1.    KZKG ^我愛羅

      それをコンパイルし、同じアーキテクチャのシステムで実行していますか? つまり、32ビットシステムで難読化するようにコンパイルしてから、64ビットシステムで実行しようとすると、エラーが発生します。その逆も同様です。 分かるでしょう?

      1.    フアン·デビッド

        いいえ、しかし私はすでに同じコンピューターを同じオペレーティングシステムでフォーマットすることを提供しました、そしてそれは実行されません、それはエラーさえ送りません。
        私はそれを次のようにコンソールで呼び出します:sudo /home/operations/script.xそして私はこのエラーを受け取ります

        /home/operaciones/script.x: e }8- q 、 K

        ケース全体

        1.    KZKG ^我愛羅

          コンパイルせずに実行して、コードのエラーかどうかを確認してください

    2.    ニック

      難読化されたスクリプトを他のコンピューターで実行するには、オプション«-rセキュリティの緩和を使用してスクリプトをコンパイルする必要があります。 再配布可能なバイナリを作成します。それ以外の場合は、スクリプトがSHCで難読化されたマシンでのみ実行されます。
      例:

      shc -r -f script.sh

  14.   ウィリアム

    こんにちは、私は質問があります、shcは任意のタイプのLinuxディストリビューションにインストールできますか?たとえば、赤い帽子、これのインストールはどのようになりますか?
    ありがとうございます!

  15.   ルイズ

    みなさん、こんにちは。あなたのコメントは私を大いに助けてくれましたが、同じシステムで異なるアーキテクチャで難読化が機能しない場合、つまり、32ビットで実行すると64ビットで実行できないという次の問題があります。 異なるアーキテクチャ(32ビットと64ビット)で実際に実行できるかどうか誰かが知っていますか?