使用 IOCX CLI 从 PE 文件进行静态 IOC 提取
这是用于确定性静态 IOC 提取和 PE 分析的原始 IOCX 引擎。 任何其他使用 "iocx" 名称的仓库均与本项目无关。
官方链接:
现代恶意软件默认具有对抗性——畸形、规避检测,并专门设计来破坏幼稚的提取器。
IOCX 专为正确性和确定性真正重要的环境而构建。
IOCX 是官方静态 IOC 提取引擎——一个确定性、二进制感知的系统,专为 DFIR、SOC 自动化、CI/CD 安全和大型威胁情报管道而构建。
与仅依赖正则表达式的提取器或依赖沙箱的工具不同,IOCX 执行:
它是 MalX Labs 生态系统中用于可扩展、现代威胁分析的核心组件。
echo "http://malicious.example" | iocx -
或安全扫描 PE 文件:
iocx suspicious.exe -a deep
安全团队面临三个长期存在的问题:
IOCX 通过一个确定性、纯静态引擎解决了这些问题,该引擎专为自动化、安全性和规模而设计。
IOCX 有意不是:
它从不执行不受信任的代码。 它从不进行动态分析。 它在设计上仅支持静态分析——以确保安全性、确定性和 CI/CD 兼容性。
IOCX 是为现代恶意软件的现实而设计的,而非传统工具的假设。
稳定、可复现的输出——无随机性、无波动性。
执行是不安全的。静态分析是可预测、可扩展且对 CI 友好的。
畸形 PE、损坏的 RVA、恶意字符串——IOCX 将它们视为正常输入。
下游系统绝不应因升级而中断。
原始文本 150–300 MB/s。 典型 PE 6–15 MB/s。 即使在最坏情况下的对抗性负载下也可预测。
这些承诺源自已发表的 PE 结构分析研究方法——确定性夹具构建、单一异常纪律,以及以 Windows 加载器行为作为正确性基准。完整方法论请参阅 docs/methodology.md,更广泛的对抗性 PE 分类法和商业夹具套件请参阅 paax.dev。
简而言之: IOCX 是为真实的对抗性现实而构建的,而非理想化的输入。
150–300 MB/s 持续吞吐量 快速路径——无 PE 解析。
| 检测器 | 1 MB 时间 |
|---|
.pdata)目录的深度语义验证;14 个新原因代码;共 15 个验证器。dumpbin 端到端验证python-magic 依赖,该依赖在 Windows 系统上导致导入失败pip install iocx
iocx suspicious.exe
echo "Visit http://bad.example.com" | iocx -
iocx suspicious.exe -a
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
IOCX 生成结构化、确定性的 JSON,包含 IOC、PE 元数据、节分析、启发式规则和混淆指标。
以下示例是来自真实对抗性 PE 样本的节选输出。它展示了模式的形态和深度,同时保持文档目的的合理大小。
{
"file": "heuristic_rich.full.exe",
"type": "PE",
"iocs": {
"urls": ["http://not-a-real-domain.test/payload"],
"domains": ["example-malware.com"],
"ips": ["192.0.2.123"],
"hashes": [
"abcd1234ef567890abcd1234ef567890",
"1234567890",
"3333333333333333"
],
"filepaths": [
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/crtexe.c",
"/usr/x86_64-w64-mingw32/include",
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/pseudo-reloc.c"
]
},
"metadata": {
"file_type": "PE",
"imports": ["KERNEL32.dll", "msvcrt.dll", "USER32.dll"],
"sections": [
".text", ".data", ".rwx", ".rdata",
"UPX0", ".pdata", ".xdata", ".tls"
],
"resources": [],
"resource_strings": [],
"delayed_imports": [],
"bound_imports": [],
"exports": [],
"signatures": [],
"has_signature": false,
"tls": {
"start_address": 5368758272,
"end_address": 5368758280,
"callbacks": 5368754232
},
"header": {
"entry_point": 5088,
"image_base": 5368709120,
"machine": "AMD64",
"subsystem": "Windows GUI"
},
"optional_header": {
"section_alignment": 4096,
"file_alignment": 512,
"size_of_image": 155648
}
},
"analysis": {
"sections": [
{ "name": ".text", "entropy": 5.92 },
{ "name": ".rwx", "entropy": 0 },
{ "name": "UPX0", "entropy": 0.34 },
{ "name": ".rdata", "entropy": 4.03 }
],
"obfuscation": [
{
"value": "abnormal_section_layout_virtual_only",
"category": "obfuscation_hint",
"metadata": {
"section": ".bss",
"raw_size": 0,
"virtual_size": 384
}
}
],
"extended": [
{
"value": "summary",
"category": "pe_metadata",
"metadata": {
"dll_count": 3,
"import_count": 45,
"resource_count": 0,
"has_tls": true,
"has_signature": false
}
}
],
"heuristics": [
{
"value": "packer_suspected",
"metadata": {
"reason": "packer_section_name",
"section": "UPX0"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "anti_debug_api_import",
"dll": "kernel32.dll",
"function": "CheckRemoteDebuggerPresent"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "timing_api_import",
"dll": "kernel32.dll",
"function": "GetTickCount"
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "section_overlaps_headers",
"section": ".bss",
"raw_address": 0,
"size_of_headers": 1536
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "data_directory_overlap",
"directory_a": "IMAGE_DIRECTORY_ENTRY_IMPORT",
"directory_b": "IMAGE_DIRECTORY_ENTRY_IAT"
}
}
]
}
}
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
IOCX 设计为可安全、可预测地扩展。 插件是一等公民,与核心引擎一样通过相同的确定性快照测试进行验证。
您可以构建:
请参阅:
docs/specs/overlap-suppression.mddocs/specs/plugin-authoring-guidelines.mdIOCX 不仅仅是一个单一二进制——它是一个模块化生态:
IOCX 被以下领域广泛使用:
任何需要安全、确定性和规模化提取指标的地方,IOCX 都适用。
所有测试样本均为:
IOCX 在 CI 中强制执行严格的性能阈值,以确保:
请参阅:
docs/performance.mdIOCX 名称仅指发布在以下位置的官方引擎:
iocx 的仓库iocx-<plugin>iocx-extension-<name>iocx-detector-<feature>IOCX 的开发重点是稳定性、可扩展性和更深入的静态分析覆盖。 以下项目代表正在进行的工作和探索领域。
我们欢迎:
指南请参阅 CONTRIBUTING.md。
如果您发现安全问题,请勿在 GitHub 上提交 issue。
请遵循 SECURITY.md 中的说明。
MPL‑2.0 许可证——请参阅 LICENSE。
| 能力 | IOCX | 典型 IOC 提取器 | 沙箱 / 动态工具 |
|---|
| 安全性 | 零执行、纯静态 | 仅正则表达式,无二进制安全性 | 执行不受信任的代码(高风险) |
| 确定性 | 完全确定的输出 | 在噪声下不确定 | 设计上不确定 |
| 二进制感知 | 完整 PE 解析、启发式规则 | 无二进制支持 | 有,但不安全且缓慢 |
| 对抗性韧性 | 已针对畸形 PE、恶意字符串测试 | 易于绕过 | 经常崩溃或误分类 |
| 性能 | 150–300 MB/s(文本),6–15 MB/s(PE) | 高度可变 | 极慢 |
| CI/CD 友好性 | 是——安全、确定、快速 | 部分 | 否——对管道不安全 |
| 模式稳定性 | 有保证 | 罕见 | 无 |
| 吞吐量 |
|---|
| 加密 | 0.0037 s | ~270 MB/s |
| 文件路径 | 0.0041 s | ~250 MB/s |
| IP | 0.0065 s | ~156 MB/s |
| 域名 | 0.0035 s | ~300 MB/s |
--min-length 一致性修复计划在 v0.7.5 中idna 依赖