
AV 탐지를 PE 오프셋, 섹션, RVA/VA 및 문자열에 매핑하고 YARA, AMSI, capa 및 다중 엔진 스캔과 JSON/HTML 보고서를 제공하는 Windows 아티팩트 분석 툴킷입니다.
St0rn / CybersecurIT 제작
정적 PE 분석, YARA 상관 분석, Windows AMSI, 멀티 엔진 AV 스캐닝, PDB/소스 매핑, 접두사 기반 탐지 경계 축소, 구조적 스크립트 분석 및 포렌식 보고.
SigLens는 아티팩트 트리아지, 시그니처 진단, 오탐 조사 및 레드팀 / 탐지 엔지니어링 워크플로를 위해 만들어진 로컬 Windows 보안 분석 툴킷입니다. 분석 대상 아티팩트를 수정하지 않고, 정적 분석 및 로컬에 설치된 보안 엔진의 결과를 원본 파일 레이아웃에 다시 연관시킵니다.
바이너리 아티팩트의 경우 SigLens는 고정 PE 영역을 스캔할 수 있으며 접두사 기반 AV 탐지 경계 축소도 수행할 수 있습니다. 전체 파일을 먼저 스캔한 다음, 점진적으로 더 짧거나 더 긴 접두사를 테스트하여 재현 가능한 CLEAN -> DETECTED 전환을 한정합니다. 도출된 경계는 반복된 엔진 판정에서 추론된 것이며, AV 엔진이 반환한 네이티브 오프셋으로 제시되지 않습니다. 스크립트 형식의 경우 SigLens는 다른 모델을 사용합니다. AMSI는 전체 파일 버퍼를 스캔하는 반면, SigLens는 함수와 스크립트 블록의 구조적 맵을 별도로 작성하여 분석가가 검토할 가치가 있는 영역을 식별할 수 있게 합니다.
Artifact
|
+-- hashes / entropy / strings / IOCs
+-- PE sections / resources / overlay
+-- YARA -> exact native match offsets
+-- offset -> section -> RVA -> VA
| +-- x64 .pdata function boundary
| `-- PDB symbol / source line
+-- Microsoft Defender / ClamAV / configurable AV CLIs
+-- AMSI full-buffer scan
+-- structural script analysis (PowerShell / JS / VBS / WSF / text)
+-- fixed PE-region scan
+-- prefix-based AV detection-boundary narrowing
`-- JSON / HTML reports
SigLens는 St0rn / CybersecurIT가 제작했습니다.
.\dist\SigLens.exe about
SigLens
Created by St0rn / CybersecurIT
Windows Artifact Analysis and Multi-Engine Scanner
현재 PowerShell 프로세스에서만 스크립트를 허용:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
SigLens 및 개발 의존성 설치:
.\scripts\Install.ps1 -Dev -AddToUserPath
설치 프로그램은 다음을 수행합니다:
.venv를 생성합니다;siglens 명령 심(shim)을 생성합니다;-SkipAVInstall이 제공되지 않는 한 포터블 ClamAV 엔진을 설치/업데이트합니다;라이선스가 필요한 상용 보안 제품은 자동으로 설치되지 않습니다.
.\scripts\Build.ps1
출력:
dist\SigLens.exe
빌드는 또한 engines.json과 engines.example.json을 dist\로 복사합니다.
.\scripts\Test.ps1
.\dist\SigLens.exe scan C:\Samples\sample.exe
전체 정적/엔진 분석:
.\dist\SigLens.exe scan C:\Samples\sample.exe `
--yara .\rules `
--capa `
--iocs `
--dissect `
--amsi `
--engines .\dist\engines.json
scan - 통합 아티팩트 분석scan은 주요 오케스트레이션 명령입니다. 선택한 옵션에 따라 다음을 수집할 수 있습니다:
예시:
.\dist\SigLens.exe scan C:\Samples\sample.exe `
--yara .\rules `
--symbol-path .\symbols `
--iocs `
--dissect
보고서는 reports\에 JSON 및 HTML 형식으로 작성됩니다.
multi-scan - 다중 로컬 보안 엔진.\dist\SigLens.exe multi-scan C:\Samples\sample.exe --engines .\dist\engines.json
어댑터/템플릿은 Microsoft Defender, ClamAV, ESET Endpoint Security, Sophos Endpoint / Intercept X, Avast Business, Malwarebytes Toolset 및 일반 로컬 명령줄 스캐너를 지원합니다.
스캐너는 DETECTED, CLEAN, UNKNOWN, UNAVAILABLE 또는 ERROR를 반환할 수 있습니다. 정확한 바이트 오프셋은 기반 엔진이 이를 네이티브로 노출할 때만 표시됩니다.
amsi-scan - 전체 버퍼 AMSI.\dist\SigLens.exe amsi-scan C:\Samples\sample.ps1
SigLens는 Windows AmsiScanBuffer를 통해 전체 파일 버퍼를 제출하고 정규화된 상태와 원시 AMSI 결과 정보를 모두 표시합니다:
AMSI_RESULT_CLEAN
AMSI_RESULT_NOT_DETECTED
AMSI_RESULT_BLOCKED_BY_ADMIN
AMSI_RESULT_DETECTED
amsi-scan은 콘텐츠를 분할, 재작성, 패치 또는 난독화하지 않습니다.
script-analyze - AMSI + 구조적 스크립트 진단PowerShell, JavaScript, VBScript, WSF 및 텍스트 아티팩트의 경우:
.\dist\SigLens.exe script-analyze C:\Samples\sample.ps1
일반적인 출력:
SigLens - AMSI Analysis
File : sample.ps1
Encoding : UTF-8
Size : 18432 bytes
AMSI : DETECTED
Structural regions
-------------------------------------------------------------
Lines 1-34 module/imports
Lines 36-81 function Invoke-Example
Lines 83-117 function Resolve-Target
Lines 119-143 main script block
Candidate context
Lines : 83-117
Byte offsets : 0x000018F0 - 0x000024A8
AST type : FunctionDefinitionAst
Classification : CANDIDATE_REGION
작동 방식:
후보 영역은 자율적인 AMSI 시그니처라고 주장되지 않습니다. 탐지는 컨텍스트, 여러 조각, 콘텐츠 유형, AMSI 소비자 또는 관련 안티멀웨어 제공자에 따라 달라질 수 있습니다.
AMSI가 전체 버퍼를 탐지하지만 어떤 영역도 확신을 가지고 귀속될 수 없는 경우, SigLens는 다음을 보고합니다:
CONTEXT_DEPENDENT
옵션:
.\dist\SigLens.exe script-analyze sample.ps1 --context-lines 5
.\dist\SigLens.exe script-analyze sample.ps1 --max-file-size 20
.\dist\SigLens.exe script-analyze sample.ps1 --json
인식된 확장자:
.ps1 .psm1 .psd1 .js .jse .vbs .vbe .wsf .txt
인코딩 탐지:
narrow - 접두사 기반 AV 탐지 경계 축소.\dist\SigLens.exe narrow C:\Samples\sample.exe --engines .\dist\engines.json
narrow는 먼저 구성된 AV 엔진으로 전체 파일을 스캔합니다. 파일이 탐지되면 SigLens는 재현 가능한 CLEAN -> DETECTED 전환을 한정할 때까지 다양한 길이의 접두사를 테스트하여 접두사 기반 축소를 수행합니다.
일반적인 추적:
Prefix end Status
0x0230B000 DETECTED
0x01185800 CLEAN
0x01A47C00 DETECTED
0x015E6A00 CLEAN
...
최종 후보는 다음을 보고합니다:
CLEAN 접두사 경계;DETECTED 접두사 경계;보고된 경계는 접두사 스캐닝으로 추론된 것입니다. Microsoft Defender 또는 다른 AV 엔진이 제공한 네이티브 바이트 오프셋이라고 주장되지 않습니다. 엔진이 네이티브 오프셋을 노출하면 SigLens는 해당 값을 별도로 유지하고 그 출처를 식별합니다.
표시 컨텍스트는 분석가 검사용일 뿐이며, 엔진 판정 자체와는 별개입니다.
component-scan - PE 섹션 및 오버레이.\dist\SigLens.exe component-scan C:\Samples\sample.exe --engines .\dist\engines.json
원본 파일 오프셋과 RVA를 보존하면서 고정 PE 구조 영역을 스캔합니다.
dissect - PE 구조.\dist\SigLens.exe dissect C:\Samples\sample.exe
섹션, 원시 오프셋, RVA, 크기, 엔트로피, 해시, 리소스 및 오버레이 메타데이터를 보고합니다.
inspect-offset - 로컬 바이트 컨텍스트.\dist\SigLens.exe inspect-offset C:\Samples\sample.exe 0x005C0000
file offset -> PE section -> RVA -> VA -> image base를 매핑하고 로컬 hexdump와 ASCII/UTF-16LE 문자열을 표시합니다.
.\dist\SigLens.exe inspect-offset sample.exe 0x005C0000 --preview-bytes 512
locate - 함수 / PDB / 소스 상관 분석.\dist\SigLens.exe locate C:\Samples\sample.exe 0x18A20 --symbol-path .\symbols
상관 경로:
file offset -> PE section -> RVA -> VA -> x64 .pdata runtime function -> local PDB symbol -> source line
.\dist\SigLens.exe scan C:\Samples\sample.exe --yara .\rules --symbol-path .\symbols
YARA 매치 오프셋은 네이티브 YARA 오프셋이며 PE/심볼 정보에 다시 연관시킬 수 있습니다.
.\dist\SigLens.exe scan C:\Samples\sample.exe --iocs
출력 가능한 콘텐츠에서 URL, IPv4 주소, 도메인 및 Windows 경로를 추출합니다.
.\dist\SigLens.exe scan C:\Samples\sample.exe --capa
capa.exe를 사용할 수 있으면 그 출력이 보고서에 포함됩니다.
compare - 빌드 비교.\dist\SigLens.exe compare .\old.exe .\new.exe
해시, 크기, 엔트로피, PE 정보 및 변경된 바이너리 범위를 비교합니다.
path-test - Windows 파일 접근 진단.\dist\SigLens.exe path-test C:\Samples\sample.exe