
이진 데이터 및/또는 텍스트에서 발견 된 모든 Regex 경기 (및 더 섹시한, 더 많은 망토 및 단검 사촌, Yara Matches)를 시각적으로 검사하십시오. 일치하는 바이트에 대한 다양한 문자 인코딩을 강요 할 때 어떤 일이 발생하는지 확인하십시오. 색상으로.
pipx install yaralyzer
# Scan against YARA definitions in a file:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf
# Scan against an arbitrary regular expression:
yaralyze --regex-pattern ' good and evil.*ofs+w+byte ' the_crypto_archipelago.exe
# Scan against an arbitrary YARA hex pattern
yaralyze --hex-pattern ' d0 93 d0 a3 d0 [-] 9b d0 90 d0 93 ' one_day_in_the_life_of_ivan_cryptosovich.bin'/.+/' 패턴을 스캔하고 앞 슬래시 사이에 사는 파일의 모든 바이트에 즉시 창을 가져올 수 있습니다. 인용문, boms 등에 대한 동일한 이야기.chardet 은 캐릭터 인코딩을 추측하기위한 정교한 라이브러리이며 여기에서 활용됩니다.chardet 또한 바이트가 알려진 인코딩의 패턴에 맞는지 확인하기 위해 활용됩니다. chardet 이 충분히 자신감이있는 경우 (구성 가능) 해당 인코딩을 사용하여 바이트를 디코딩하려는 시도가 표시됩니다.Yaralyzer의 기능은 PDFALYZER에서 추출하여 PDF 분석 도구에서 단순한 유용성을 가졌다는 것이 분명해 졌을 때 분명해졌습니다.
Yara는 알지 못하는 사람들에게는 맬웨어 분석/경고 도구로 브랜드화되어 있지만 실제로는 그보다 훨씬 많고 훨씬 적습니다. 그것에 대해 생각하는 한 가지 방법은 Yara가 스테로이드의 정규 발현 일치 엔진이라는 것입니다. Regex 엔진과 같은 Binaries에서 Regex Match를 찾을 수 있지만 논리 그룹의 Regexes를 결합하고 256 개의 Xored 버전의 256 개 버전과 base64 및 기타 인코딩 등을 비교하는 것과 같은 훨씬 더 와일드 일을 수행 할 수 있습니다. 아마도 모든 야라의 가장 중요한 것은 사람들이 자신의로드 레지 섹스를 세계와 공유 할 수있는 표준 텍스트 기반 형식을 제공합니다. 이러한 모든 기능은 작가가 물건을 찾기 어렵게 만드는 데 많은 시간을 투자하는 경향이있는 엔지니어링 맬웨어를 분석하거나 리버스 엔지니어링 할 때 특히 유용합니다.
그러나 ... 그것은 또한 모든 야라도하는 것입니다. 다른 모든 것은 사용자에게 달려 있습니다. Yara는 단지 매치 엔진 일 뿐이며 어떻게 일치 해야하는지 (또는 어떤 캐릭터를 인코딩 할 수 있는지) 모르는 경우 지금까지만 얻을 수 있습니다. 나는 야라를 사용하여 몇 가지 중요한 패턴의 모든 경기를 보려고 약간 좌절했다는 것을 알았습니다.
".+" 및 '.+' )/.+/ ) 사이의 바이트. Front Slashes는 많은 구현에서 정규 표현식을 구분 했으며이 패턴과 일치하는 바이트가 실제로 regexes인지 확인하려고했습니다.Yara는 바이트 위치와 일치하는 문자열을 알려주지 만 바이트가 UTF-8, UTF-16, 라틴 -1 등인지 여부는 알려주지 않습니다 (또는 위의 어느 것도 없음). 나는 또한 일치하는 바이트만 이 아니라 일치하는 바이트의 영역에서 무슨 일이 있었는지 이해하고 싶어한다는 것을 알았습니다. 다시 말해, 나는 일치하는 모든 것을 직전과 후에 바이트를 범위로 범위를 범하고 싶었습니다.
Yaralyzer 에 들어가면 경기 주위의 영역을 빠르게 스캔하면서 다양한 캐릭터 인코딩에 강제로 발생하는 지역의 모습을 보여줍니다.
Yaralyzer는 맬웨어 반전 도구가 완전히 없다는 점에 유의해야합니다. CyberChef와 같은 도구를 모두 할 수는 없으며 시도하지 않습니다. 바이너리의 용의자 영역에 대한 빠른 시각적 개요를 제공하여 Cyberchef와 같은보다 심각한 도구로 검사하려는 영역을 연마 할 수 있습니다.
pipx 또는 pip3 로 설치하십시오. pipx 나머지 지역 파이썬 환경에서 나머지 파이썬 환경에서 분리되도록 보장하기 때문에 약간 더 나은 솔루션입니다. 물론 로컬 파이썬 환경이 실제로 없다면 이것은 무한 지점이며 pip / pip3 로 자유롭게 설치할 수 있습니다.
pipx install yaralyzer
yaralyze -h 실행하여 명령 줄 옵션을보십시오 (아래 스크린 샷).

SVG 이미지, HTML 등을 내보내는 정보는 예제 출력을 참조하십시오.
.yaralyzer 라는 파일을 홈 디렉토리 또는 현재 작업 디렉토리에 배치하면 해당 .yaralyzer 파일에 지정된 환경 변수가 Yaralyzer가 호출 될 때마다 환경에 추가됩니다. 이는 다양한 명령 줄 옵션을 영구적으로 구성하는 메커니즘을 제공하므로 계속해서 입력하지 않아도됩니다. 이 방법으로 구성 할 수있는 옵션을 확인하려면 예제 파일 .yaralyzer.example 을 참조하십시오.
.yaralyzer 파일 하나만로드되고 Working Directory의 .yaralyzer 홈 디렉토리의 .yaralyzer 보다 우선합니다.
Yaralyzer 는 주요 클래스입니다. 지원하는 다양한 생성자가 있습니다.
.yara 파일에서 Yara 규칙로드bytes BytesMatch (야라 매치에 대한 re.Match 객체와 같은) 및 BytesDecoder (트랙 디코딩 시도 통계) 객체를 Yaralyzer에서 반환하려면 다음과 같이 할 수 있습니다.
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 () Yaralyzer는 Rich와 함께 제공되는 파일 내보내기 기능을 사용하여 HTML, ANSI 컬러 텍스트 및 SVG 벡터 이미지로 시각화를 내보낼 수 있습니다. SVG는 Inkscape 또는 cairosvg 와 같은 도구를 사용하여 png 형식 이미지로 전환 할 수 있습니다. 우리의 경험에서 그들은 cairosvg 로 약간의 결함을 보았지만 모두 작동합니다.
PYPI 사용자 : PYPI 에서이 문서를 읽고 있다면 Github에서 훨씬 더 잘 렌더링됩니다. 예쁜 그림, 작동하는 각주 등


chardet.detect() 주어진 인코딩/언어로 바이트가있을 가능성에 대해 어떻게 생각하는지보십시오. 
rich 렌더링 엔진과 관련이 있습니다. 현재 콘솔 출력은 "더 정확한"이므로 일반적으로 괜찮습니다. issue_with_output_to_console_correct vs. issue_with_output_to_txt_file_incorrect.png 를 참조하십시오chardet S Beyest에서 수행 된 디코드를 강조 표시합니다최근까지. ↩