签名查找 API
AMWScan\Signatures 提供嵌入签名索引上的只读查找。请将其用于扩充或初步分类。当需要文件系统遍历、模式匹配、报告或修复时,请使用 Scanner。
use AMWScan\Signatures;
$match = Signatures::findKnownMalwareHash('sha256', $sha256);
if ($match !== null) {
printf("%s: %s\n", $match['severity'], $match['description']);
}
已知恶意软件 SHA-256
| 方法 | 输入 | 返回 |
|---|---|---|
findKnownMalwareHash(string $algorithm, string $hash) | 算法 sha256 和 64 个字符的十六进制 SHA-256 哈希 | 匹配记录或 null |
getKnownMalwareSha256() | 无 | 嵌入的 SHA-256 哈希数组 |
getKnownMalwareIndexSha256() | 无 | 嵌入源索引的 SHA-256 校验和 |
getKnownMalwareMd5PrefixCount() | 无 | 固定宽度 MD5 前缀记录数 |
matchesKnownMalwareMd5(string $md5) | 32 个字符的十六进制 MD5 | 其八字符前缀出现在索引中时为 true |
findKnownMalwareHash() 验证两个参数。对于不受支持的算法、格式错误的哈希或不存在精确匹配时,它返回 null。正向匹配记录具有 id、algorithm、hash、severity 和 description 键。
MD5 前缀匹配是候选信号,而不是完整文件的精确匹配。请在告警中将其与精确 SHA-256 匹配分开,并在修复前审查文件。
旧版核心规范化
| 方法 | 输入 | 返回 |
|---|---|---|
normalizedFileSha256(string $path) | 非符号链接的现有常规文件 | 规范化 SHA-256 字符串或 null |
matchesLegacyCoreSha256(string $sha256) | 64 个字符的十六进制 SHA-256 | bool |
matchesLegacyCoreFile(string $path) | 非符号链接的现有常规文件 | bool |
getLegacyCoreSha256Count() | 无 | 旧版核心记录数 |
getLegacyCoreIndexSha256() | 无 | 旧版核心源索引的 SHA-256 校验和 |
normalizedFileSha256() 在哈希时移除空格、制表符、回车符和换行符。这支持旧版核心匹配;对于格式化的源文件,它不会产生与 hash_file('sha256', $path) 相同的值。
域名指示器
getDomainIndicators() 返回包含 id、domain、classification 和 severity 的记录。内置记录使用 classification: suspicious 和 severity: warn。
foreach (Signatures::getDomainIndicators() as $indicator) {
if ($indicator['domain'] === $domain) {
// Record a warning-level enrichment signal.
}
}
可疑域名指示器需要上下文。域名可能被重新分配、修复,或在归档内容中被引用。不要仅基于此信号阻断流量或更改文件。
内部定义数据
Signatures::$raw、Signatures::$regex、Signatures::$domains、getAll() 和 optimizeSignatures() 用于扫描器检测。它们不是扩展约定。特别是,optimizeSignatures() 会修改其按引用传递的参数。请避免在应用程序进程中修改定义数组;请改用扫描器配置和报告审查。