Cách làm xáo trộn hoặc ẩn mã khỏi các tập lệnh bash của chúng tôi

Đôi khi chúng tôi lập trình một tập lệnh trong Cú đánh và chúng tôi muốn mã này KHÔNG hiển thị, nghĩa là, không phải là văn bản thuần túy. Khi chúng ta nói về ẩn mã, thuật ngữ chính xác là làm rối tung, trong trường hợp của tôi, tôi muốn làm xáo trộn mã của một kịch bản mà tôi đã làm cách đây một thời gian, tiện ích tôi tìm thấy cho việc này được gọi là: shc

shc Nó cho phép chúng tôi xáo trộn mã, sau đây là các bước để sử dụng nó:

1. Đầu tiên chúng ta phải tải xuống

Tải xuống SHC v3.8.9

2. Khi chúng tôi đã tải xuống, chúng tôi nhấp chuột phải vào tệp nén và chọn tùy chọn có nội dung «Trích xuất tại đây"hoặc một cái gì đó tương tự. Điều này sẽ làm cho chúng tôi thấy một thư mục có tên shc-3.8.9, ở đây tôi cho bạn xem ảnh chụp màn hình nội dung của nó

3. OK, giả sử thư mục ở /home/usuario/Downloads/shc-3.8.9 Chà, chúng tôi mở một nhà ga và đi đến tuyến đường đó (cd "/home/usuario/Downloads/shc-3.8.9"), và ở đây quá trình cài đặt bắt đầu.

 4. Trong thiết bị đầu cuối đang được đặt (như tôi đã nói với bạn) trong thư mục shc-3.8.9, để cài đặt ứng dụng này, chúng tôi cần tạo một liên kết tượng trưng của tệp shc-3.8.9.c a shc.c vì vậy chúng tôi thực hiện như sau:

ln -s shc-3.8.9.c shc.c

 4. Khi liên kết được tạo, chúng tôi thực hiện thực hiện cài đặt với quyền root (chúng tôi sẽ sử dụng sudo):

 sudo make install

 4. Nó sẽ yêu cầu chúng ta nhập mật khẩu của chúng ta và nó sẽ đợi trong giây lát, nó sẽ đợi chúng ta bấm phím [VÀ] và hãy nhấn [Đi vào]nghĩa là chúng tôi xác nhận rằng chúng tôi muốn cài đặt phần mềm. Khi điều này được thực hiện, nó sẽ cài đặt mà không có vấn đề gì. Tôi để lại cho bạn một ảnh chụp màn hình của toàn bộ quá trình chuẩn bị và cài đặt:

 


Như bạn có thể thấy ở phần cuối, tôi gặp lỗi, lỗi đang đề cập đến thực tế là một thư mục nhất định không tồn tại trên hệ thống của tôi, nếu bạn thấy điều này, chỉ cần không cho nó tầm quan trọng ... ngay cả như vậy SHC cài đặt thành công 😉
Vì vậy, họ có thể chạy sudo make install es CẦN THIẾT đã cài đặt các gói: gcc y làm cho

5. Xong, đây là nó để cài đặt 😀

Khi chúng ta đã cài đặt nó, chúng ta chỉ cần học cách sử dụng nó. Giả sử chúng ta có một tập lệnh trong nhà được gọi là tập lệnh.sh và nội dung của nó như sau:

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

Khi thực thi tập lệnh này, rõ ràng nó sẽ hiển thị cho chúng ta thông báo trong terminal: «Kịch bản thử nghiệm cho DesdeLinuxNet." hay không? … Nhưng, bây giờ chúng ta sẽ làm xáo trộn mã đó.

Trong một thiết bị đầu cuối, chúng tôi đặt như sau và nhấn [Đi vào]:

shc -v -f $HOME/script.sh

Và chơi lô tô !! sẵn sàng 😀

Điều này đã tạo cho chúng tôi hai tệp mới cùng với tập lệnh của chúng tôi, bây giờ chúng tôi có tập lệnh.sh.x y script.sh.xc

