맨위로가기

Strip

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

strip은 GNU 바이너리 유틸리티 중 하나로, 컴파일된 바이너리 또는 오브젝트 파일에서 실행에 불필요한 정보를 제거하는 데 사용된다. 일반적으로 디버깅 정보와 심볼 테이블을 제거하여 역설계를 어렵게 만들어 바이너리 보안을 강화한다. 컴파일러 또는 링커를 사용하여 동일한 작업을 수행할 수도 있으며, GNU 컴파일러 모음(GCC)의 `-s` 옵션을 통해 링커가 디버깅 정보와 심볼을 제거하도록 할 수 있다. GNU 프로젝트는 GNU Binutils 패키지의 일부로 strip을 제공하며, Microsoft Windows를 포함한 다른 운영 체제로 이식되었다.

더 읽어볼만한 페이지

  • 유닉스 프로그래밍 도구 -
    펄은 래리 월이 개발한 텍스트 조작에 강점을 가진 다목적 프로그래밍 언어이며, 1987년 펄 1.0이 처음 공개된 이후 여러 버전 업데이트를 거쳐 객체 지향 프로그래밍과 유니코드 지원 기능을 추가했고, 현재 펄 5가 널리 사용되며 CPAN을 통해 방대한 모듈 생태계를 제공한다.
  • 유닉스 프로그래밍 도구 - GNU 컴파일러 모음
    GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다.
  • 유닉스 SUS2008 유틸리티 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 유닉스 SUS2008 유틸리티 - 로케일
    로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Strip - [IT 관련 정보]에 관한 문서
설명
유형표준 유닉스 유틸리티
개발자데니스 리치 (AT&T 벨 연구소)
다양한 오픈 소스상용 개발자
최초 릴리스1972년 6월 12일
프로그래밍 언어C
운영 체제유닉스
유닉스 계열
플랜 9
마이크로소프트 윈도우
플랫폼크로스 플랫폼
장르명령
라이선스플랜 9: MIT 라이선스

2. 설명

`strip`은 GNU 바이너리 유틸리티 중 하나로, 컴파일된 바이너리 또는 오브젝트 파일에서 실행에 필요하지 않은 정보를 제거하는 데 사용된다.[1] 이 정보에는 일반적으로 디버깅 정보와 심볼 테이블이 포함되지만, 바이너리에 대한 변경 사항의 정확한 범위는 명령줄 옵션을 사용하여 프로그램 구현자의 재량에 맡겨진다.[1]

`strip`을 사용하면 역설계를 어렵게 만들어 바이너리의 보안을 강화할 수 있다. 심볼 및 디버깅 정보가 없으면 바이너리의 프로그램 분석이 복잡해진다.

`strip`의 효과는 컴파일러 또는 링커를 사용하여 동일한 프로세스를 수행함으로써 직접 얻을 수도 있다. 컴파일러는 C 또는 C++와 같은 고급 프로그래밍 언어로 작성된 소스 코드를 컴퓨터 프로세서가 실행할 수 있는 머신 코드로 변환하는 프로그램이다. 반면에 링커는 컴파일러가 생성한 하나 이상의 오브젝트 파일을 가져와 단일 실행 파일로 결합하여 그 사이의 모든 심볼 참조를 해결한다.[2]

예를 들어, GNU 컴파일러 모음 (GCC)에서는 `gcc`와 함께 "`-s`" 옵션을 사용하여 이 작업을 수행한다. 이렇게 하면 링커가 링크 프로세스 중에 디버깅 정보와 심볼을 제거하여 더 작고 strip된 실행 파일을 생성한다.[2]

GNU 프로젝트는 GNU Binutils 패키지의 일부로 `strip` 구현을 제공한다. `strip`은 Microsoft Windows를 포함한 다른 운영 체제로 이식되었다.

2. 1. 제거되는 정보

`strip`은 GNU 바이너리 유틸리티 중 하나로, 컴파일된 바이너리 또는 오브젝트 파일에서 실행에 필요하지 않은 정보를 제거하는 데 사용된다.[1] 제거되는 정보에는 일반적으로 디버깅 정보와 심볼 테이블이 포함되지만, 명령줄 옵션을 사용하여 정보의 범위를 조절할 수 있다.[1]

`strip`을 사용하면 역설계를 어렵게 만들어 바이너리의 보안을 강화할 수 있다. 심볼 및 디버깅 정보가 없으면 바이너리의 프로그램 분석이 복잡해진다.

`strip`의 효과는 컴파일러 또는 링커를 사용하여 동일한 프로세스를 수행함으로써 직접 얻을 수도 있다. 예를 들어, GNU 컴파일러 모음 (GCC)에서는 `gcc`와 함께 "`-s`" 옵션을 사용하여 링커가 링크 프로세스 중에 디버깅 정보와 심볼을 제거하여 더 작고 strip된 실행 파일을 생성한다.[2]

GNU 프로젝트는 GNU Binutils 패키지의 일부로 `strip` 구현을 제공한다. `strip`은 Microsoft Windows를 포함한 다른 운영 체제로 이식되었다.

2. 2. 보안 강화

`strip`은 컴파일된 바이너리 또는 오브젝트 파일에서 실행에 필요하지 않은 정보를 제거하는 GNU 바이너리 유틸리티 중 하나이다.[1] 제거되는 정보에는 디버깅 정보와 심볼 테이블이 포함되지만, 명령줄 옵션을 통해 프로그램 구현자가 변경 범위를 조절할 수 있다.[1]

`strip`을 사용하면 역설계를 어렵게 만들어 바이너리의 보안을 강화할 수 있다. 심볼 및 디버깅 정보가 제거되면 바이너리의 프로그램 분석이 복잡해진다.

`strip`의 효과는 컴파일러나 링커를 사용하여 직접 얻을 수도 있다. 예를 들어, GNU 컴파일러 모음 (GCC)에서는 `gcc`와 함께 `-s` 옵션을 사용하면 링커가 링크 프로세스 중에 디버깅 정보와 심볼을 제거하여 더 작고 strip된 실행 파일을 생성한다.[2]

GNU 프로젝트는 GNU Binutils 패키지의 일부로 `strip` 구현을 제공하며, Microsoft Windows를 포함한 다른 운영 체제로 이식되었다.[1]

2. 3. 컴파일러 및 링커를 통한 strip

3. GNU 프로젝트

4. 예시

`strip` 명령어의 사용 예시는 다음과 같다.

```text

$ strip foobar

```

참조

[1] 웹사이트 Linux Strip Command https://www.computer[...] 2024-10-01
[2] 웹사이트 What is the difference between "gcc -s" and a "strip" command? https://stackoverflo[...] 2024-10-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com