Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
yaralyzer — YARA 및 정규식 매치를 바이너리와 텍스트 데이터 모두에서 시각적으로 검사하고 강제 디코딩하며, 색상으로 표시합니다. 많은 색상. | Kitploit
도구/GitHubGitHub/michelcrypt4d4mus/yaralyzer
Reverse EngineeringForensicsMalware AnalysisBinary Analysis
GitHubmichelcrypt4d4mus/yaralyzer

yaralyzer

YARA 및 정규식 매치를 바이너리와 텍스트 데이터 모두에서 시각적으로 검사하고 강제 디코딩하며, 색상으로 표시합니다. 많은 색상.

저장소 보기
152156개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GithubRelease Release Downloads Tests Python Version

THE YARALYZER

YARA match

바이너리 데이터 및/또는 텍스트에서 발견된 모든 정규식 일치 (그리고 더 섹시하고 비밀스러운 사촌인 YARA 일치)를 시각적으로 검사합니다. 일치된 바이트에 다양한 문자 인코딩을 강제로 적용했을 때 어떤 일이 일어나는지 확인하세요. 색상과 함께.

빠른 시작

root@kitploit:~
pipx install yaralyzer

# YARA 규칙 파일로 스캔:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf

# 임의의 정규식으로 스캔:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe

# 임의의 YARA 16진수 패턴으로 스캔
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin

하는 일

  1. YARA 규칙이 일치하는 실제 바이트를 확인하세요. 더 이상 YARA가 보고한 시작 위치를 복사/붙여넣기하여 좋아하는 16진수 편집기에서 찾느라 시간을 낭비하지 마세요. YARA가 일치시킨 바이트와 일치 앞뒤의 구성 가능한 바이트 수를 16진수 및 "원시" Python 문자열 표현으로 표시합니다.
  2. YARA 파일을 작성하지 않고도 바이트 패턴 및 정규식에 대해 동일한 작업을 수행합니다. YARA 파일을 작성하기 귀찮지만 파일 어딘가에 숨겨진 정규식이 있는지 확인하려는 경우, 패턴 '/.+/'을 스캔하면 슬래시 사이에 있는 모든 바이트를 즉시 확인할 수 있습니다. 따옴표, BOM 등에도 동일하게 적용됩니다. YARA가 처리할 수 있는 모든 정규식이 지원되므로 가능성은 무한합니다.
  3. 일치된 각 바이트 세트의 가능한 인코딩을 감지합니다. chardet은 문자 인코딩 추측을 위한 정교한 라이브러리이며 여기에서 활용됩니다.
  4. 일치 영역에 다양한 문자 인코딩을 강제로 적용한 결과를 표시합니다. 일치 주변 영역에 여러 기본 문자 인코딩이 강제로 시도됩니다. 또한 chardet을 활용하여 바이트가 알려진 인코딩의 패턴에 맞는지 확인합니다. chardet의 신뢰도가 충분히 높으면(구성 가능) 해당 인코딩을 사용하여 바이트를 디코딩한 결과가 표시됩니다.
  5. 일치 영역/디코딩을 SVG, HTML 및 색상화된 텍스트 파일로 내보냅니다. ASCII 아트를 자랑하세요.

하는 이유

Yaralyzer의 기능은 Pdfalyzer에서 추출되었습니다. 바이너리에서 패턴 일치를 시각화하고 디코딩하는 것이 PDF 분석 도구에서만 유용한 것이 아니라는 것이 분명해졌기 때문입니다.

YARA는 잘 모르는 분들을 위해1, 악성코드 분석/경고 도구로 브랜드화되어 있지만 실제로는 그보다 훨씬 더 많은 기능과 더 적은 기능을 제공합니다. YARA를 스테로이드를 맞은 정규식 일치 엔진으로 생각할 수 있습니다. 다른 정규식 엔진처럼 바이너리에서 정규식 일치를 찾을 수 있지만, 정규식을 논리적 그룹으로 결합하거나, 바이너리의 모든 256개 XOR 버전에 대해 정규식을 비교하거나, 패턴의 base64 및 기타 인코딩을 확인하는 등의 훨씬 더 강력한 작업도 수행할 수 있습니다. 아마도 가장 중요한 것은 YARA가 사람들이 자신의 강화된 정규식을 전 세계와 _공유_할 수 있는 표준 텍스트 기반 형식을 제공한다는 점입니다. 이러한 기능은 특히 악성코드를 분석하거나 리버스 엔지니어링할 때 유용합니다. 악성코드 작성자는 일반적으로 발견하기 어렵게 만드는 데 많은 시간을 투자하기 때문입니다.

