영어프랑스어스페인어

Ad


온웍스 파비콘

abicheck - 클라우드에서 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 abicheck 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 abicheck입니다.

프로그램:

이름


abicheck - 개인 또는 진화하는 기호에 대한 호출에 대한 응용 프로그램 바이너리 확인
라이브러리 및 일부 시스템 라이브러리의 정적 링크용.

개요


아비체크 [-h] [-k] [-a] [-I] [-v] [-f 목록 파일] [-또는 아웃파일] [-NS 무늬] [-이자형 무늬] [-제이
n잡] [-엘 도서관] [-엘 경로] [(-s|-S) DB 파일] [(-d|-D) DB 파일] [-영형 DB 파일] [-NS
목록 파일] 파일

기술


아비체크 응용 프로그램 바이너리에서 실행되고 다음 중 하나가 있을 때마다 경고를 발행합니다.
세 가지 조건이 감지됩니다.

· 프라이빗 투어 상징 용법. 개인 기호는 라이브러리의 함수 또는 데이터 변수입니다.
해당 패키지 내부에 있는 패키지. 패키지의 라이브러리에서 사용됩니다.
내부 통신용이며 애플리케이션 개발자가 사용하는 API/ABI의 일부가 아닙니다.
사용해야합니다.

· 진화하는 상징 용법. 진화하는 기호는 라이브러리의 함수 또는 데이터 변수입니다.
개발자가 사용하도록 의도되었지만 "진화 중"으로 표시된 패키지 또는
이후 릴리스에서 호환되지 않거나 사라질 수 있다는 의미에서 "불안정한"
라이브러리 패키지의

· 정적인 연결. 시스템 라이브러리(예: libc.a)의 정적 링크
응용 프로그램은 일반적으로 시스템 라이브러리 코드가 "고정"되기 때문에 좋은 생각이 아닙니다.
응용 프로그램 바이너리가 시스템의 이후 릴리스와 호환되지 않을 수 있습니다. 아비체크
몇 가지 시스템 라이브러리의 정적 연결을 감지하려고 시도합니다.

기본 동작은 검사된 각 이진 개체에 대해 해당 개체의 직접 호출을 검사하는 것입니다.
바이너리 객체만. NS -l 옵션은 바이너리 객체가 가져오는 라이브러리를 허용합니다.
그들의 전화도 확인되었습니다.

옵션


다음 옵션이 지원됩니다.

-k 심각한 오류가 있더라도 바이너리를 계속 확인하십시오(동적 링커 보고
해결되지 않은 기호, ldd(1) 오류, 감지된 기호 없음).

-h 긴 형태의 도움말을 인쇄하십시오.

-v 말 수가 많은. 추가 정보를 인쇄하십시오.

-f 목록 파일
XNUMXD덴탈의 목록 파일 한 줄에 하나씩 검사할 이진 개체 목록이 포함된 파일입니다.
이 목록은 명령줄에서 인수로 제공된 모든 파일에 추가됩니다. 만약에
목록 파일 "-"이면 stdin이 사용됩니다.

-o 아웃파일
에 출력 쓰기 아웃파일 stdout 대신.

-p 무늬
버전 이름 패턴 일치 레이블을 지정하는 비공개 버전 집합을 수정합니다. 기본값은
/사적인/ 대소문자를 구분하지 않는 일치를 사용합니다.

정규식의 구성 요소인 경우 무늬 연속으로 두 개의 콜론을 포함합니다. 패트1::패트2,
다음 여부를 확인하여 기호 수준 일치가 활성화됩니다. 버전::기호 or
라이브러리::기호 성냥 무늬 (여기서 기호 이름, 버전(있는 경우) 및
라이브러리 기본 이름이 대체됩니다. 상징, 버전도서관). 예를 들어,

-p 'FOO_VERS.*::_foopriv'
or
-p 'libfoo.so.*::_foopriv'

-e 무늬
과 동일 -p 그러나 "진화하는"인터페이스를 위해.

-L ldpath
설정 LD_LIBRARY_PATH 환경 변수 ldpath 동적을 호출하기 전에
링커. 사용하다 -L "" 설정 해제 LD_LIBRARY_PATH.

구성 요소 중 하나인 경우 ldpath 문자열 "찾기"이고 모든 공유 라이브러리
in 파일 발견되고 해당 경로가 "찾기" 위치에 삽입됩니다. 참고
순서는 무작위입니다.

-l 도서관
공유 라이브러리의 기본 이름 또는 전체 경로 이름 추가 도서관 목록에
개인 전화를 걸기 위해 검사할 개체입니다. 이 옵션은 다음보다 더 많이 발생할 수 있습니다.
명령줄에 한 번 추가되며 추가됩니다. 기본적으로 직접 전화만
시스템 라이브러리에 대한 바이너리가 확인됩니다. NS -l 스위치는 다음을 확인할 수 있습니다.
간접 호출 예: app -> supportlib -> systemlib.

