2011-03-28 4 views
2
bash-2.05$ what xxx 
ndmpd: 
    Product:  yyy 
    Release: 
    Build number: unknown user-2011-87 
    Build date: Mon Mar 28 20:51:25 2011 
    Build arch.: solaris 
    Build info: unknown host:/xx/yyy/zzz/vv/www,DBG=1,OPT=-O 

실행 파일 (xxx)에서 what 명령을 실행할 때. 우리는 다음 줄을 인쇄하는 것을 원하지 않습니다.어떤 명령에 대한 빌드 정보 제거

Build info: unknown host:/export/home/murugs2/SI/dev,DBG=1,OPT=-O 

얼마나 오래된 프로그래머가이 작업을했는지 모르겠습니다. 나는 이것을 제거하고 싶다. 그것을하는 방법? src 파일 (C++ 코드)은 gcc를 사용하여 컴파일됩니다.

+0

누구든지 제품 이름 등의 정보를 추가하는 방법을 알고 있습니다. 그래서 어떤 명령으로 표시 할 수 있습니까? – suresh

답변

0

컴파일 된 바이너리가 사용하지 않는다고 가정하면 모든 문자를 - 또는 그 밖의 것으로 변경하여 직접 문자열을 편집 할 수 있습니다. 나는 그것을 할 수있는 유틸리티를 모르지만, 당신을 도울 수 있습니다.

+0

패치가 제대로 작동하지만 "스트립"은 이러한 특정 문자열이 실행 데이터의 일부이므로 여분의 디버깅 또는 심볼 정보가 아니기 때문에 특정 케이스에서 도움이되지 않습니다. – jlliagre

2

이 문자열은 대상 파일에있는 SCCS 버전 정보 패턴에 해당합니다.

바이너리를 패치하여 원치 않는 것을 제거 할 수 있지만 가장 간단한 방법은 소스 코드에서 패치를 제거하는 것입니다. "@ (#)"토큰을 찾아서 쉽게 찾을 수 있습니다.

는 예 :보고, 삭제할 수 있습니다

char sccsid[] = "@(#) Build info: unknown host:/xx/yyy/zzz/vv/www,DBG=1,OPT=-O"; 
1

이는 일반적으로 ELF 코멘트 섹션에 저장되어, 추가 또는 /usr/ccs/bin/mcs 명령에 다양한 옵션으로 대체.

관련 문제