하지만... 그게 YARA가 하는 전부입니다. 나머지는 사용자에게 달려 있습니다. YARA는 단지 일치 엔진일 뿐이며, 무엇을 일치시킬지(또는 어떤 문자 인코딩으로 일치시킬 수 있는지) 모른다면 그 가치는 제한적입니다. 저는 몇 가지 중요한 패턴의 모든 일치를 YARA로 살펴보려고 할 때 약간의 좌절감을 느꼈습니다:

  1. 이스케이프된 따옴표 사이의 바이트 (\".+\" 및 \'.+\')
  2. 슬래시 사이의 바이트 (/.+/). 많은 구현에서 슬래시는 정규식을 구분하며, 이 패턴과 일치하는 바이트가 실제로 정규식인지 확인하려고 했습니다.

YARA는 바이트 위치와 일치된 문자열만 알려줄 뿐, 해당 바이트가 UTF-8, UTF-16, Latin-1 등인지(또는 그 외의 것인지)는 알려주지 않습니다. 또한 일치된 바이트 _자체_뿐만 아니라 일치된 바이트 주변 영역에서 무슨 일이 일어나고 있는지 이해하고 싶었습니다. 즉, 일치된 바이트 바로 앞뒤의 바이트 범위를 보고 싶었습니다.

Yaralyzer가 등장합니다. 일치 주변 영역을 빠르게 스캔할 수 있을 뿐만 아니라 해당 영역을 다양한 문자 인코딩으로 강제 변환했을 때 어떻게 보일지도 보여줍니다.

Yaralyzer는 악성코드 리버싱 도구가 아닙니다. CyberChef와 같은 도구가 하는 일을 할 수 없으며, 그렇게 하려고 하지도 않습니다. 바이너리에서 의심스러운 영역에 대한 빠른 시각적 개요를 제공하여 더 진지한 도구로 검사할 영역을 좁히는 데 더 중점을 둡니다.

설치

pipx 또는 pip3으로 설치하세요. pipx는 약간 더 나은 솔루션입니다. pipx로 설치된 모든 패키지가 로컬 Python 환경의 나머지 부분과 격리된다는 것을 보장하기 때문입니다. 물론 로컬 Python 환경이 없다면 이는 논쟁의 여지가 없으며 pip/pip3으로 설치해도 됩니다.

root@kitploit:~
pipx install yaralyzer

사용법

yaralyze -h를 실행하여 명령줄 옵션을 확인하세요 (아래 스크린샷).

SVG 이미지, HTML 등의 내보내기에 대한 정보는 예제 출력을 참조하세요.

구성

홈 디렉터리 또는 현재 작업 디렉터리에 .yaralyzer 파일을 배치하면 해당 .yaralyzer 파일에 지정된 환경 변수가 yaralyzer가 호출될 때마다 환경에 추가됩니다. 이를 통해 다양한 명령줄 옵션을 영구적으로 구성하여 반복해서 입력하지 않아도 되는 메커니즘을 제공합니다. 자세한 내용은 예제 파일 .yaralyzer.example의 주석을 참조하세요.

하나의 .yaralyzer 파일만 로드되며, 작업 디렉터리의 .yaralyzer가 홈 디렉터리의 .yaralyzer보다 우선합니다.

라이브러리로 사용

Yaralyzer가 주요 클래스입니다. Yaralyzer의 다양한 클래스와 메서드에 대한 자동 생성 문서는 여기에서 찾을 수 있습니다. 다음을 지원하는 다양한 대체 생성자가 있습니다:

  1. 사전 컴파일된 YARA 규칙
  2. 문자열에서 YARA 규칙 생성
  3. 파일에서 YARA 규칙 로드
  4. 디렉터리의 모든 .yara 파일에서 YARA 규칙 로드
  5. bytes 스캔
  6. 파일 스캔

Yaralyzer가 사용하는 BytesMatch (YARA 일치에 대한 re.Match 객체와 유사) 및 BytesDecoder (디코딩 시도 통계 추적) 객체를 반복하려면 다음과 같이 할 수 있습니다:

root@kitploit:~
from yaralyzer.yaralyzer import Yaralyzer

yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')

for bytes_match, bytes_decoder in yaralyzer.match_iterator():
    do_stuff()

문제 해결

숫자 오류 코드와 함께 yara.Error가 발생하면 여기에서 해당 코드의 의미를 확인할 수 있습니다.

예제 출력

Yaralyzer는 Rich와 함께 제공되는 파일 내보내기 기능과 (다소 제한된) 일반 텍스트 JSON 형식을 사용하여 시각화를 HTML, ANSI 색상 텍스트, PNG 및 SVG 벡터 이미지로 내보낼 수 있습니다.

아래와 같은 .png 이미지를 Yaralyzer에서 직접 내보내려면 다음 중 하나를 수행해야 합니다:

  1. Inkscape 설치 (Homebrew 사용자는 brew install --cask inkscape로 설치 가능)
  2. Yaralyzer 설치 시 img 추가 패키지 요청 (pipx install yaralyzer[img]). 그러면 cairosvg가 설치됩니다. 또한 운영 체제에 따라 CairoSVG 실행 파일을 수동으로 설치해야 합니다. 자세한 내용은 CairoSVG 문서를 참조하세요.

경험상 Inkscape와 CairoSVG 모두 작동하지만, CairoSVG를 사용하여 Yaralyzer가 렌더링한 SVG를 렌더링할 때 일부 깜빡임 현상이 관찰되었으므로 Inkscape를 권장합니다.

원시 YARA 일치 결과:

16진수, 원시 Python 문자열 및 일치 전후 바이트의 다양한 디코딩 시도 표시 (구성 가능):

보너스: chardet.detect()가 바이트가 특정 인코딩/언어에 속할 가능성에 대해 어떻게 생각하는지 확인:

기여

기여는 언제나 환영합니다. 환경 설정, 테스트 스위트 실행 등에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요. 또한 거기에 수행해야 할 작업의 TODO 목록도 있습니다.

Footnotes

  1. 최근까지 저도 그랬습니다. ↩

도구 다운로드