string_analyze/rules/core/
compiler.rs1use crate::rules::lazy_rule;
2
3lazy_rule!(
7 RE_COMPILER_MSVC_UCRT = r#"(?i)minkernel\\crts\\ucrt\\src\\"#,
8 "发现 MSVC Universal CRT 源代码路径",
9 30
10);
11
12lazy_rule!(
13 RE_COMPILER_MSVC_VCRUNTIME = r#"(?i)[a-z]:\\[^:*?"<>|\r\n]*\\vcruntime\\src\\"#,
14 "发现 MSVC VCRuntime 源代码路径",
15 30
16);
17
18lazy_rule!(
19 RE_COMPILER_MSVC_DLL = r#"(?i)\b(?:msvcr\d+|msvcp\d+|vcruntime\d+|ucrtbase)\.dll\b"#,
20 "发现 MSVC 动态运行时库 (CRT DLL)",
21 15
22);
23
24lazy_rule!(
28 RE_COMPILER_GCC = r#"GCC:\s*\([^)]+\)\s*\d+\.\d+\.\d+"#,
29 "发现完整的 GCC 编译器版本字符串",
30 20
31);
32
33lazy_rule!(
34 RE_COMPILER_CLANG = r#"(?i)\bclang\s+version\s+\d+\.\d+\.\d+"#,
35 "发现 Clang 编译器版本字符串",
36 20
37);
38
39lazy_rule!(
43 RE_LANG_RUST_PATH = r#"/rustc/[0-9a-f]{40}/library/"#,
44 "发现 Rust 标准库编译路径",
45 30
46);
47
48lazy_rule!(
49 RE_LANG_RUST_RUNTIME = r#"\b(?:RUST_BACKTRACE|panicked at|fatal runtime error)\b"#,
50 "发现 Rust 运行时错误/调试字符串",
51 30
52);
53
54lazy_rule!(
58 RE_LANG_GO_BUILDID = r#"\bGo build ID:\s*"[^"]+""#,
59 "发现 Go Build ID",
60 30
61);
62
63lazy_rule!(
64 RE_LANG_GO_RUNTIME = r#"\b(?:runtime\.main|runtime\.gopanic|main\.main)\b"#,
65 "发现 Go 运行时符号/函数名",
66 30
67);
68
69lazy_rule!(
73 RE_LANG_DOTNET_MSCOREE = r#"(?i)\bmscoree\.dll\b"#,
74 "发现 .NET 核心运行时加载器 (mscoree.dll)",
75 40
76);
77
78lazy_rule!(
79 RE_LANG_DOTNET_CORMAIN = r#"\b_Cor(?:Exe|Dll)Main\b"#,
80 "发现 .NET 可执行文件入口点符号 (_CorExeMain)",
81 40
82);
83
84lazy_rule!(
88 RE_COMPILER_DELPHI = r#"(?i)\b(?:Borland\\Delphi|System\.SysUtils|FastMM)\b"#,
89 "发现 Delphi / Embarcadero 运行时特征",
90 30
91);
92
93lazy_rule!(
94 RE_COMPILER_FPC = r#"(?i)\bFree Pascal Compiler\b"#,
95 "发现 Free Pascal 编译器特征",
96 30
97);
98
99lazy_rule!(
103 RE_PACKER_PYINSTALLER = r#"(?i)\b(?:pyi-windows-manifest|Py_Initialize)\b"#,
104 "发现 PyInstaller 打包特征",
105 40
106);
107
108lazy_rule!(
109 RE_PACKER_NUITKA = r#"(?i)\b__nuitka_module\b"#,
110 "发现 Nuitka 打包/编译特征",
111 40
112);
113
114lazy_rule!(
118 RE_PACKER_UPX_SECTION = r#"UPX[012]!"#,
119 "发现 UPX 壳区段标识符",
120 50
121);
122
123lazy_rule!(
124 RE_PACKER_UPX_TEXT = r#"\$Info: This file is packed with the UPX executable packer\$"#,
125 "发现 UPX 官方版权声明文本",
126 50
127);