ionCube PHP 编码器 10.2
用户指南
ionCube 及其 logo 均为 ionCube Ltd.的注册商标。
ioncube.com
联系和链接
联系和链接
联系 ionCube
请查看我们的联系方式 http://www.ioncube.com/contact.php FAQ
在我们的 FAQ 中找到常见问题的答案,请访问 http://www.ioncube.com/faq.php
Support
要获得在线支持,请访问 http://support.ioncube.com
采购产品
欲购买 ionCube 产品,请访问 http://www.ioncube.com/purchase.php
最新的加载器
要获取最新的加载器或加载器向导,请访问 http://loaders.ioncube.com
2019 年 2 月
ionCube Encoder 10.2 用户指南
2
内容
内容
1 介绍..................................................................................................................... 8
1.1 编码器大纲......................................................................................................................... 9
1.2 使用编码文件/ ionCube 装载机........................................................................... 10
1.3 用户指南符号................................................................................................................ 11
1.3.1 命令示例.................................................................................................. 11
1.3.2 编码器程序命名.......................................................................................... 11
1.3.3 编码器在 64 位 Linux ............................................................................................ 12
1.3.4 提示和技巧............................................................................................................ 12
1.3.5 Unix 平台............................................................................................................ 12
2 开始............................................................................................................. 13
PHP 2.1 兼容性................................................................................................................... 13
2.2 运行编码器.............................................................................................................. 13
2.3 许可编码器使用命令行....................................................................... 14
2.3.1 自动许可——激活(推荐)....................................................... 14
2.3.2 手册授权——gen-license-request ................................................................... 14
2.4 许可编码器使用 GUI .................................................................................... 15
2.4.1 与一个活跃的网络连接(推荐).................................................. 15
2.4.2 通过电子邮件.................................................................................................................... 15
2.5 转让许可证或重新安装一台机器................................................................ 15
2.5.1 许可证在 Windows ........................................................................... 15 才会安静下来
2.5.2 自动方法——禁用(推荐)....................................................... 15
2.5.3 手工方法——gen-revoke-request ..................................................................... 15
2.6 命令行基本............................................................................................................ 16
2.6.1 命令行格式............................................................................................... 16
2.6.2 通过命令行选项................................................................................ 16
2.6.3 文件名,目录和通配符模式匹配.................................................. 16
2.6.4 UNIX 上使用通配符.......................................................................... 18
2.6.5 源目录替换使用@ ........................................................................ 18
2.7 快速启动编码例子............................................................................................ 19
2.7.1 编码单个文件................................................................................................. 19
2.7.2 编码目录.................................................................................................. 19
2.7.3 编码非默认的文件扩展名的文件........................................................ 20
PHP 编码第 2.7.4 Shell 脚本....................................................................................... 20
2.7.5 加密模板和其他文件........................................................................ 20
2.7.6 离开文件 non-encoded ........................................................................................ 21
2.7.7 省略文件从编码目标.................................................................... 21
2.7.8 增加版权和许可细节............................................ 21 编码文件
2019 年 2 月
ionCube Encoder 10.2 用户指南
3
.
3 编码器命令行选项.............................................................................. 22
内容
3.1 指定源和目标.......................................................................................... 22
3.1.1 源项目.............................................................................................................. 22
3.1.2 编码器目标[o,成]................................................................................... 22
3.2 文件格式编码............................................................................................................... 23
3.2.1 ASCII 格式——ASCII ................................................................................................. 23
3.2.2 二进制格式——二进制.............................................................................................. 23
3.3 目标............................................................................. 24 编码到一个现有的目录
3.3.1 替换目标——replace-target ....................................................................... 24
3.3.2 合并到目标——merge-target ..................................................................... 24
3.3.3 重命名目标——rename-target ...................................................................... 24
3.3.4 更新目标,更新目标......................................................................... 24
3.3.5 创建目标路径——创建目标群体............................................................................ 24
3.3.6 目标选择和捆绑编码..................................................................... 24
3.4 选择文件编码、加密、复制或忽略............................................ 25
3.4.1 编码特定的 PHP 文件——编码..................................................................... 25
3.4.2 加密文件,加密......................................................................................... 25
3.4.3 排除文件编码或者加密——复制........................................ 26
3.4.4 排除文件从目标——忽略................................................................... 26
3.4.5 包括忽略文件——保持.................................................................................. 26
3.4.6 仅将已编码的文件包含到目标中[——仅包含已编码的文件]……26
3.5 字节码混淆............................................................................................................ 27
3.5.1 混淆编译好的字节码符号——混淆............................................. 27
3.5.2 指定一个模糊关键——obfuscation-key .................................................... 27
3.5.3 指定模糊除外——obfuscation-exclusion-file ............................... 28
3.6 基于文件服务器限制(Cerberus 版和专业版).............................................. 29
3.6.1 文件到期后一段时间,过期.................................................................... 29
操作文件从到期日期,到期...................................................................... 29
3.6.3 锁定文件到特定的域名和服务器——allowed-server ............................. 29
3.6.4 使用带 PHP CLI 的域限制脚本[- trust-unname -servers]……31
3.6.5 排除检查接口的别名——ignore-interface-aliases .............................. 32
3.7 基于许可证服务器限制(Cerberus 版和专业版)....................................... 33
3.7.1 指定许可文件——与许可.................................................................... 33
3.7.2 章指定一个密码,密码.................................................................... 33
3.7.3 许可检查模式——许可检查....................................................................... 34
3.8 目标文件属性............................................................................................................... 35
3.8.1 复制与硬链接——use-hard-links ................................................................. 35
3.8.2 使用默认文件权限——without-keeping-file-perms ................................... 35
3.8.3 更新文件倍——without-keeping-file-times ...................................................... 35
3.8.4 文件所有权——without-keeping-file-owner ............................................................ 35
3.8.5 设置文件所有权——apply-file-user, apply-file-group ....................................... 35
语言选项................................................................................................................... 36
3.9.1 忽视短开标签——no-short-open-tags ....................................................... 36
3.9.2 忽视严格的语言警告——ignore-strict-warnings ..................................... 36
3.9.3 忽略已弃用的特征警告[—ignore-deprecated-warnings]…………36
3.9.4 注册自定义自动全局——register-autoglobal ................................................ 36
3.9
2019 年 2 月
ionCube Encoder 10.2 用户指南
4
内容
3.10 编码文件头定制..................................................................................... 37
3.10.1 移除运行时加载器支持[——没有运行时加载器支持]……37
3.10.2 没有 PHP 生成文件头——without-loader-check ................................. 37
3.10.3 自定义“未安装加载程序”消息[- Message -if-no- Loader]……37
3.10.4 定制没有加载程序安装的行动——action-if-no-loader ............................ 37
3.10.5 设置运行时加载程序路径——loader-path ...................................................... 38
3.10.6 设置标题的代码——preamble-file .................................................................. 38
3.10.7 头评论——添加评论,添加评论.............................................. 38
3.11 定制装载机行为............................................................................................. 39
3.11.1 装载机事件消息——loader-event ................................................................... 39
3.11.2 调文件——callback-file ..................................................................................... 40
3.11.3 装载机............................................................................................. 41 事件常量
3.12 文件属性,包括攻击预防..................................................................... 42
3.12.1 设置属性——属性,属性................................................................ 42
3.12.2 包括攻击预防——include-if-property ......................................................... 43
3.12.3 防止 Prepend 和 Append 文件的使用[——disable-auto-prepend-append]
3.13 项目处理...................................................................................................................... 44
3.13.1 指定项目文件,项目文件.................................................................... 44
3.13.2 创建项目文件,创建项目.................................................................. 44
3.13.3 更新项目文件(- Update Project) ...................................................................... 44
3.14 捆绑编码................................................................................................................. 45
3.14.1 开始捆绑编码[——包- b] ................................................................ 45
3.14.2 增加捆绑编码————add-to-bundle .................................................. 45
3.14.3 那么就会出现下面的错误:.......................................................................... 45
3.14.4 捆绑编码和.............................................................. 45——*—target 选项
3.14.5 添加标题评论额外编码——保持.......................... 46
3.14.6 捆绑............................................... 46 Non-PHP 编码和加密的文件
.............................................................................. 46 3.14.7 限制捆绑编码文件
3.14.8 捆绑编码和编码文件格式........................................................... 46
3.15 混杂................................................................................................................................ 47
3.15.1 编码和字节码优化——优化,优化.................................... 47
3.15.2 允许编码到源树[——允许编码到源]……47
3.15.3 忽略文档的评论——no-doc-comments ......................................... 48
3.15.4 设置另一个 Shell 脚本线——shell-script-line ............................................ 48
3.15.5 执行最低装载机版本——min-loader-version ........................................... 48
3.15.6 检查程序更新——check-version ........................................................... 48
3.15.7 程序版本.................................................................................. 48 v,版本
3.15.8 详细模式- v,详细..................................................................................... 48
3.15.9 文件验证,验证...................................................................................................... 48
3.15.10 帮助- h,帮助........................................................................................................... 49
4 和外部动态密钥...................................................................................... 50
4.1 介绍............................................................................................................................. 50
4.2 外部键........................................................................................................................... 51
4.2.1 文件系统外部键准备——编码键文件:…..................................................... 51
4.2.2 使用带有外键的配置属性[——encoding-key ini:…]
4.2.3,外键 ini 属性可以设置........................................................... 53 岁
2019 年 2 月
ionCube Encoder 10.2 用户指南
5
内容
4.3
4.2.4 使用许可属性与外部键——编码键 lic:……......................... 53
4.2.5 外部键和安全........................................................................................ 54
4.2.6 外部键值........................................................................... 54 的独特性
4.2.7 时可能发生的错误编码与外部键...................................... 54
4.2.8 错 误 可 能 发 生 在 运 行 时 .............................................. 与 外 部 键 55 动 态 密
钥.......................................................................................................................... 56
4.3.1 函数注释指定动态密钥......................................................... 56
4.3.2 规则表达式用于获取解码关键............................................... 58 岁
4.3.3 .................................................................................... 59 可用的加密方法
4.3.4 动态密钥................................................................................ 59 整个脚本
4.3.5 动态键在主脚本.............................................................................. 60
4.3.6 动态密钥和闭包...................................................................................... 60
4.3.7 链函数的动态密钥................................................................ 60
为 4.3.8 性能与安全使用动态密钥......................................... 61
4.3.9 使用带有动态解码的反射 API[——allow- Reflection -all,——allow-
反射)61
4.3.10 编码器产生的与动态密钥有关的错误和警告……..62
4.3.11 在运行时可能发生的错误相关的动态密钥.................................... 63
4.3.12 控制动态解码错误的呈现方式[——Dynamic -key- Errors]…63
4.3.13 得到动态关键信息详细[——详细]...................................... 64
5 生成许可文件(Cerberus 版和专业版).............................................. 65
5.1 介绍许可证文件.................................................................................................. 65
5.2 创建许可文件............................................................................................................ 67
5.2.1 命令行用法................................................................................................ 67
5.2.2 使用密码来区分产品[——密码]..................................... 67
5.2.3 设置许可限制[——allowed-server,——cftc -server- Restrictions]
5.2.4 排除检查接口的别名——ignore-interface-aliases .............................. 67
5.2.5 设定许可的限制[——use-server-file] ............................... 67 从服务器数据
. 5.2.6 选择适配器——select-server-adapter, select-adapters .................................. 68
5.2.7 许可证到期(————到期,到期——expose-expiry] ........................................... 68
5.2.8 许可属性——属性,expose-property ..................................................... 68
5.2.9 许可证属性检查[——执行楼市]......................................................... 68
5.2.10 定制标题块[——标题行]............................................................ 69
5.2.11 查看服务器数据文件——decode-server-file ........................................................ 69
5.2.12 排除............................................................................ 69 许可证问题
6 装载机 API ........................................................................................................................ 70
6.1 文件信息和执行.............................................................................................. 70
但是检查一个编码文件[ioncube_file_is_encoded] .......................................... 70
6.1.2 通用编码文件信息[ioncube_file_info] ................................................ 70
6.1.3 检索存储在编码文件[ioncube_file_properties]中的属性……70
6.1.4 检索装载机字符串版本[ioncube_loader_version] ................................. 70
6.1.5 检索装载机[ioncube_loader_iversion] .............................. 70 整数版本
6.2 许可协议和服务器信息............................................................................................. 71
6.2.1 检索存储在许可证[ioncube_license_properties]中的属性
6.2.2 获取许可服务器列表[ioncube_licensed_servers]……71
6.2.3 创建一个服务器数据块[ioncube_server_data] ................................................. 71
2019 年 2 月
ionCube Encoder 10.2 用户指南
6
内容
6.3 许可证验证................................................................................................................... 72
6.3.1 验证许可属性[ioncube_check_license_properties] ........................... 72
再验证授权服务器[ioncube_license_matches_server] ............................... 72
6.3.3 验证许可证到期 ioncube_license_has_expired ......................................... 72
6.4 加密文件支持........................................................................................................... 73
6.4.1 阅读加密的文件[ioncube_read_file] ............................................................. 73
6.4.2 写加密的文件[ioncube_write_file] ............................................................... 73
6.5 错误代码.............................................................................................................................. 74
7 错误报告........................................................................................................... 75
76 故障排除..........................................................................................................
8.1 无法启动编码器................................................................................................... 76
8.1.1 在 UNIX (Linux、FreeBSD, OS X) .............................................................................. 76
8.1.2 使用 64 位系统................................................................................................. 76
8.1.3 Windows .............................................................................................................. 76
9 装入器安装..................................................................................................... 77
9.1 装载机命名........................................................................................................................ 77
9.2 在 php 中安装。ini 文件.................................................................................................... 78
9.3 运行时安装旧版本的 PHP(过时的)................................................. 78
2019 年 2 月
ionCube Encoder 10.2 用户指南
7
1
介绍
介绍
ionCube PHP Encoder 是一个强大的高性能解决方案,用于编码和授权 PHP 脚本,以及加密任
何类型的文件。
编码和加密的总解决方案
编码器使用模糊的字节码保护和定制的执行引擎来保护 PHP /HTML 脚本。此外,如果需要,
任何其他项目文件都可以自动加密,这对于保护模板或 XML 文档等文件非常理想。这与用于
读取和写入加密文件的加载器 API 函数相辅相成。对于大多数现有的模板引擎来说,添加读取
加密模板的能力只需要做一点小小的改变。
字节码编译和混淆
编码器实现脚本保护,首先编译,然后优化 PHP 脚本到高效的二进制数据。编译过程用虚拟机
指令替换源代码,然后应用若干层的编码和转换来生成最终的与平台无关的文件。可选的类、
方法、函数名和局部变量混淆增加了额外的保护,并在编译和运行时应用进一步的内部混淆。
这种方法的优点是,文件永远不会被还原到 PHP 源代码中,编译后的代码会被更改并隐藏在开
放源码的 PHP 引擎中,而且由于在编码时进行解析和编译,运行时的性能与源代码相当。其他
编码器特性还提供了更多的好处,比如可以在文件开头轻松添加防篡改的纯文本,这对于包含
自定义版权或许可详细信息非常理想。
许可文件创建
您可以使用 Pro 和 Cerberus 编码器为您的项目创建许可文件,这些编码器可以将您的项目锁定
到特定的机器上。许可文件也可以有一个可选的时间期限,并且可以存储任意的键/值数据,这
些数据可以在运行时被被许可的应用程序读取。
ionCube 装载机
ionCube Loader 处理已编码的 PHP 文件的执行、对非 PHP 文件进行加密或解密、验证许可证等
等。这个组件很容易安装到 php 中。一个名为 Loader 向导的免费工具可以帮助终端用户安装。
装载机可用于各种常见和不太常见的平台,还有一种服务可用于在标准范围之外的平台上生产
装载机。
Windows 和 OS X GUI
对于 Windows 和 OS X 用户,强大的 GUI 使项目设置变得简单。除了编码特性外,与 Explorer
的集成还增加了可用性特性,如动态图标,以便一眼就能区分编码和非编码的文件,以及使用
简化的 GUI 快速右击编码。源文件也可以直接从 GUI 在用户喜欢的编辑器中启动,如果编辑器
支持,还可以在特定的行上启动;这对于快速消除语法错误非常有用!在特殊版本 GUI 升级中还
提供了其他特性,比如自动创建归档文件、FTP 和一个独特的动态字段特性,该特性通过动态
创建的自定义接口极大地简化了自定义编码和许可证创建的数据输入。与其他特性一起,GUI
帮助最大化生产力。
2019 年 2 月
ionCube Encoder 10.2 用户指南
8