Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SentinelNav — SentinelNav:零依赖、纯 Python 二进制可视化和取证工具。 | Kitploit
工具/GitHubGitHub/smolfiddle/sentinelnav
内存取证逆向工程取证分析数据恢复数字取证二进制分析固件分析
GitHubsmolfiddle/sentinelnav

SentinelNav

SentinelNav:零依赖、纯 Python 二进制可视化和取证工具。

查看仓库
146859个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SentinelNav

SentinelNav 是一款零依赖、纯 Python 实现的二进制可视化与取证工具。它将二进制数据转换为交互式光谱图,使分析人员能够直观识别文件结构、熵异常、代码段以及潜在的加密数据块。

它结合了用于快速文件扫描的多进程后端,以及用于交互式探索、十六进制检查和架构指纹识别的本地 Web 前端。

First screenshot Second screenshot


快速开始

由于 SentinelNav 仅依赖 Python 标准库,因此无需安装任何外部包。

  1. 将脚本保存为 sentinelnav.py。
  2. 以交互模式运行脚本:
root@kitploit:~
python3 sentinelnav.py
  1. 按提示将目标文件拖放到终端窗口中。
  2. 在浏览器中打开 http://localhost:8000。


功能特性

核心分析

  • 零依赖: 可在任何标准 Python 3 安装环境中运行,无需 pip install。
  • 混合扫描模式:
    • 固定块: 将文件切分为固定大小的块(例如 1024 字节)。适用于二进制文件和磁盘镜像。
    • 哨兵: 基于分隔符(例如日志或基于文本的协议中的 0x0A)对文件进行切分。
  • 架构指纹识别(ArchID):
    • 检测文件头(MZ、ELF、Mach-O、PDF、PNG、JPEG)。
    • 对原始二进制块执行启发式频率分析,以推测 CPU 架构(x86、x64、ARM64)。
  • 熵与异常检测:
    • 计算每个块的香农熵。
    • 检测“通量”事件:突然的峰值(加密/代码的开始)或下降(数据流的结束)。

可视化

  • 光谱映射: 将字节分布映射为 RGB 颜色,以直观区分数据类型(文本 vs. 代码 vs. 填充)。
  • Canvas 渲染: 高性能 HTML5 canvas 渲染,通过分页机制可处理数百万个块。
  • 实时十六进制检查器: 单击任意块即可查看原始十六进制转储、ASCII 解码和 ArchID 分析。
  • BMP 导出: 生成文件的完整热图图像,用于外部报告。

性能

  • 并行处理: 使用 concurrent.futures.ProcessPoolExecutor 在扫描期间利用所有 CPU 核心。
  • SQLite 后端: 将分析结果存储在临时 SQLite 数据库中,以便对大型文件(GB 级以上)进行高效分页和查询。

架构设计

SentinelNav 采用生产者-消费者架构,并带有客户端-服务器接口。

1. 取证引擎(后端)

  • 扫描器接口:
    • 抽象文件读取过程。
    • FixedScanner: 迭代读取 N 字节。
    • SentinelScanner: 读取到缓冲区中,并在发现特定字节(如空字节或换行符)时生成块。
  • 工作进程:
    • Processor 根据 CPU 数量生成一个工作进程池。
    • FastMath: 计算熵和字节频率计数(光谱数据)。
    • Heuristics: 判断一个块是 ASCII 密集、空字节密集还是高比特密集。
  • 数据引擎(存储):
    • 一个临时 sqlite3 数据库为二进制文件创建结构化索引。
    • 存储:偏移量、长度、熵、RGB 值、异常分数。
    • 这使得该工具能够按需分页数据,从而处理大于可用 RAM 的文件。

2. Web 服务器

  • 实现 http.server.ThreadingMixIn 以并发处理 HTTP 请求。
  • API 端点:
    • /data:返回块数据的 JSON 分页(颜色 + 熵)。
    • /read:为检查器面板提供特定的十六进制转储。
    • /search:在物理文件中扫描十六进制序列。
    • /download:提取原始二进制数据块或生成 BMP 可视化图像。

3. 前端

  • 单页应用程序(SPA)直接嵌入在 Python 脚本中。
  • 渲染: 使用 HTML5 Canvas API 进行像素级完美的块渲染。
  • 导航: 实现空间导航逻辑,将键盘输入(WASD)映射到网格坐标系。

可视化映射指南

该工具使用特定的 RGB 算法来表示二进制数据类型。

常见模式:

  • 亮绿色: 文本文件或源代码。
  • 粉红色/紫色: 代码与数据的混合(可执行节区)。
  • 纯蓝色: 零填充或空白区域。
  • 静态/灰色: 高熵噪声(加密数据)。

安装

前置条件

  • Python 3.6 或更高版本。

设置

无需安装任何库,直接下载该文件即可。

root@kitploit:~
# 克隆或下载脚本
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py

使用方法与 CLI 参数

你可以以交互方式运行该工具,或通过命令行参数运行。

交互式向导

不带参数运行将启动向导:

root@kitploit:~
python3 sentinelnav.py

CLI 参数

对于自动化或高级用户,可使用标志跳过向导。

root@kitploit:~
python3 sentinelnav.py <target_file> [options]

示例: 以 256 字节分辨率扫描固件镜像,端口为 8080:

root@kitploit:~
python3 sentinelnav.py firmware.bin --size 256 --port 8080

键盘控制

Web 界面加载后,可使用以下控制:

鼠标控制

  • 悬停: 查看光标所在块的实时熵和光谱统计信息。
  • 单击: 锁定对一个块的选择,以在检查器面板中查看十六进制转储和架构分析。
下载工具
颜色分量含义
红色高比特字节 0x80 - 0xFF。表示编译后的机器代码、压缩数据、加密数据块或图像数据。
绿色ASCII字节 0x20 - 0x7E。表示纯文本、源代码、JSON、XML 或日志。
蓝色控制字符字节 0x00 - 0x1F。表示空字节填充、文件头或协议控制字符。
参数描述默认值
--mode扫描模式:fixed 或 sentinel。fixed
--size固定模式的块大小(字节),或哨兵模式的最大缓冲区大小。1024
--hex哨兵模式的分隔符字节(例如,换行符为 0A)。00
--portWeb 服务器端口。8000
--window用于异常检测计算的滑动窗口大小。5
按键操作
W / A / S / D移动选择光标(上/左/下/右)。
向左箭头上一页。
向右箭头下一页。
Shift + WASD选择一系列块(多选)。
Shift + 单击从上一个锚点选择范围到当前单击的块。