blandteampr/Source-code-scanner

GitHub: blandteampr/Source-code-scanner

一款用于扫描C#和Python源代码中恶意模式、行为链并提供风险评分的静态分析工具。

Stars: 0 | Forks: 0

# 平淡扫描器 ## 版本:1.0 平淡扫描器是一款使用 C# 编写的 Windows 窗体桌面应用程序,用于扫描源代码文件(.cs 和 .py)中的恶意模式、可疑行为链和高熵字符串。它会生成风险评分、判定结果和详细报告。 ![BlandScanner](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/dc7be2d4d0203247.png) ## 工作原理 ### 用户输入(拖放或浏览) - 用户将一个或多个文件或文件夹拖放到窗体上 - 应用程序在提供的路径中递归查找所有 .cs 和 .py 文件 ### 引擎选择 - .cs 文件使用 CSharpEngine - .py 文件使用 PythonEngine - 两个引擎都实现了包含 ScanWithDetails 方法的 IScannerEngine 接口 ### 逐行分析 对于每个文件,引擎会读取所有行并逐行处理: #### 3.1 注释跳过 以 //、/*、# 或 """ 开头的行会被忽略,以减少误报 #### 3.2 模式匹配 每行都会按类别检查正则表达式模式: | 模式类型 | 示例 | | :--- | :--- | | 执行 | Process.Start, os.system, eval, subprocess | | 网络 | HttpClient, WebClient, requests.get, socket | | 注入 | Assembly.Load, VirtualAlloc, pickle.loads, ctypes | | 编码 | Convert.FromBase64String, base64.b64decode | | 文件系统 | File.Delete, os.remove, shutil.rmtree | | 持久化 | RegistryKey, winreg | 当模式匹配时,会记录一个可疑项目,包含: - 行号 - 危险评分 - 严重级别(低、中、高、严重) - 原因描述 #### 3.3 变量跟踪 简单的变量赋值跟踪有助于检测被混淆或动态构造的恶意载荷 #### 3.4 熵检测 - 长度超过 40 个字符的字符串会被分析其熵值 - 高熵且包含数字或大小写混合表明可能是加密或压缩的载荷 ### 行为链检测 引擎维护一个最近行(最后 5 行)的滑动窗口,以检测多步骤的恶意行为链: | 链类型 | 检测模式 | | :--- | :--- | | 下载 + 执行 | 网络请求 + 进程执行 | | Base64 解码 + 执行 | 解码字符串然后执行 | | 注入 + 执行 | 非托管代码注入 + 执行 | 当检测到行为链时,会向结果中添加一个“严重”级别的条目。 ### 评分系统 每个引擎针对每种模式类型维护独立的分数: | 分数类别 | 最大上限 | | :--- | :--- | | 执行分数 | 50 | | 网络分数 | 40 | | 注入分数 | 60 | | 编码分数 | 40 | 重复的模式命中会增加分数,但收益递减(最大倍数为 2)。最终总分上限为 100。 ### 最终判定计算 基于总分: | 分数范围 | 判定 | | :--- | :--- | | 80 - 100 | 可能是恶意软件 | | 60 - 79 | 高度可疑 | | 40 - 59 | 可疑 | | 0 - 39 | 可能安全 | **置信度 = 总分 / 100(上限为 1.0)** ### 结果聚合与显示 扫描完所有文件后: - 将分数聚合为一个危险百分比 - 计算平均置信度 - 结果以颜色编码的严重级别显示在列表框中 - 详细报告可以保存为文本文件 ## 代码块示例 以下是扫描引擎处理可疑 C# 行的示例: ``` // High entropy string detection example string payload = "JHVzZXJhZ2VudCQkc2hhMjU2JCRlbmNyeXB0ZWQ="; byte[] decoded = Convert.FromBase64String(payload); Assembly.Load(decoded); ```
标签:Python, Windows Forms, 代码审计工具, 安全专业人员, 安全扫描, 恶意模式, 扫描工具, 无后门, 时序注入, 桌面应用, 模式匹配, 混淆字符串, 熵检测, 自动化资产收集, 行为链分析, 错误基检测, 静态代码分析, 风险评分