-a 모든 공유 파일의 목록을 확인하고 수집하기 전에 모든 바이너리를 반복합니다.
사물. 발견된 각 공유 객체의 기본 이름을 취하고 마치
로 지정된 -l 옵션 옵션을 선택한 다음 abicheck 검사를 실행하십시오. 이 방법,
모든 "응용 프로그램 내부"객체의 호출이 확인됩니다.
직접 전화. (공유 객체에 종속성이 없을 때 유용합니다.
녹음.)

-I 검사 시 공유 라이브러리는 무시하고 실행 파일만 검사합니다. 호환 가능 -ㅏ
라이브러리가 먼저 검색되지만 확인되지는 않습니다.

-d DB 파일, -D DB 파일
동적(공개 및 비공개)에 대한 대체 플랫 파일 기호 데이터베이스 지정
시험. 이러한 분류는 라이브러리에 버전이 지정되지 않은 경우(즉,
라이브러리 자체에 분류가 존재하지 않음). 사용하다 -D 만을 나타내기 위해
정보 DB 파일 사용되어야한다. 라인 DB 파일 이 중 하나가 될 수 있습니다
형태 :

라이브러리|기호
라이브러리|클래스|기호
라이브러리|파일=경로

도서관 지정할 라이브러리의 전체 경로여야 합니다.
기본 이름).

첫 번째 형식 표시 상징 비공개로.

두 번째 형식 표시 상징수업 어디에 수업 공개, 비공개 또는
진화하는.

세 번째 형식은 파일을 나타냅니다. 통로 필요할 때 필요에 따라 열어야 합니다. 도서관 is
처음 접함. 파일 통로 다음을 제외한 처음 두 형식의 행을 포함합니다.
도서관 들. 세 번째 형식은 많은 분류 처리를 피하기 위한 속도 향상입니다.
실행에서 결코 만나지 못한 라이브러리에 대한 라인.

-O DB 파일
동적 기호 분류를 수정하려면 재정의 파일을 지정하십시오.
(공개 대 비공개) 테스트. 재정의 파일 형식은 다음과 같습니다.

라이브러리|심볼|클래스

라이브러리는 전체 경로 또는 기본 이름일 수 있습니다. 라이브러리가 "__SKIP__"인 경우 기호
발견된 모든 라이브러리에 대해 무시됩니다. 클래스는 "공개"일 수 있습니다.
"비공개", "진화 중" 또는 "삭제됨". "삭제된" 클래스는 특수한 경우이며, 다음을 의미합니다.
일부 릴리스에서 기호가 라이브러리에서 삭제되었습니다. "__ALL__" 기호
"삭제된" 클래스는 전체 라이브러리가 삭제되었거나 그렇지 않으면 불안정함을 의미합니다.
사용.

예 :

libfoo.so.1|__bar|비공개
/lib/libxyz.so.1|baz|공개
__SKIP__|__fputwc_xpg5

이러한 설정은 라이브러리 내부의 모든 분류를 재정의합니다(라이브러리에서
버전 관리, 다음에서 얻을 수 있음 베트남 후 증후군(1) 등).

-A 목록 파일
관심 있는 ABI 라이브러리를 다음에 나열된 라이브러리로 설정합니다. 목록 파일 (완전한
경로 이름, 한 줄에 하나씩). 이러한 라이브러리에 대한 호출만 확인됩니다. 모두
다른 라이브러리 호출은 무시됩니다.

-s DB 파일, -S DB 파일
정적 연결 테스트를 위해 보다 광범위한 기호 데이터베이스를 지정합니다. DB 파일
쉼표로 구분된 파일 목록입니다. 파일이 정적 아카이브(lib*.a)인 경우
기호를 추출하기 위해 처리됩니다. 그렇지 않으면 다음으로 구성된 데이터베이스 파일입니다.
예를 들어 symbol|library:module 형식의 행:

shmat|/usr/lib/libc.a:shmsys.o
shmctl|/usr/lib/libc.a:shmsys.o
shmdt|/usr/lib/libc.a:shmsys.o
shmget|/usr/lib/libc.a:shmsys.o
...

module.o의 모든 기호가 애플리케이션에서 정의되면 정적 링크
해당 모듈(및 해당 라이브러리 아카이브)이 가정됩니다. 사용하다 -S 표시하기
정적 링크 테스트만 수행해야 합니다.

-S INT 정적 링크 검사만 수행하고 내부 데이터베이스를 사용합니다.

-s 없음 or -S 없음 정적 연결 검사를 완전히 건너뛰려면

-j n잡
달리기 n잡 별도의 프로세스로 병렬로. 암시 -k. 주로
여러 CPU 머신 n잡 프로세서 수에 가까워야 합니다.
출력은 tmp 파일로 수집되고 실행이 끝날 때 다음과 같이 한 번에 모두 인쇄됩니다.
각 작업이 완료됩니다.

