bash 스크립트에서 코드를 난독 화하거나 숨기는 방법

때때로 우리는 스크립트를 강타 그리고 우리는 이것의 코드가 보이지 않도록, 즉 일반 텍스트가 아니기를 원합니다. 코드 숨기기에 대해 이야기 할 때 올바른 용어는 난독 화하다, 제 경우에는 코드를 난독 화하고 싶었습니다. 내가 얼마 전에했던 스크립트, 내가 찾은 유틸리티는 다음과 같습니다. shc

shc 코드를 난독화할 수 있습니다. 사용하는 단계는 다음과 같습니다.

1. 먼저 다운로드해야합니다.

SHC v3.8.9 다운로드

2. 다운로드가 완료되면 압축 파일을 마우스 오른쪽 버튼으로 클릭하고«여기에서 추출"또는 비슷한 것. 그러면 다음과 같은 폴더가 표시됩니다. shc-3.8.9, 여기에 해당 콘텐츠의 스크린 샷이 표시됩니다.

3. 좋습니다. 폴더가 /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. 링크가 생성되면 설치 만든다 루트 권한 (우리는 sudo를 사용할 것입니다):

 sudo make install

 4. 우리에게 암호를 묻고 잠시 기다릴 것이고 우리가 키를 누를 때까지 기다릴 것입니다 [과] 그리고 누르십시오 [시작하다]즉, 소프트웨어를 설치할 것임을 확인합니다. 이 작업이 완료되면 문제없이 설치됩니다. 전체 준비 및 설치 과정의 스크린 샷을 남겨드립니다.

 


끝에서 볼 수 있듯이 오류가 발생했습니다.이 오류는 내 시스템에 특정 폴더가 존재하지 않는다는 사실을 나타냅니다. 이것을 본다면 단순히 중요성을 부여하지 마십시오 ... SHC 성공적으로 설치되었습니다 😉
그래서 그들은 실행할 수 있습니다 sudo make install es 필요한 패키지를 설치하십시오. GCC y 확인

5. 완료, 이것이 설치를위한 것입니다 😀

설치가 완료되면 사용 방법을 배우면됩니다. 우리 집에 다음과 같은 스크립트가 있다고 가정합니다. 스크립트.sh 그 내용은 다음과 같습니다.

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

이 스크립트를 실행하면 터미널에 다음 메시지가 표시됩니다.«테스트 스크립트 DesdeLinux.NET"아니요? … 그러나 이제 우리는 그 코드를 난독화할 것입니다.

터미널에 다음을 입력하고 [시작하다]:

shc -v -f $HOME/script.sh

그리고 빙고! 준비 😀

이로 인해 스크립트와 함께 두 개의 새 파일이 생성되었습니다. 이제 스크립트.sh.x y script.sh.xc

script.sh.x-» 이것은 우리의 난독 화 된 bash 스크립트입니다.이 스크립트를 실행하면 우리가 만든 첫 번째 스크립트와 똑같은 작업을 수행합니다. 차이점은 텍스트 편집기 (nano, kate, gedit 등)로 열면 첫 번째 스크립트라는 것입니다. 내용을 명확하게 볼 수 있지만 스크립트.sh.x 우리는 아무것도 볼 수 없다는 것을 분명히 볼 것입니다 ... LOL !!!, 즉 코드가 '암호화'되었습니다 🙂

script.sh.xc-» 이것은 우리의 스크립트이지만 C 언어로 ... 우리가 정말로 필요하지 않기 때문에 걱정없이 삭제할 수 있습니다. 적어도 전혀 필요하지 않을 것입니다 🙂

내가 아는 한 (bash 스크립트 코드를 숨기거나 난독 화하는) 라이센스 등을 위반하지 않는다는 것을 명확히하기 위해 기술적 인 측면에 실제로 추가 할 것이 많지 않습니다. 나는 몇 달 전 페이스 북에서 내가 bash 코드를 난독 화하는 법을 배웠다고 언급했을 때 일부 사용자가 이것이 라이선스 또는 이와 비슷한 것을 위반하고 있다고 경고했기 때문에 이것을 명확히했습니다. 이것으로 😉

