Siaz0/WireGhostz
GitHub: Siaz0/WireGhostz
封装 tshark 的 PowerShell 脚本,用于捕获或读取数据包并导出结构化的纯文本分析报告。
Stars: 0 | Forks: 0
# 读取-Packets
一个封装了 `tshark`(Wireshark 的 CLI)的 PowerShell 脚本,它可以捕获或读取
数据包捕获文件,并导出一份易于阅读的 `.txt` 报告 ——
顶部是摘要表格,下方是每个数据包的完整分层解析。
## 环境要求
- **Windows** 系统且已安装 **PowerShell**
- 已安装 **Wireshark**(这将提供 `tshark.exe` 和 Npcap 驱动程序)
→
- 仅针对**实时捕获**:需要以**管理员身份**运行 PowerShell
(Npcap 需要提权才能进行捕获)
## 设置(仅需一次)
1. 使用上面的链接安装 Wireshark。如果提示,请在安装过程中
接受 Npcap 的安装提示。
2. 允许运行本地脚本(Windows 默认会阻止未签名的 `.ps1` 文件)。
以**管理员身份**打开 PowerShell 并运行:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
3. 将 `Read-Packets.ps1` 放在方便的位置,例如 `C:\Tools\Read-Packets.ps1`。
## 用法
打开 PowerShell,`cd` 进入包含该脚本的文件夹,然后运行以下命令之一:
### 列出可用接口
```
.\Read-Packets.ps1 -ListInterfaces
```
打印带有编号的网络接口列表。在进行实时捕获时,您将需要
此索引号。
### 捕获实时流量
**此命令需要以管理员身份运行 PowerShell。**
```
.\Read-Packets.ps1 -Mode Capture -Duration 60 -Interface 1
```
| 参数 | 含义 |
|---|---|
| `-Duration` | 捕获持续的时间(秒)(默认为 30) |
| `-Interface` | 来自 `-ListInterfaces` 的接口名称或索引 |
这会捕获指定时长的流量,将原始的 `.pcapng` 保存到您的临时
文件夹中(会保留,不会被删除 —— 路径会在最后打印出来),并写入
`.txt` 报告。
### 读取现有的捕获文件
```
.\Read-Packets.ps1 -Mode Read -InputFile "C:\Captures\session.pcapng"
```
将 `-InputFile` 指向**文件本身**,而不是包含它的文件夹 ——
如果您错误地传递了一个文件夹,脚本会明确报错。
### 自定义输出位置
默认情况下,报告会作为
`packet_report_.txt` 写入当前目录。可以使用以下命令覆盖:
```
.\Read-Packets.ps1 -Mode Read -InputFile "C:\Captures\session.pcapng" -OutputFile "C:\Reports\session.txt"
```
## 报告内容
```
======================================================================
PACKET CAPTURE REPORT
======================================================================
Source file : ...
Generated : ...
Total packets: N
----------------------------------------------------------------------
SUMMARY
----------------------------------------------------------------------
[one line per packet: frame #, time, src, dst, protocol, length, info]
----------------------------------------------------------------------
FULL PACKET DETAIL
----------------------------------------------------------------------
[full layer-by-layer breakdown per packet: Ethernet -> IP -> TCP/UDP -> payload,
same depth as expanding every layer in Wireshark's packet detail pane]
```
在 VSCode 中打开 `.txt`(如果您的 PATH 中包含
`code` 命令,脚本会自动提示为您执行此操作)。
## 故障排除
| 症状 | 原因 / 修复方法 |
|---|---|
| `tshark.exe not found` | 未安装 Wireshark,或安装在了非默认路径。请确认 `C:\Program Files\Wireshark\` 下是否存在 `tshark.exe`。 |
| 捕获失败 / 权限错误 | 重新**以管理员身份**打开 PowerShell。实时捕获需要 Npcap 的提升权限。 |
| `"" is a directory (folder), not a file` | `-InputFile` 指向了一个文件夹。请选择其中的实际捕获文件。 |
| 报告显示 `(empty capture)` | 源文件确实有 0 个数据包,**或者** tshark 读取失败 —— 请先检查该行上方打印的错误信息。 |
| 文件扩展名在资源管理器中被隐藏 | Windows 默认隐藏已知扩展名。启用 **查看 → 文件扩展名** 以查看文件确实是 `.pcapng` 还是根本没有扩展名。 |
## 注意事项
- 大型捕获(数千个数据包)将生成一个很大的 `.txt` ——
完整详细信息部分的设计初本就很冗长(它是 Wireshark 显示的每个数据包的
所有信息,而不是摘要)。
- 这是只读的:它从不修改您的 `.pcap`/`.pcapng` 文件,只会
读取它们并写入一个新的 `.txt`。
标签:AI合规, IPv6, Libemu, PowerShell, tshark, 网络抓包, 运维工具, 防御绕过