2017-09-13 4 views
0

다른 날 나는 확장 된 속성 com.apple.quarantine을 가진 일부 파일을 망설였습니다. 나는 그 목적을 알고 있지만, 나는 당신이 그 가치를 산출 할 때 아래의 속성이 의미하는 것이 무엇인지 항상 궁금해했다.xattr -p com.apple.quarantine의 출력 이해하기

예. 나는이 (가)에서 xattr 말했다 파일에 대한

xattr -p com.apple.quarantine xmlrpc.php

에 입력 할 때, 나는 다음과 같은 출력을 얻을 :

0083;59b926ad;Safari.app;55847AA4-5562-42A2-89A7-8FAD394B455C

처음 4 자리 숫자는 무엇을 상징 하는가? 즉 0083 Google은 좋은 콘텐츠를 가져 오지 못했으며 사용자가 발견 한 몇 가지 가이드가 있으며이 번호가 정확하게 무엇을 나타내는 지 파악하려고합니다.

답변

4

이미 알고있는 것처럼 에이전트 (브라우저, 메일 클라이언트 등)가 파일을 컴퓨터에 저장할 때 격리 플래그가 설정됩니다. 이것은 인터넷에서 다운로드 한 응용 프로그램을 처음 열려고 할 때 나타나는 경고를 나타냅니다.

이 정보는 모두 저장되며 모든 사용자에 대해 완전한 기록이 있습니다.

첫 번째 4 자리는 quarantine.h에 정의 된 것으로 예상되는 플래그 집합입니다.이 플래그는 Apple의 오픈 소스 코드에 포함 된 copyfile.c에 포함 된 개인 헤더 인 것으로 보입니다.

이 플래그는 파일의 격리 여부와 같은 상태를 나타냅니다.

더 자세히 분석하면 커널 확장 quarantine.kext이이를 넘겨주고 해체 할 때 함수 quarantine_get_flags을 볼 수 있습니다. ==을 0x1)

이 단계;

여기

는 분해 KEXT enter image description here

참고 _sscanf 함께에서 xattr 출력의 제 4 개 플래그 포맷 (RBX "% 04x") 단지 니펫 quarantine_get_info으로 전화하십시오.

enter image description here

우리는 플래그 VFS는 가상 파일 시스템 인 및 vnode에이 파일의 기본 표현 구조와 시스템에있는 파일의 다양한 상태를 나타내는 것을 여기에서 볼 수 있습니다.

xattr 출력의 나머지 부분은 각 사용자가 다운로드 한 모든 항목의 기록을 유지하는 로컬 sqlite3 데이터베이스를 가지고 있습니다. 그 위치는/com.apple.LaunchServices.QuarantineEventsV2

데이터베이스는 하나 개의 테이블 LSQuarantineEvent있다

~/라이브러리/환경 설정입니다.당신은 결과 (그렙 또는 대체) 당신은 xattr의 후반부를 구성하는 GUID를 일치 할 수 있습니다를 필터링하면 당신은 터미널

sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "select * from LSQuarantineEvent;" 

sqlite3 명령을 사용하여 모든 데이터를 읽을 수 있습니다 파일을 다운로드 할 책임이있는 에이전트와 검색 한 URL의 정보를 비롯하여 특정 다운로드에 대한 모든 정보가 표시됩니다.