매우 감사합니다 마티아스 가스통 얼마 전에이 유틸리티에 대해 언급 한

더 이상 추가 할 사항이 없으며 의심이나 질문, 불만 또는 제안이 있으면 알려주십시오.

인사 😀


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   엑시키즈

    라이센스 위반이 아니라 자유 소프트웨어가되는 것을 멈추는 것입니다.

    1.    KZKG ^ 가아라

      물론입니다. 요점은 다른 사람이 보지 않기를 원하는 특정 개인 스크립트가 있다는 것입니다. 예를 들어 이러한 스크립트 중 하나는 내 로컬 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 ^ 가아라

          다른 파일에 데이터 (로그인 변수, conf 등)가있는 문제는 '시스템'또는 '응용 프로그램'이 작동하는 데 2 ​​개의 파일이 필요하지만 모든 것을 '안전한'방식으로 가능한 단일 파일로 저장하면 , 글쎄요, 저는 그게 ... 하나의 파일 만 필요합니다.

          1.    모르페우스

            데이터에서 애플리케이션을 분리하는 것이 좋습니다.
            또는 데이터를 하드 코딩하는 것은 끔찍한 관행입니다!
            http://es.wikipedia.org/wiki/Hard_code
            코드와 데이터를 동일한 파일에 넣는 보안과는 아무런 관련이 없습니다. 그리고 거기에 비밀번호가 있으면 그 반대입니다 !!

          2.    윌리 안 비 반코

            다른 파일에서 중요한 정보를 읽는 비용은 코드를 "취득"하는 데 필요한 프로세서 비용 옆에 무시해도됩니다.

            반면에 모듈 식 개발의 전체 패러다임을 버리고 입증 된 것보다 솔루션보다 더 많은 문제가있는 모 놀리 식 모델에 베팅합니다.

          3.    MSX

            또한 반드시 다른 그룹 / 사용자를 포함 할 권한을 사용하는 경우에도 첫 번째 스크립트를 실행하려면 초기 암호가 필요합니다.

          4.    MSX

            @KZKG 위의 의견은 귀하의 의견에 대한 응답입니다
            @morpheus : 특정 요구에 절대적으로 관련됩니다.

    2.    모르페우스

      그러나 바이너리로 컴파일 된 자유 소프트웨어가 있습니다 (난독 화 이상의 것입니다). 무료라는 것은 소스도 있음을 의미하지만 난독 화 (예를 들어 C 프로그램을 실행하려는 경우 필수 인 컴파일)와는 관련이 없습니다.

      1.    윌리 안 비 반코

        컴파일 된 자유 소프트웨어의 경우 사용되는 언어의 요구 사항이 문제입니다 (C로 프로그래밍하는 경우 응용 프로그램이 작동하려면 컴파일해야합니다). 그리고 항상 똑같이, 그것이 정말로 자유 소프트웨어라면, 소스 코드를 사용할 수있을 것입니다.

  2.   휴우가 _ 네지

    흠 나는 코드를 공유하는 데 어느 정도 무관심 함을 나타냅니다. 얼마나 많은 사람들이 그들의 솔루션에 더 의존하게 만들기 위해 "코드를 난독 화"하기 시작하는지보기 위해 hehehe ...

    1.    KZKG ^ 가아라

      나는 코드가 난독 화되어야한다고 말하는 것이 아니다. 나는 각각의 필요에 따라 사용할 수있는 도구를 제공한다.

      1.    시사 해설자

        이 페이지의 코드를 난독 화 하시겠습니까?

        나는이 블로그를 방문하는 많은 사람들이 자유 소프트웨어의 추종자라고 생각하기 때문에 독자들과 거리를 두는 것이 좋은 생각이라고 생각합니다. 따라서 우리는 코드를 난독 화하는 관행을 공유하지 않습니다.

        1.    MSX

          당신은 분명히 KZKG가 주장하는 이유와 그것이 그 스크립트를 난독화할 필요성을 설명하는 이유를 읽지 않았습니다.

          당신의 발견을 공유 해주셔서 감사합니다

  3.   가브리엘

    따라서 바이러스가 Linux에서 유포되기 시작합니다 ...

    개인적으로 나는 난독 화 된 스크립트를 절대 사용하지 않을 것입니다. 관련된 보안 위험 때문일뿐만 아니라 스크립트가 공유하기에 너무 소중하다면 * ulo에 넣는 것이 좋습니다. 나는 그들의 지식을 공유하고 싶은 사람을 확실히 찾을 수있다.

    1.    KZKG ^ 가아라

      난독 처리 된 스크립트를 절대 사용하지 않겠습니까?, 음, 난독 처리 된 스크립트는 절대 사용하지 않을 것입니다. 존재합니다 😉

      Bash에서 무언가를 할 때마다 무게를 지거나 귀찮게하지 않고 공유합니다. 이미 여기에있는 많은 기사에서 😀

      블로그에 오신 것을 환영합니다.

  4.   퍼카프_TI99

    Gabriel, KZKG ^ Gaara는 이미 지식을 공유하고 있습니다. 그는 난독 화 된 스크립트로 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 ^ 가아라

      안녕하세요 Pablo 🙂
      랩톱에서 내부적으로 작동하는 다른 난독 화 된 스크립트가 있는데, 누군가가 어떤 이유로 내 스크립트를 다른 컴퓨터에 복사 할 수 있다면 그 내용을 볼 수 없게하는 것을 원하지 않기 때문에 난독 화합니다. 포함, 그것은 '보안 조치'입니다.

      그러나 여기에서는 DesdeLinux 나는 Bash에서 내가 프로그래밍한 흥미로울 수 있는 거의 모든 것을 공개합니다.

      어쨌든, 개인 스크립트를 난독 화하는 것은 아닙니다. 개인적인 목적을 위해 이것을하기 위해 저는 SWL을 비방하는 사람입니다 😀

      인사 친구

  8.   코드 랩

    좋은 정보입니다. 댓글에서 발생하는 논란과는 별개로 조금 더 조사를 계속하는 것이 정보 인 것 같습니다.

    기사의 어느 시점에서도 저자는 그것이 좋은지 나쁜지 또는 우리가 해야할지 말아야하는지 알려주지 않고 누군가에게 도움이 될 때 할 수있는 도구를 단순히 우리에게 말하지 않는다고 생각합니다 .

    인사말.

    코드 랩

    1.    f3niX

      Linuxeros 블로그에서는 모든 것이 논란의 여지가 있습니다. 하하 그것은 항상 그랬습니다.

      1.    MSX

        @ F3niX 누군가가 주제에 대해 어리석은 언급을 할 때마다 댓글과 함께 스크린 샷을 잘라낼 것입니다.

        참고 : irc 및 Chakra 포럼을 통해 당신을 찾을 때 보자 😉

    2.    KZKG ^ 가아라

      정확한!!
      나는 단순히 내가 배운 새로운 것을 보여 주거나 가르치고 설명합니다.이 지식을 사용하는 것은 당신에게 달려 있습니다.

      내가 아는 한 지식을 공유하는 것은 좋은 일입니다. 0_oU

      의견을 보내 주셔서 감사합니다.이 기사의 진정한 목적을 이해하는 사람이 한두 명 이상이라는 것을 알게되어 기쁩니다.

  9.   퍼카프_TI99

    몇 주 전에 저는 "Crux의 설치 및 테스트"라는 제목의 게시물을 준비해 왔으며 설치가 성공적으로 수행 되었음에도 불구하고 저는 일반 사용자입니다. 그리고 제 XNUMX 자의 의심에 대처할 수 있을지 모르겠습니다. 의도는이 배포판의 미덕과 결함에 대한 토론 도구 역할을하고 발생할 수있는 문제에 대한 해결책을 모든 사용자와 독자. 완료하고 검토를 위해 보내면 귀하 (관리자)가 결정합니다. 이미지 암호화 문제에 관해서도 마찬가지였습니다. 답변 해주신 KZKG ^ Gaara에게 감사드립니다.

    안녕하십니까!

    1.    KZKG ^ 가아라

      좋아, 나는 그것에 대한 게시물을 만들 것이다 😉

  10.   마쿠 벡스 우치하

    훌륭한 tuto bro 나는 그것이 매우 유용하다는 것을 알았다 : 3
    manjaro linux 및 archlinux의 파생물에 설치하려는 사람들을 위해 패키지는 이름이 shc 인 aur에 있습니다.

    안부

  11.   마르코스

    실례합니다, 친구, 대문자를 클립 보드 (xclip)에있는 소문자로 변환하는 작은 스크립트가 있습니다.

    난독 화되지 않은 스크립트는 정상적으로 작동합니다.

    #! / bin / bash
    xclip -o> R1.txt
    고양이 R1.txt | tr [: 위쪽 :] [: 아래쪽 :]
    던졌다 ""
    RM R1.txt

    하지만 난독 화 된 스크립트를 실행하고 싶을 때
    나 주사위

    ./M2m.sh : 작업이 허용되지 않음
    완료 (죽임)

    도와주세요

    1.    KZKG ^ 가아라

      xclip이 설치되어 있습니까?

  12.   신플래그

    .bat 컴파일러 또는 .php가 있기 때문에 실제로 bash 컴파일러라는 점에 유의해야합니다.
    생성하는 코드가 암호화되고 난독 화되어 있고 디 컴파일러를 견딜 수 없는지 모르겠습니다. 내 분야가 아니기 때문에 시도해 볼 필요가있을 것입니다. 예 또는 아니오라고 말하지 않지만 컴파일이 수행됩니다. bash, .c에서 코드를 볼 수 있습니다. 난독 화 된 내에서 악용 셸처럼 보이는 줄에 있음을 알 수 있습니다. 실제로 난독 화되었는지 알 수 없습니다. 요청했거나 모르겠습니다. master.config 이전 키워드.

  13.   후안 데이비드

    친구 내가 내 스크립트를 난독 화하면 그는 ex ending으로 새 스크립트를 생성하고 실행하고 심지어 완벽합니다. 그러나 linuz를 사용하여 다른 컴퓨터로 가져 가면 실행되지 않고 이미 모든 권한이 있습니다. 런처를 만들고 터미널 응용 프로그램이라고 말했지만 작동하지 않습니다. 프롬프트 응답을 기다리십시오.

    1.    KZKG ^ 가아라

      컴파일하고 동일한 아키텍처의 시스템에서 실행하고 있습니까? 즉, 32 비트 시스템에서 난독 처리하기 위해 컴파일 한 다음 64 비트 시스템에서 실행하려고하거나 그 반대의 경우 오류가 발생합니다. 이해해?

      1.    후안 데이비드

        아니요,하지만 이미 동일한 운영 체제를 사용하는 동일한 컴퓨터를 포맷하고 실행되지 않으며 오류도 보내지 않습니다.
        다음과 같이 콘솔로 호출합니다. sudo /home/operations/script.x 그리고이 오류가 발생합니다.

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

        전체 사건

        1.    KZKG ^ 가아라

          컴파일하지 않고 실행하여 코드 오류인지 확인하십시오.

    2.   

      다른 컴퓨터에서 난독 처리 된 스크립트를 실행하려면«-r Relax security 옵션을 사용하여 컴파일해야합니다. 재배포 가능한 바이너리를 '만드십시오. 그렇지 않으면 스크립트가 SHC로 난독 화 된 시스템에서만 실행됩니다.
      예 :

      shc -r -f script.sh

  14.   윌리엄

    안녕하세요, 질문이 있습니다. shc는 모든 유형의 Linux 배포판에 설치할 수 있습니까? 예를 들어 red hat,이 배포판에 대한 설치 방법은 무엇입니까?
    당신을 감사하십시오!

  15.   Ruyzz

    안녕하세요 여러분, 귀하의 의견은 저에게 많은 도움이되었지만 동일한 시스템에서 난독 화가 작동하지 않지만 아키텍처가 다른 경우, 즉 32 비트에서 수행하면 64 비트에서 실행할 수없는 경우 다음과 같은 문제가 있습니다. . 다른 아키텍처 (32 비트 및 64 비트)에서 실제로 실행할 수 있는지 아는 사람이 있습니까?