unpack

바이너리 필드의 바이트 배열을 인덱스별 개별 필드로 분해합니다. 고정 길이 바이트 배열을 수치 특징 벡터로 변환하여 머신러닝 모델 입력으로 활용할 때 사용합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

unpack field=FIELD

옵션

field=FIELD
바이트 배열로 분해할 바이너리 필드 이름

출력 필드

필드타입설명
b0032비트 정수0번째 바이트의 부호 없는 정수 값 (0~255)
b0132비트 정수1번째 바이트의 부호 없는 정수 값 (0~255)
...32비트 정수...
bNN32비트 정수NN번째 바이트의 부호 없는 정수 값 (0~255). 최대 100번째 바이트까지 처리합니다.

바이트 인덱스는 두 자리 십진수로 표현합니다. 예를 들어 0번째 바이트는 b00, 9번째 바이트는 b09, 10번째 바이트는 b10입니다.

오류 코드

파싱 오류
오류 코드메시지설명
40820unpack 명령어에 field 옵션을 지정하세요.field 옵션이 지정되지 않은 경우
런타임 오류

해당 사항 없음

설명

unpack 명령어는 지정한 필드의 바이트 배열(byte[])을 각 바이트 위치별로 분리하여 b00, b01, ... 형식의 개별 필드로 출력합니다. 각 바이트는 부호 없는 정수(0~255)로 변환됩니다.

최대 100바이트까지 처리하며, 바이트 배열 길이가 100을 초과하면 처음 100바이트만 분해합니다.

지정한 필드가 바이트 배열(byte[]) 타입이 아닌 경우 해당 레코드는 변환 없이 그대로 통과합니다.

similar-docs 명령어와 함께 사용하면 TLSH 해시의 바이트 벡터로 유사 문서를 탐색할 수 있습니다.

사용 예

  1. TLSH 해시를 바이트 벡터로 분해

    table duration=1d malware_samples
    | eval hash_bytes = fromhex(tlsh_hash)
    | unpack field=hash_bytes
    | fields b00, b01, b02, b03, b04
    

    tlsh_hash 필드의 16진수 문자열을 바이트 배열로 변환한 후, 첫 5바이트를 개별 필드로 분해합니다.

  2. 바이트 벡터를 이상탐지 모델 입력으로 활용

    table duration=1d binary_logs
    | unpack field=payload
    | anomalies b00, b01, b02, b03, b04, b05, b06, b07
    

    payload 바이트 배열의 첫 8바이트를 분해하여 이상탐지 분석을 수행합니다.

호환성

unpack 명령어는 소나 4.0.2308.0 버전부터 제공되었습니다.