zx97/unwrap

GitHub: zx97/unwrap

一个用于Oracle PL/SQL代码混淆和去混淆的C++工具。

Stars: 0 | Forks: 0

# PL/SQL Unwrap v3.2.0 -> PL/SQL Unwrap v3.2.0 独立的 C++ 二进制程序,用于**展开**(和**包装**)Oracle PL/SQL 源代码,由 Cameron Marshall 的 [PL/SQL Unwrapper][original] 项目移植而来。 由 **Manuel FLURY** 进行 C++ 端移植。许可协议为 **GNU 通用公共许可证 v3.0**。 ## 功能 - V1 展开 — Oracle 8/8i/9i **(移植,未测试**) - V2 展开 — Oracle 10g+ 至 23ai - V2 包装 — 将普通 PL/SQL 编码为原生 Oracle 包装格式 - 与 Oracle 19c 原生 `wrap` 工具验证为字节相同 - 支持:TYPE、PRAGMA、RESULT_CACHE、DETERMINISTIC、参数 - 方案限定名称需要 `--compat`(删除前缀) - **混淆** — 将标识符重命名为非常短的名字,嵌入 AES-256-CBC 加密映射,使用 PBKDF2 密钥派生 - **去混淆** — 从混淆源恢复原始名称 - 自动检测包装部分(混合文件,多个部分) - 二进制中嵌入许可证和 README - `-p ` 在展开后自动去混淆 - `--compat` / `-c` 从对象名称中删除方案前缀 ## 限制 - 最大输入文件大小:**128 MB** - V1 解包装器已移植,但缺乏实际验证 - 方案限定对象名称(`schema.func`)产生无效的包装输出;在包装之前使用 `--compat` 删除前缀 - 多对象文件(规范 + 主体)需要在 CREATE 语句之间使用 `//` 分隔符 — 每个单元独立包装 ## 使用方法 ``` unwrap [options] [-i ] [-o ] wrap [options] -i [-o ] ``` | 选项 | 描述 | |----------------------------|-----------------------------------------------| | `-i`,`--input` | 输入文件(如果管道,则为 stdin) | | `-o`,`--output` | 输出文件(如果省略,则为 stdout) | | `--v1` | 强制 V1 解包装器(8/8i/9i — 未测试) | | `--v2` | 强制 V2 解包装器(10g+) | | `--wrap` | 包装源(V2 方法) | | `--obfuscate`,`--obf` | 将标识符重命名为短名字 + 包装 | | `--deobfuscate`,`--deobf` | 从混淆源恢复原始名称(需要密码) | | `-p`,`--passphrase` | 混淆/自动去混淆的密码 | | `--keep-comments` | 保留注释(默认:删除它们) | | `--compat`,`-c` | 从对象名称中删除方案前缀 | | `-V`,`--version` | 显示版本和作者 | | `-l`,`--license` | 显示许可证信息 | | `--readme` | 显示嵌入的 README | | `-h`,`--help` | 显示此帮助 | ## Oracle 兼容语法(包装模式) ``` wrap iname=file.sql oname=file.pls keep_comments=yes help=yes ``` 在没有参数调用时,如果 stdin 是终端,则显示用法而不是从 stdin 读取。单独的 `-p` 标志在展开后自动触发去混淆。 ## 构建 **依赖项:** cmake,zlib,OpenSSL(C++17)。 ``` make make test make clean ``` 根据发行版的安装命令: - **Debian/Ubuntu:** `apt install build-essential cmake libz-dev libssl-dev` - **Fedora/RHEL:** `dnf install gcc-c++ cmake zlib-devel openssl-devel` - **Alpine:** `apk add build-base cmake zlib-dev openssl-dev` ## 原始项目 https://github.com/oddz/PL-SQL-Unwrapper
标签:AES-256-CBC, C++工具, GNU通用公共许可证, Node.js, Oracle数据库, PBKDF2, PL/SQL, 代码优化, 代码封装, 代码混淆, 代码版本控制, 代码管理, 代码解封装, 代码解混淆, 代码转换, 加密, 数据库安全工具, 数据库工具, 数据库开发, 数据库管理, 数据库脚本, 数据库脚本优化, 数据库脚本优化工具, 数据库脚本加密, 数据库脚本加密工具, 数据库脚本审计, 数据库脚本审计工具, 数据库脚本工具, 数据库脚本开发工具, 数据库脚本版本控制, 数据库脚本版本控制工具, 数据库脚本管理, 数据库脚本管理工具, 数据库脚本解密, 数据库脚本解密工具, 数据库脚本转换, 数据库脚本转换工具, 数据管道, 源代码处理, 漏洞扫描器, 软件工具, 软件工程, 软件开发