script.sh.x - » Đây là tập lệnh bash bị xáo trộn của chúng tôi, khi chúng tôi thực thi nó sẽ hoạt động giống hệt như tập lệnh đầu tiên chúng tôi tạo, sự khác biệt giữa các tập lệnh này là tập lệnh đầu tiên nếu chúng tôi mở nó bằng trình soạn thảo văn bản (nano, kate, gedit, v.v.) chúng tôi có thể thấy rõ nội dung của nó, trong khi nếu chúng ta mở tập lệnh.sh.x chúng ta sẽ thấy rõ ràng rằng chúng ta không nhìn thấy gì cả ... LOL !!!, tức là mã được 'mã hóa' 🙂

script.sh.xc - » Đây là tập lệnh của chúng tôi nhưng bằng ngôn ngữ C ... chúng tôi có thể xóa nó mà không cần lo lắng vì chúng tôi không thực sự cần nó, tốt, ít nhất tôi sẽ không cần nó 🙂

Không có gì khác để thực sự bổ sung về mặt kỹ thuật, chỉ để làm rõ rằng theo như tôi biết với điều này (ẩn hoặc làm xáo trộn mã tập lệnh bash) nó không vi phạm giấy phép hoặc những thứ tương tự. Tôi làm rõ điều này bởi vì một vài tháng trước, trên Facebook khi tôi đề cập rằng tôi đã học cách làm xáo trộn mã bash, một số người dùng đã cảnh báo tôi rằng điều này đang vi phạm giấy phép hoặc điều gì đó tương tự ... tốt, theo như tôi hiểu, giấy phép không bị vi phạm với điều này 😉

Rất cám ơn Matias Gaston vì đã đề cập đến tiện ích này với tôi một thời gian trước

Không có gì thêm để thêm, bất kỳ nghi ngờ hoặc câu hỏi, khiếu nại hoặc đề nghị cho tôi biết.

