vipyrsec/vipyrsec-deobfuscator
GitHub: vipyrsec/vipyrsec-deobfuscator
一个支持多种 Python 混淆格式的代码去混淆工具,可自动或手动识别混淆类型并还原原始代码。
Stars: 11 | Forks: 3
# vipyrsec-deobfuscator
## 安装
```
# 不支持 argcomplete
pip install git+https://github.com/vipyrsec/vipyrsec-deobfuscator.git
# 支持 argcomplete
pip install "vipyr-deobf[argcomplete] @ git+https://github.com/vipyrsec/vipyrsec-deobfuscator.git"
```
## 支持的混淆类型
- Vare
- FCT (FreeCodingTools)
- BlankOBF v2
- Hyperion(不完整)
- PyObfuscate
## 用法
```
py -m vipyr_deobf mal.py
# 或
vipyr-deobf mal.py
```
默认情况下,去混淆器会“尽最大努力”识别混淆方式。如果无法检测出混淆类型,
可以使用 `-t` 或 `--type` 开关手动指定。
可以提供多种混淆类型和版本,以逗号分隔。例如,`vipyr-deobf mal.py -t foov1,foov2,bar` 将使用 `foo` 的版本 1、2 和 `bar` 的版本 1 来运行去混淆器。
去混淆器还支持使用 `-o` 或 `--output` 开关将输出写入文件。
## 添加去混淆器
如果你想添加自己的去混淆器,只需在 `deobfuscators` 文件夹中添加一个文件,`vipyr-deobf` 就会自动
检测到它。
格式为 `**/deobfuscators/DeobfName/deobfname.py`。`deobfname` 应等于 `DeobfName` 的全部字母小写
且移除空格的结果,同时也支持在文件名中添加 `_v(version number)` 来表示版本(如果未提供,版本默认为 1)。
例如,
```
Foo/foo_v1.py
Eggs Bacon/eggsbacon_v2.py
Eggs Bacon/eggsbacon.py
```
都是有效的,但
```
Foo/bar.py (different file name)
Foo/barv1.py (no _ before v)
```
则无效。
将代码添加到该文件后,请添加以下几行:
```
from vipyr_deobf.deobf_base import Deobfuscator, register
blankobf_v2_deobf = Deobfuscator(deobf, format_results, scan)
register(blankobf_v2_deobf)
```
查看 `Deobfuscator` 类的类型提示,以确定这三个函数
应该是什么样子,并将你的代码包装到这三个函数中。
标签:DAST, DNS 反向解析, Python, 云资产清单, 代码分析, 代码反混淆, 凭证管理, 恶意软件分析, 无后门, 逆向工具, 逆向工程