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 |