防护思路
点击放大

File triage for malware analysts and CTI engineers: hashes, metadata, strings, entropy, YARA context, and static characteristics that become IOC enrichment and detection leads.
Use this as the first-pass file triage layer before deeper reverse engineering. The output helps answer: what is the file, what indicators does it expose, does it look packed or unusual, and what should be pivoted or hunted next?
| Output | Use |
|---|---|
| Hashes | IOC tracking and enrichment |
| Strings | URLs, paths, registry keys, suspicious terms |
| Entropy and byte stats | Packed/encrypted region hints |
| PE/ELF/Mach-O metadata | Static triage and capability clues |
| JSON/CSV | Case notes and automation |
| YARA scan results | Detection seed |
![Python ]()
![LIEF]()
A Python tool to extract comprehensi and characteristics from files. For malware analysts, digital forensics, and SOC engineers.
---
→ One Tool to Rule Them All: File Metadata & Static Analysis for Malware Analysts and SOC Teams (Medium article)
Step-by-step guide with screenshots: installation, fileinfo.py vs Basic_inf_gathering.py, hashes, strings, YARA, full static analysis, and MalwareBazaar workflow.
---
| Script | Use case |
|--------|----------|
| fileinfo.py | Recommended. Batch mode, JSON/CSV, PE/ELF/Mach-O, strings, optional YARA/ssdeep/tlsh. |
| Basic_inf_gathering.py | Single-file, human-readable table only (original behavior). |
---
-r).yara-python and a rules file are provided.--full): Maximum metadata without decompilation or code analysis:olefile).ModuleNotFoundError: No module named 'lief' — Install dependencies inside the project directory with the venv activated (see below). Run the script with the same Python that has the packages (e.g. python3 Basic_inf_gathering.py file.exe after acti the venv).venv/bin/activate: No such file or directory or venv/bin/python3: No such file or directory — The venv was not fully created. On Debian/Ubuntu you need the python3-venv package: Then run scripts with python3 fileinfo.py ... or python3 Basic_inf_gathering.py ... while the venv is active.
venv/bin/pip: cannot execute: required file not found — The en is broken (e.g. Python path changed). Recreate it from the project root (where requirements.txt lives), and install the python3-venv package if needed (see above). Then:| Option | Description |
|--------|-------------|
| paths | One or more files or directories. |
| -r, --recursive | Recurse into directories. |
| --json | Output JSON. |
| --csv | Output CSV (one row per file). |
| -o, --output | Write output to file. |
| --hashes | Comma-separated: md5, sha1, sha256, sha384, sha512. |
| --no-fuzzy | Disable ssdeep/tlsh. |
| --strings | Extract ASCII + Unicode strings. |
| --min-str-len | Minimum string length (default 6). |
| --no-pe / --no-elf / --no-macho | Skip that format’s analysis. |
| --yara | Path to YARA rules file. |
| --full | Full static analysis: byte stats, entropy map, head/tail hex, string patterns (URLs, IPs, paths, registry), PE/ELF/Mach-O deep (sections, imports/exports, relocs, info, etc.), ZIP/OLE listing. No decompilation. |
| -v, -- | errors to stderr. |
---
pip install liefpip install cryptography---
---
To run the tool on real Windows PE malware and compare with MalwareBazaar metadata:
1. Get a free API key from abuse.ch Authentication (required for MalwareBazaar).
2. Install deps: pip install requests pyzipper
3. Download a sample and run full analysis:
Output (per sample) under malware_samples/<sha256>/:
sample.bin if not zipped)our_analysis.json — full static report from fileinfo.py --full --jsonbazaar_info.json — MalwareBazaar metadata (signature, imphash, ssdeep, tags, etc.) for comparisonCompare hashes, imphash, file type, and PE/string findings between our_analysis.json and bazaar_info.json (and any public report you have for that hash).
---
fileinfo.py — Main CLI: hashes, PE/ELF/Mach-O, strings, YARA, --full static.static_analysis.py — Deep static analysis module (byte stats, entropy map, PE/ELF/Mach-O deep, string patterns, ZIP/OLE). Used when --full is set.download_malware_sample.py — Download real Windows PE samples from MalwareBazaar (abuse.ch), run full analysis, sa metadata for comparison.Basic_inf_gathering.py — Legacy single-file table script.fileinfo.py), 3.7+ (for Basic_inf_gathering.py)--full---
| Resource | Link |
|----------|------|
| Basic-File-Information-Gathering-Script (this repo) | GitHub · Medium: File Metadata & Static Analysis |
| Static-malware-Analysis-Orchestrator | GitHub — one-command pipeline (triage, strings, PE imports, unpack) · Medium: Full workflow |
| String-Analyzer | GitHub · Medium: String Analyzer Guide |
| PE-Import-Analyzer | GitHub · Medium: PE Import Analyzer Guide |
| Unpacker | GitHub · Medium: Unpacker Guide |
| Author | Medium @1200km |
---
See LICENSE for details.
This project is part of the 1200km security research ecosystem. Use Ad for CTI-to-detection workflows, ATT&CK/ATLAS mapping, actor relevance, IOC enrichment, and analyst-ready reporting.
开发语言:Python
Star 数:4
该项目属于防护思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕File triage for CTI and malware analysis: hashes, strings, entropy, metadata, YARA context, JSON and CSV output.展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | Basic-File-Information-Gathering-Script - File triage for CTI and malware analysis: hashes, |
| 所属分类 | 防护思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:16:26 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 102 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |