쉘스크립트 암호화 (바이너리 파일로 변환) - shc, bash-obfuscate

리눅스/OS 일반|2014. 12. 31. 00:01
반응형

[방법1]

# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz

# tar zxvf shc-3.8.7.tgz

# cd shc-3.8.7

# make

# ./shc -r -v -T -f script.sh

 

최근에 (2021. 11) 확인해보니 간단히 레포지토리에서 받아올 수 있었습니다.

# yum install shc

 

* 참고

- script.sh.x 라고 생성된 파일이 바이너리 파일입니다.

- 스크립트 상단에 반드시 #!/bin/bash 가 있어야 변환됩니다.

- 스크립트 구동 가능 날짜 제한

# shc -e 31/12/2016 -m "The end" -f script.sh

// 2016년 12월 13일 이후에는 "The end" 라는 메세지가 출력되며 구동이 되지 않습니다.

* 단점 : sleep 등 스크립트 내 지연 작업이 있는경우 ps 명령으로 소스가 노출 됨

 

 shc-3.8.7.tgz

 

[방법2]

CentOS 8 에서 테스트 하였습니다.

# npm install -g bash-obfuscate
# bash-obfuscate script.sh -o script_new.sh

 

실제로는 바이너리 파일로 변환하는게 아니고 문자열을 쪼개서 변수에 넣고 변수를 조합하는 식으로 난독화 합니다.

변환 된 파일을 쉘스크립트 처럼 구동 하면 됩니다.

# sh script_new.sh

 

 

반응형

댓글()