Xin chào 😀


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   xykyz dijo

    Không phải là giấy phép bị vi phạm, mà là nó ngừng là phần mềm miễn phí ...

    1.    KZKG ^ Gaara dijo

      Phải, tất nhiên. Vấn đề là có một số tập lệnh cá nhân nhất định của tôi mà tôi không muốn người khác xem, ví dụ như vì một trong những tập lệnh này có mật khẩu ở dạng văn bản thuần túy của MySQL cục bộ của tôi hoặc một cái gì đó tương tự.

      1.    Morpheus dijo

        KHÔNG! Đừng lưu mật khẩu của bạn trong các tập lệnh!
        http://technosophos.com/content/dont-script-your-password-add-simple-prompts-shell-scripts

        1.    KZKG ^ Gaara dijo

          Trên thực tế, tôi giữ mật khẩu của mình 'ẩn' bằng SHA (https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/), sau đó trong script, tôi giữ mã băm mật khẩu và những gì tôi làm là so sánh mật khẩu mà người dùng nhập vào (tôi lưu nó với đọc), tôi nhận được tổng SHA và so sánh cả hai ở cuối 🙂

          Dù sao, cảm ơn bạn rất nhiều vì liên kết, tôi đã xem xét nó rồi 😀

          Liên quan

        2.    Hãy sử dụng Linux dijo

          Chính xác! Một lời nhắc shell yêu cầu mật khẩu là một giải pháp thay thế tốt.
          Chúc mừng! Paul.

          1.    msx dijo

            Nhưng nó không cung cấp một quá trình thực thi tự động và không cần giám sát như cách khác. 🙂

      2.    Willians vivanco dijo

        Đặt mật khẩu và quyền truy cập khác hoặc xâm phạm dữ liệu trong tập lệnh là một sai lầm lớn. Thông tin này phải được lưu trong một tệp khác, với quyền thích hợp của nó, vì vậy bạn sẽ không phải xáo trộn tập lệnh bash của mình. Dễ dàng hả?

        1.    KZKG ^ Gaara dijo

          Vấn đề với việc có dữ liệu (biến đăng nhập, confs, v.v.) trong một tệp khác là khi đó 'hệ thống' hoặc 'ứng dụng' cần 2 tệp để hoạt động, trong khi nếu tôi lưu trữ càng 'an toàn' thì mọi thứ trong một một tệp duy nhất, tôi chỉ cần ... một tệp duy nhất.

          1.    Morpheus dijo

            Thực hành tốt là tách ứng dụng khỏi dữ liệu.
            Hay đúng hơn đó là một thực hành tồi tệ để mã hóa dữ liệu!
            http://es.wikipedia.org/wiki/Hard_code
            Nó không liên quan gì đến việc bảo mật đặt mã và dữ liệu trong cùng một tệp. Và thậm chí nhiều hơn nữa, hoàn toàn ngược lại nếu bạn có mật khẩu của mình ở đó !!

          2.    Willians vivanco dijo

            Chi phí đọc thông tin nhạy cảm từ một tệp khác không đáng kể bên cạnh chi phí xử lý cần thiết để "không chắc chắn" mã của bạn.

            Mặt khác, bạn đang phá bỏ toàn bộ mô hình phát triển theo mô-đun, đặt cược vào một mô hình nguyên khối, hơn cả những gì đã được chứng minh, có nhiều vấn đề hơn là giải pháp.

          3.    msx dijo

            Ngoài ra, nếu bạn sử dụng các quyền nhất thiết phải liên quan đến các nhóm / người dùng khác, bạn sẽ vẫn cần mật khẩu ban đầu để thực thi tập lệnh đầu tiên.

          4.    msx dijo

            @KZKG nhận xét ở trên là phản hồi cho nhận xét của bạn
            @morpheus: nó hoàn toàn tương đối với nhu cầu cụ thể.

    2.    Morpheus dijo

      Nhưng có phần mềm miễn phí được biên dịch dưới dạng nhị phân (còn hơn cả obfuscate). Rằng nó miễn phí có nghĩa là nó cũng có nguồn, nhưng nó không liên quan gì đến việc làm xáo trộn (hoặc biên dịch, điều cần thiết nếu tôi muốn chạy một chương trình C chẳng hạn)

      1.    Willians vivanco dijo

        Trong trường hợp phần mềm miễn phí được biên dịch, nó là một câu hỏi về yêu cầu của ngôn ngữ được sử dụng (nếu bạn lập trình bằng C, bạn phải biên dịch để ứng dụng của bạn hoạt động). Và tương tự, luôn luôn, nếu nó thực sự là Phần mềm miễn phí, mã nguồn sẽ có sẵn.

  2.   Hyuuga_Neji dijo

    humm Tôi biểu thị một mức độ thờ ơ nhất định để chia sẻ mã lol để xem có bao nhiêu người cuối cùng bắt đầu "làm xáo trộn mã của họ" để khiến chúng ta phụ thuộc nhiều hơn vào các giải pháp của họ ...

    1.    KZKG ^ Gaara dijo

      Tôi không nói rằng mã có nên bị xáo trộn hay không ... Tôi đưa ra các công cụ, mỗi công cụ để sử dụng chúng theo nhu cầu của họ.

      1.    bình luận viên dijo

        Làm xáo trộn mã trên trang này?

        Tôi nghĩ rằng đó là một ý tưởng tốt để phân biệt người đọc, vì tôi cho rằng nhiều người truy cập blog này là tín đồ của phần mềm miễn phí, và do đó chúng tôi không chia sẻ thực hành mã làm xáo trộn.

        1.    msx dijo

          Rõ ràng là bạn đã không đọc lý do của KZKG để giải thích nhu cầu làm xáo trộn tập lệnh của nó.

          Cảm ơn KZKG đã chia sẻ phát hiện của bạn!

  3.   Gabriel dijo

    Và do đó vi rút bắt đầu lưu hành trong Linux ...

    Cá nhân tôi sẽ KHÔNG BAO GIỜ sử dụng bất kỳ tập lệnh khó hiểu nào. Không chỉ vì những rủi ro bảo mật liên quan, mà bởi vì nếu tập lệnh của bạn quá quý giá để chia sẻ thì tốt hơn bạn nên đặt nó vào * ulo; Tôi chắc chắn có thể tìm thấy ai đó muốn chia sẻ kiến ​​thức của họ.

    1.    KZKG ^ Gaara dijo

      Bạn có bao giờ sử dụng tập lệnh bị xáo trộn không ?, Chà, RẤT tốt cho bạn, tôi sẽ KHÔNG BAO GIỜ sử dụng tập lệnh bị xáo trộn ... chi tiết là, tôi chưa BAO GIỜ chia sẻ một tập lệnh bị xáo trộn, xa nó, và có bạn thân mến là nơi hiện tại có lỗi

      Bất cứ khi nào tôi làm điều gì đó trong Bash, tôi chia sẻ nó mà không cần cân nhắc hay làm phiền tôi, điều mà tôi đã làm trong nhiều bài viết ở đây 😀

      Chào mừng bạn đến với blog, rất hân hạnh được đọc bạn 😉

  4.   Percaff_TI99 dijo

    Gabriel, KZKG ^ Gaara đã chia sẻ kiến ​​thức, anh ấy sẽ không tạo bất kỳ gói linux nào với các tập lệnh bị xáo trộn mà nếu có thể là vi phạm giấy phép, nó chỉ tiết lộ các ứng dụng mà người ta có thể sử dụng hoặc không sử dụng cho riêng họ, điều đó không cần thiết thô lỗ, về mặt virus trong linux không phải là đơn giản, đây là một bài viết hay về nó https://blog.desdelinux.net/virus-en-gnulinux-realidad-o-mito/.
    KZKG ^ Gaara Tôi muốn bạn viết một bài về mã hóa và mật mã sử dụng hình ảnh, đó là một chủ đề mà tôi rất thích.
    Chúc mừng !!!

    1.    KZKG ^ Gaara dijo

      thanks
      Không hẳn là tôi có đủ kiến ​​thức về bảng mã và mật mã, ít nhất thì tôi không cảm thấy đủ tự tin để đăng bài và giả định những nghi ngờ mà người dùng có thể có 😀
      Trong chủ đề này, tôi không phải là người dùng nâng cao ...
      Điều tôi đã làm nhiều nhất là sử dụng GPG để mã hóa tệp và đối với hình ảnh, tôi đã làm nhiều nhất là 'chèn' hoặc ẩn tệp bên trong hình ảnh, làm rõ ràng rằng khi hình ảnh được mở bằng trình xem hình ảnh, mọi thứ đều được hiển thị chính xác, đây có phải là ý bạn?

      Một lần nữa, cảm ơn bạn rất nhiều vì nhận xét của bạn 🙂

  5.   chuột cống dijo

    Nếu tôi nhớ không lầm, có những chức vô địch C bị xáo trộn, nhưng nó không đáng để sử dụng một "bộ giải mã" mà họ phải làm xáo trộn nguồn của họ.

    Đối với shc và tập lệnh của bạn có mật khẩu ... cách làm việc rất tệ!

    Bài báo thú vị, như mọi khi.

    1.    KZKG ^ Gaara dijo

      Vâng, nhiều người đã nói với tôi LOL !!
      Cảm ơn bạn đã bình luận 🙂

  6.   không bao giờ dijo

    Về cơ bản, nếu bạn chia sẻ ứng dụng mà không chia sẻ tập lệnh hiển thị, bạn sẽ vi phạm GPL, điều này yêu cầu mọi thứ được tạo với ứng dụng GPL phải là GPL. Đó là lý do tại sao SHC tạo C, vì đó là mã mà bạn có thể chia sẻ.

    Liên quan

  7.   Hãy sử dụng Linux dijo

    Tôi đồng ý với ý kiến ​​của các độc giả khác: không những không phải là một thực hành tốt để lưu trữ dữ liệu và tập lệnh cùng nhau mà còn không có lợi cho sự phát triển của phần mềm miễn phí.
    Một cái ôm! Paul.

    1.    KZKG ^ Gaara dijo

      Xin chào Pablo 🙂
      Tôi có một số tập lệnh bị xáo trộn khác hoạt động nội bộ trên máy tính xách tay của mình, tôi làm xáo trộn nó vì đơn giản là tôi không muốn nếu ai đó vì lý do nào đó quản lý để sao chép tập lệnh của tôi sang một máy tính khác, tôi chỉ đơn giản là không muốn họ có thể xem những gì nó chứa, đó là một 'biện pháp bảo mật 'Tôi lấy.

      Tuy nhiên, ở đây DesdeLinux Tôi công khai mọi thứ hoặc hầu hết mọi thứ tôi lập trình trong Bash mà có thể thú vị.

      Tóm lại, bây giờ tôi không phải là người gièm pha SWL vì làm xáo trộn tập lệnh cá nhân, vì làm điều này vì mục đích cá nhân 😀

      Chào bạn

  8.   phòng thí nghiệm mật mã dijo

    Thông tin tốt. Ngoài những tranh cãi đang được tạo ra trong các bình luận, có vẻ như đối với tôi thông tin để tiếp tục điều tra thêm một chút.

    Tôi nghĩ rằng tác giả không có điểm nào trong bài báo cho chúng ta biết việc đó được thực hiện tốt hay không tốt hoặc chúng ta nên làm hay không nên làm điều đó, ông chỉ cho chúng ta biết công cụ có thể thực hiện nó trong trường hợp nó có lợi cho ai đó.

    Một lời chào.

    phòng thí nghiệm mật mã

    1.    f3niX dijo

      Trong blog Linuxeros, mọi thứ đều gây tranh cãi, haha ​​nó luôn như vậy.

      1.    msx dijo

        @ F3niX Tôi sẽ cắt một ảnh chụp màn hình với nhận xét của bạn để đặt nó mỗi khi ai đó đề cập đến chủ đề này một cách ngu ngốc.

        Lưu ý: hãy xem khi tôi tìm thấy bạn trên diễn đàn irc và Chakra 😉

    2.    KZKG ^ Gaara dijo

      CHÍNH XÁC!!
      Tôi chỉ đơn giản chỉ / dạy / giải thích một cái gì đó mới mà tôi học được, việc sử dụng kiến ​​thức này hay không là tùy thuộc vào bạn, tôi không ép buộc bạn xa nó.

      Theo tôi được biết, chia sẻ kiến ​​thức là một điều tích cực, đúng không? 0_oU

      Cảm ơn bạn đã bình luận, thật tốt khi biết rằng có nhiều hơn một hoặc hai người hiểu mục đích thực sự của bài viết này.

  9.   Percaff_TI99 dijo

    Ở đó bạn đã đặt tôi vào một tình huống chặt chẽ xD, một vài tuần trước, tôi đã chuẩn bị một bài đăng có tiêu đề «Cài đặt và thử nghiệm Crux» và mặc dù thực tế là quá trình cài đặt đã được thực hiện thành công, tôi là một người dùng bình thường và tôi không biết liệu mình có thể đối phó với nghi ngờ của bên thứ ba, mục đích là nó phục vụ như một công cụ thảo luận về các ưu điểm và khuyết điểm của bản phân phối này và các giải pháp khả thi cho các vấn đề có thể phát sinh, giúp chúng tôi giữa tất cả người dùng và độc giả. Khi tôi hoàn thành nó và gửi nó để xem xét, bạn (Quản trị viên) sẽ quyết định. Đối với vấn đề mật mã trong hình ảnh, nó cũng giống như vậy, cảm ơn KZKG ^ Gaara đã trả lời.

    Chúc mừng!

    1.    KZKG ^ Gaara dijo

      Ok, hân hạnh, tôi sẽ đăng một bài về điều đó 😉

  10.   makubex uchiha dijo

    hướng dẫn tuyệt vời người anh em, tôi thấy nó rất hữu ích: 3
    cho những ai muốn cài đặt nó trong manjaro linux và các dẫn xuất của Archlinux, gói này có tên: shc

    Liên quan

  11.   marcos dijo

    Xin lỗi bạn, tôi có một tập lệnh nhỏ chuyển đổi CHỮ HOA thành chữ thường trong khay nhớ tạm (xclip)

    tập lệnh hoạt động bình thường khi không bị xáo trộn

    #! / bin / bash
    xclip -o> R1.txt
    con mèo R1.txt | tr [: trên:] [: dưới:]
    quăng đi ""
    rm R1.txt

    nhưng khi tôi muốn chạy tập lệnh bị xáo trộn
    nói với tôi

    ./M2m.sh: Thao tác không được phép
    Đã hoàn thành (bị giết)

    Hãy giúp tôi

    1.    KZKG ^ Gaara dijo

      Bạn đã cài đặt xclip chưa?

  12.   Cờ tổng hợp dijo

    Cần lưu ý rằng nó thực sự là một trình biên dịch bash, vì có trình biên dịch .bat hoặc .php.
    Tôi không biết mã tạo ra có được mã hóa và xáo trộn và không chịu được trình dịch ngược hay không, cần phải thử, vì đây không phải là lĩnh vực của tôi, tôi không nói có hay không, nhưng những gì tôi thấy nó là biên dịch một bash, trong. Bạn có thể thấy đoạn mã, trong điều kiện khó hiểu, tôi thấy rằng nó nằm trong các dòng trông giống như một trình bao khai thác, tôi không biết liệu chúng có thực sự bị xáo trộn hay không, vì không có mật khẩu nào được yêu cầu hoặc không biết, master.config nơi a từ khóa trước.

  13.   Juan David dijo

    bạn bè sẽ xảy ra rằng khi tôi làm xáo trộn tập lệnh của mình, anh ấy tạo ra tập lệnh mới với kết thúc cũ, tôi thực thi nó và thậm chí còn hoàn hảo. Nhưng khi mình đưa sang máy khác dùng linuz thì nó không chạy, nó đã có đầy đủ quyền, mình tạo launcher thì bảo là ứng dụng đầu cuối nhưng nó không hoạt động được, bạn vui lòng đợi phản hồi nhanh nhé.

    1.    KZKG ^ Gaara dijo

      Bạn đã biên dịch nó và bạn đang chạy nó trên một hệ thống có cùng kiến ​​trúc? Có nghĩa là, nó sẽ cung cấp cho bạn một lỗi nếu bạn biên dịch nó để làm xáo trộn nó trên hệ thống 32 bit và sau đó bạn cố gắng chạy nó trên hệ thống 64 bit hoặc ngược lại. Bạn hiểu?

      1.    Juan David dijo

        Không, nhưng tôi đã cung cấp định dạng cho cùng một máy tính, với cùng một hệ điều hành và nó không chạy, thậm chí nó không gửi lỗi.
        Tôi gọi nó bằng bảng điều khiển như sau: sudo /home/operations/script.x và tôi gặp lỗi này

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

        toàn bộ trường hợp

        1.    KZKG ^ Gaara dijo

          Hãy thử chạy nó KHÔNG biên dịch để xem liệu đó có phải là lỗi trong mã không

    2.    nick dijo

      Để có thể chạy tập lệnh bị xáo trộn trên các máy tính khác, bạn phải biên dịch nó với tùy chọn «-r Relax security. Tạo một tệp nhị phân có thể phân phối lại ', nếu không nó sẽ chỉ chạy trên máy mà tập lệnh đã được làm xáo trộn với SHC.
      Ví dụ:

      shc -r -f script.sh

  14.   william dijo

    Xin chào, tôi có một truy vấn, shc có thể được cài đặt trong bất kỳ loại bản phân phối Linux nào ?, ví dụ như red hat, cách cài đặt cho cái này như thế nào?
    Cảm ơn bạn!

  15.   ruy băng dijo

    Xin chào mọi người, ý kiến ​​của các bạn đã giúp tôi rất nhiều, nhưng tôi gặp vấn đề sau, khi obfuscation không hoạt động với tôi trong cùng một hệ thống nhưng với kiến ​​trúc khác nhau, nghĩa là nếu tôi làm nó ở 32 bit thì nó không thể chạy ở 64 bit. Có ai biết nếu nó thực sự có thể chạy trên các kiến ​​trúc khác nhau (32 và 64 bit)?