If n잡 "-", "감지" 또는 "n"인 경우 n잡 에 따라 숫자로 설정됩니다.
현재 시스템의 프로세서 수(확인 가능한 경우).

피연산자


다음 피연산자가 지원됩니다.

파일 확인할 애플리케이션 바이너리 개체의 목록입니다.

출력


문제당 한 줄이 있습니다(바이너리 검사당 여러 문제가 있을 수 있음).
다음과 같이 보입니다.

문제가 발견되지 않은 경우:
파일 이름: 확인

개인 기호를 사용하는 경우:
파일 이름: 사적인 (도서관:비공개_버전) private_sym

기호 사용이 진화하는 경우:
파일 이름: 진화하는 (도서관:진화하는_버스) 진화하는_sym

파일이 시스템 아카이브 라이브러리에 정적으로 링크된 경우:
파일 이름: STATIC_LINK(아카이브)

파일 검사를 건너뛴 경우:
파일 이름: 건너 뛰기 (이유)

삭제된 클래스 사용 중 -O 파일 옵션 무시, 이러한 문제는
녹이다:

일부 릴리스의 라이브러리에서 기호가 삭제된 경우:
파일 이름: 삭제_SYM: 상징/도서관

(도서관 기호가 바인딩되지 않은 경우 "언바운드"됩니다)

일부 릴리스에서 전체 라이브러리가 삭제되었거나 불안정한 경우
용도:
파일 이름: 불안정한_LIB: 도서관 이름 = 라이브러리 경로

(라이브러리 경로 라이브러리를 찾을 수 없는 경우 "파일을 찾을 수 없음"일 수 있음)

다음 문제는 치명적인 오류를 유발합니다. -k 옵션이 사용됩니다:

동적 링커가 확인할 수 없는 경우 N 기호 ldd -r 실행되었습니다:
파일 이름: UNBOUND_SYMBOLS: N

동적 링커가 동적 바인딩을 찾지 못한 경우:
파일 이름: NO_BINDINGS

If ldd -rLD_DEBUG=파일, 바인딩 실패한:
파일 이름: LDD_ERROR

이 후자의 세 가지 경우 실행 ldd -r 무엇에 대한 자세한 내용은 바이너리 파일에서
잘못되었습니다(참고 아비체크 실행 ldd -rLD_DEBUG=파일, 바인딩 세트). 일부에
시스템 동적 링커는 다음을 사용하여 SUID 프로그램을 처리하지 않습니다. LD_DEBUG 설정(이것은 일반적으로
~의 결과 NO_BINDINGS FBI 증오 범죄 보고서 아비체크 산출).

공유 라이브러리(예: libfoo.so)에서 abicheck를 실행하는 경우
지원 로 지어졌다 -l lib 플래그를 사용하여 라이브러리 종속성을 기록하고 "언바운드
기호" 문제가 발생할 가능성이 매우 높습니다.
라이브러리를 사용하거나 라이브러리를 사용하는 응용 프로그램 바이너리를 확인하고 -l 의 옵션
아비체크.

EXIT 지위


다음 종료 값이 반환됩니다.

0 오류 및 문제가 발견되지 않았습니다.

1 치명적인 오류가 발생했습니다.

2 치명적인 오류는 발생하지 않았지만 일부 바이너리에서 문제가 감지되었습니다.

노트


ELF 개체만 검사됩니다.

. -s -S -d-O dbfiles '#' 문자는 일반적인 방식으로 주석 행을 시작합니다.

"::" 사용자 지정 일치를 사용하지 않는 한 -p or -e 깃발, abicheck 수
기호 버전 관리가 적용된 시스템 라이브러리에 대해서만 확인합니다(예:
라이브러리 자체의 각 기호에 대해 기록된 개인 및/또는 진화하는 정보).
기호 버전 관리에 대한 자세한 내용은 "Solaris 링커 및 라이브러리 설명서"를 참조하십시오.
URL의 답안지 http://docs.sun.com/ab2/coll.45.13 및 명령/버전 스크립트
GNU 링커 "ld" 정보 페이지의 섹션.

기본 기호 버전 이름 일치 패턴은 대소문자를 구분하지 않는 일치 항목입니다.
개인 및 진화하는 경우 각각 "private" 및 "evolving" 문자열.

작은따옴표 문자나 줄 바꿈이 포함된 홀수 파일 이름은 건너뜁니다. 그런
문자는 쉘을 통한 명령 호출을 방해합니다.

재귀 디렉토리를 사용하려면 발견(1) 다음과 함께 사용할 파일로 출력을 수집합니다.
전에, -f 옵션 또는 다음을 통해 파이프에서:

찾기 ... | 아비체크 -f - ...

onworks.net 서비스를 사용하여 온라인으로 abicheck 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad