shc는 그 자체로 cc같은 컴파일러는 아니며, 쉘 스크립트를 암호화하고 인코딩하며,
expiration 기능이 추가된 C source 코드를 생성합니다.

shc의 주요한 목적은 쉘 스크립트를 수정하거나 조사하지 못하도록 하는 것입니다.
스크립트를 배포하고 싶지만, 스크립트를 다른 사람들에게 읽히는 것을 원치 않을 때 사용할 수 있습니다.

예를 들어, 스크립트 내부에 ftp자동 업로드나 telnet/ftp 자동 접속 등이 필요하여

부득이 쉘스크립트 내부에 암호를 사용해야 하는 경우,
shc를 이용하여 컴파일을 하면 암호가 누출될 가능성을 제거할 수 있습니다.

shc로 쉘스크립트를 컴파일 하게 되면, 쉘스크립트 이름 뒤에 .x 확장자가 붙은 바이너리 파일과

.x.c 확장자가 붙은 C source 가 생성됩니다.

예를 들어, 스크립트 이름이 match 라고 하면 shc로 컴파일 하게 되면

match.x 바이너리 파일과 match.x.c 라는 C source 파일이 생성됩니다.

ex) 테스트 예시

# ls –l

-rwxr-x--- 1 1000 1000 336 Feb 22 2003 match

..

# shc –v –f ./match (컴파일)

# ls –l

-rwxr-x--- 1 1000 1000 336 Feb 22 2003 match

-rwx--x--x 1 root root 8560 Jun 11 09:37 match.x

-rw-r--r-- 1 root root 11081 Jun 11 09:37 match.x.c

위와 같이 생성된 바이너리 match.x를 쉘스크립트처럼 수행합니다.


, C 프로그램처럼 속도 향상을 제공하지는 않습니다.

shc 역시 원래의 스크립트와 같이 정확히 동작하는 stripped 바이너리를
컴파일하기 위해 시스템에 설치된 컴파일러를 사용합니다.

shc는 Linux 및 Unix 계열 플랫폼에서 사용 가능합니다.

 

'Programming > Script' 카테고리의 다른 글

GETOPTS  (0) 2023.04.17
[awk] awk 연습 예제  (0) 2014.08.28
[awk] The switch Statement  (0) 2014.08.28
[awk] Time Functions  (0) 2014.08.28
[awk] gawk - Date and time calculation functions  (0) 2014.08.28
[awk] The GNU Awk User's Guide  (0) 2014.08.28
[awk] The AWK Manual  (0) 2014.08.28
[RHEL] SU와 EOF 사용시 내부 변수 처리  (0) 2014.05.07
awk 패턴 이용하기  (0) 2014.05.07
[OS] Awk - A Tutorial & Introduction (Bruce Barnett)  (0) 2009.01.12

+ Recent posts