变量/类/函数/文件名 的名称,改为指定长度的随机字符串,然后将所有 字符 转换为十六进制注释、所有 空行代码片段/函数/类,每次使用不同的值$ git clone https://github.com/Hnfull/Intensio-Obfuscator.git
$ python3 -m pip install -r Intensio-Obfuscator/requirements.txt
$ cd Intensio-Obfuscator/src/intensio_obfuscator
$ python3 intensio_obfuscator.py --help
$ python3 -m pip install intensio-obfuscator
$ intensio_obfuscator --help
replace string to string mixed -> -rts, --replacetostrpadding script -> -ps, --paddingscriptreplace file name -> -rfn, --replacefilenamereplace string to hex -> -rth, --replacetohex| 功能 | 描述 | 混淆目的 | 兼容所有类型的 Python 代码/语法 |
|---|
| 删除注释 | 删除所有注释(此功能默认执行) | 删除潜在的行为信息 | 高 python 文件 2 & 3 |
| 删除空行 | 删除所有空行(此功能默认执行) | 降低代码可见性 | 高 python 文件 2 & 3 |
| 修正填充空类/函数 | 对空类和函数添加填充,如果类或函数只包含注释,默认功能 删除注释 可能使其变为空,从而避免产生错误(此功能默认执行) | 无,仅为避免产生错误 | 高 python 文件 2 & 3 |
| 字符串替换为混合字符串 | 将所有变量/类/函数的名称替换为指定长度的随机字符串 | 降低代码可见性 - 延迟推断变量/类/函数的行为 | 低 - 高(取决于需要排除的名称数量)python 文件 2 & 3 |
| 排除词汇 | 用于排除词汇的文件(格式请查看文档),仅用于 替换文件名 混淆功能 | 无需信息 | 无需信息 |
| 填充脚本 | 在每行后添加随机脚本填充 | 降低代码可见性 - 添加无用代码/类/函数以模糊和延迟程序行为分析 | 高 python 文件 2 & 3 |
| 替换文件名 | 将所有文件名替换为指定长度的随机字符串 | 降低代码可见性 - 降低推断文件功能的可能性 | 低 python 文件 2 & 3 |
| 排除文件名 | 用于排除文件名的文件(格式请查看文档),仅用于 替换文件名 混淆功能 | 无需信息 | 无需信息 |
| 字符串替换为十六进制 | 将所有字符转换为十六进制值 | 降低代码可见性 / 避免被例如 grep 命令检测到 | 中 仅 python 文件 2 |
| 修正删除 pyc 文件 | 删除输出目录中的所有 pyc 文件(此功能默认执行) | 删除未进行混淆预编译的文件 | 高 python 文件 2 & 3 |
| 混淆长度-低 | 当指定 -rts, --replacetostr 或 -ps, --paddingscripts 或 -rfn, --replacefilesname 或 -rth, --replacetohex 参数时,定义随机字符串长度为 32 个字符 | 长度越长,代码可见性越难 | 无需信息 |
| 混淆长度-中 | 当指定 -rts, --replacetostr 或 -ps, --paddingscripts 或 -rfn, --replacefilesname 或 -rth, --replacetohex 参数时,定义随机字符串长度为 64 个字符 | 长度越长,代码可见性越难 | 无需信息 |
| 混淆长度-高 | 当指定 -rts, --replacetostr 或 -ps, --paddingscripts 或 -rfn, --replacefilesname 或 -rth, --replacetohex 参数时,定义随机字符串长度为 128 个字符 | 长度越长,代码可见性越难 | 无需信息 |
| 参数 | 描述 |
|---|
| -h, --help | 显示此帮助信息并退出 |
| -i, --input | 源目录 - 指定包含文件的目录 |
| -o, --output | 输出目录(将包含混淆后的文件)- 指定一个空目录用于存放文件 |
| -mlen, --mixerlength | 当指定 --replacetostr 或 --paddingscripts 或 -rfn, --replacefilesname 或 --replacetohex 功能时,定义生成的随机字符串长度 [lower:32|medium:64|high:128] 字符,可能的值: [lower|medium|high] |
| -ind, --indent | 指示 Python 源代码的缩进,可能的值: [2|4|8] |
| -rts, --replacetostr | 启用 replace string to string mixed 混淆功能 |
| --excludewords | 用于排除特定词汇的文件(格式请查看文档),仅用于 -rts, --replacetostr 混淆功能 |
| -ps, --paddingscript | 启用 padding script 混淆功能 |
| -rfn, --replacefilename | 启用 replace file name 混淆功能 |
| --excludefiles | 用于排除文件名的文件(格式请查看文档),仅用于 -rfn, --replacefilename 混淆功能 |
| -rth, --replacetohex | 启用 replace string to hex 混淆功能 (仅适用于 Python 2 文件) |
| --version | 检查当前版本 |
| -v, --verbose | 提高输出详细程度 |