Skip to main content

string_analyze/rules/core/
constant.rs

1use crate::rules::lazy_rule;
2
3// 算法常数
4lazy_rule!(
5    RE_MD5_MAGIC = r#"(?i)\b(?:67452301|efcdab89|98badcfe|10325476)\b"#,
6    "发现 MD5 初始化幻数 (小端序/大端序常见特征)",
7    70
8);
9lazy_rule!(
10    RE_SHA1_MAGIC = r#"(?i)\b(?:67452301|efcdab89|98badcfe|10325476|c3d2e1f0)\b"#,
11    "发现 SHA-1 初始化幻数",
12    70
13);
14lazy_rule!(
15    RE_SHA256_MAGIC = r#"(?i)\b(?:6a09e667|bb67ae85|3c6ef372|a54ff53a)\b"#,
16    "发现 SHA-256 初始化幻数",
17    70
18);
19lazy_rule!(
20    RE_CRC32_POLY = r#"(?i)\b(?:edb88320|04c11db7)\b"#,
21    "发现 CRC32 多项式常数",
22    70
23);
24lazy_rule!(
25    RE_CHACHA_SALSA = r#"expand (?:16|32)-byte k"#,
26    "发现 ChaCha20 / Salsa20 初始化特征字符串",
27    70
28);
29lazy_rule!(
30    RE_BLOWFISH_PI = r#"(?i)\b(?:243f6a88|85a308d3|13198a2e|03707344)\b"#,
31    "发现 Blowfish 圆周率 P-box 初始常数",
32    70
33);
34lazy_rule!(
35    RE_AES_POLY = r#"(?i)\b11b\b"#, // AES GF(2^8) 的不可约多项式 x^8+x^4+x^3+x+1,某些实现会硬编码
36    "发现 疑似 AES 多项式常数 (0x11b)",
37    70
38);
39lazy_rule!(
40    RE_SECP256K1_P = r#"(?i)\bFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\b"#,
41    "发现 Secp256k1 (比特币) 椭圆曲线 Prime 参数",
42    70
43);
44lazy_rule!(
45    RE_ED25519_P = r#"(?i)\b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed\b"#,
46    "发现 Ed25519 椭圆曲线 Prime 参数",
47    70
48);
49lazy_rule!(
50    RE_TEA_MAGIC = r#"(?i)\b(?:9e3779b9|2654435769)\b"#,
51    "发现 TEA/XTEA/XXTEA 算法核心 Delta 常数",
52    70
53);
54lazy_rule!(
55    RE_RC4_SBOX_INIT = r#"(?i)\b(?:256|0x100)\s*(?:bytes|array|S-box|state)\b"#,
56    "发现 疑似 RC4 初始化特征描述",
57    70
58);
59lazy_rule!(
60    RE_BLAKE2_IV = r#"(?i)\b(?:6a09e667f3bcc908|bb67ae8584caa73b)\b"#,
61    "发现 BLAKE2 哈希算法初始化向量",
62    70
63);