jonathanciapetti/picklevw

GitHub: jonathanciapetti/picklevw

一个基于 Streamlit 的 Python Web 应用,提供图形界面来安全地查看和检查 pickle 文件内容。

Stars: 8 | Forks: 0

**picklevw**(发音为 *pickleview*)是一个简单的 Python Web 应用程序,旨在使用 `pandas` 和 `streamlit` 读取并显示 pickle 文件。 在 [picklevw.streamlit.app](https://picklevw.streamlit.app) 体验在线版 ### 快速开始 #### 安装 克隆仓库并安装所需的依赖项(建议在虚拟环境中进行): ``` git clone https://github.com/jonathanciapetti/picklevw.git cd picklevw python3 -m venv ./venv source venv/bin/activate pip install -r requirements.txt ``` #### 运行应用 要启动应用程序,请运行: ``` streamlit run src/picklevw.py ``` 以下是一张应用程序的截图,展示了一个合法的、未使用任何 3rd-party 包的 pickle 文件被反序列化(unpickled)后的内容:

legit pickle

如果你尝试在未开启 ***Bypass safety checks***(绕过安全检查)按钮的情况下,打开包含 3rd-party 包(如 Numpy 或 Pandas)的 pickle 文件,或者尝试打开恶意的 pickle 文件,你将会看到以下界面:

problematic pickle

以下截图展示了 PickleVW 显示一个存储了 Numpy `ndrray` 的合法 pickle 文件的内容(注意已开启的安全按钮):

disabled bypass safety check

### 安全检查 `picklevw` 依赖 [`Fickling`](https://github.com/trailofbits/fickling) 来检测潜在的恶意 pickle 文件。`fickling` 依赖于 [`distutils`](https://docs.python.org/3/library/distutils.html),而后者仅在 Python 3.11 及以下版本中可用。因此,Python 3.11 是 `picklevw` 支持的最新版本。 ### 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE.txt 文件。 ### 联系方式 - 仓库:[https://github.com/jonathanciapetti/picklevw](https://github.com/jonathanciapetti/picklevw) - 邮箱:[jonathan.ciapetti@normabytes.com](mailto:jonathan.ciapetti@normabytes.com)
标签:Kubernetes, Pickle, Python, Streamlit, 文件查看器, 无后门, 访问控制, 逆向工具