Youssix/CRTScan
GitHub: IWishI808/CRTScan
CRTScan 是一个防御性工具,通过 C 运行时指纹和返回地址分析来检测可疑 DLL 注入。
Stars: 0 | Forks: 0
# CRT 扫描
CRTScan 是一个防御性用户模式原型,通过
C 运行时指纹识别、PE 结构分析和返回地址检查来检测可疑 DLL。
研究思路很简单:注入或手动映入的有效载荷通常在签名状态、导入表形态、展开
元数据、安全 Cookie 设置以及 CRT 初始化行为方面与常规应用程序 DLL 不同。 CRTScan 将这些差异转化为一个小型评分引擎,可在授权实验室内进行研究和扩展。
## 已实现功能
- 使用 `CreateToolhelp32Snapshot` 枚举已加载模块
- 通过 `WinVerifyTrust` 检查 Authenticode 签名
- 针对 x64 模块的 PE 头解析
- `.pdata` / 异常目录检测
- 检查加载配置中的安全 Cookie 元数据
- 导入表计数和 CRT 导入检测
- 对异常模块进行基础嫌疑评分
- 针对选定的 CRT 初始化相关 API 的 IAT 钩子原型
- 栈捕获及基于已签名模块的返回地址验证
## 检测模型
CRTScan 结合多个弱信号,而非依赖单一指标:
- 未签名的模块被加载到已签名进程中
- 缺少 x64 展开元数据
- 缺少安全 Cookie 元数据
- 导入表非常小或稀疏
- 执行实际工作的模块中缺少正常的 CRT 链接
- 从未签名或未知模块调用常见的初始化 API
结果是一个研究评分,并非最终裁决。该项目旨在
展示如何关联、调优和验证这些信号。
## 构建
要求:
- Visual Studio 2022
- x64 本机工具命令提示符
构建此原型:
```
cl /W4 /O2 /DWIN32_LEAN_AND_MEAN src\main.c src\scanner.c src\hooks.c /Fe:crtscan.exe /link advapi32.lib wintrust.lib imagehlp.lib dbghelp.lib
```
针对当前进程运行:
```
crtscan.exe
```
针对指定 PID 运行:
```
crtscan.exe 1234
```
## 当前状态
CRTScan 是一个进行中的研究工具。评分启发式需要针对更大量的正常和恶意数据集进行调优。IAT 钩子引擎目前
仅覆盖一小部分 API,且设计用于本地实验,而非企业部署。
## 负责任的使用
本项目用于防御性分析、恶意软件分类实验室和检测
工程研究。它不包含注入、利用、驻留或规避功能。
## 相关文章
- [CRT 与 NoCRT 检测](https://youssix.github.io/2026/05/10/crt-nocrt-detection/)
## 许可证
MIT
标签:CRT初始化, CRT指纹, DAST, DLL注入检测, IAT钩子, PE分析, SSH蜜罐, URL发现, Windows API, 加载配置, 可疑模块扫描, 安全Cookie检查, 安全启发式, 安全检测, 安全评分, 客户端加密, 导入表分析, 异常检测, 异常目录, 恶意软件分析, 栈检查, 模块枚举, 模块验证, 用户模式检测, 研究原型, 端点可见性, 签名检查, 返回地址分析, 进程注入, 进程注入防御