FAQ
This section contains Frequently Asked Questions and answers regarding encoding and encoded files. Additional FAQ and Support can be obtained at www.zend.com.
Q: What is Zend Guard?
Zend Guard enables the protection and mass distribution of commercial PHP applications.
Providing additional protection against reverse engineering and technology license for a robust, Zend Guard provides IT providers the ability to deliver and manage safely, using their PHP applications.
Zend Guard is comprised of two components providing a double layer of protection for PHP applications:
- The Zend Guard encoder: Zend Guard enables you to distribute an unlimited number of PHP applications and create PHP websites without revealing your IP. Zend Guard compiles PHP source code and encodes it as a file via Zend code. End users can then run your encoded using decoding tools and optimization applications Zend Guard Loader .
- Manager Zend Guard license: the license manager Zend Guard enables software publishers to manage the commercial distribution of their PHP applications by generating license keys and files requiring tracking key tracking to be enabled. ISVs can easily indicate licensing models without modifying the source code of their application. Providing their PHP applications licensed Zend allows publishers to greatly expand the potential of their market, customer loyalty and enhance the penetration of the account and to obtain profitability and higher incomes.
Q: How does Zend Guard work?
Saving the code in a closed format Zend Intermediate Code, Zend Guard enables developers to protect the source code of any breach of copyright. It also allows companies to create software solutions and business applications while protecting proprietary PHP expenses and invested their intellectual property.
The license manager gives developers and software vendors can protect their code violations of copyright but also impose limits on the use of the license by creating encrypted files that can only be activated on Bachelor's degree. This program generates unique license based on defined criteria and ensures that the marked files can not be activated without the license.
Applications marked run only if the appropriate license has been found, enabling IT providers use the license to increase their sales.
The license manager can create license files based on different criteria:
- Concurrent users - Use of files is limited to the number of users in real time.
- Evaluation License - Possibility of limited use for evaluation or file for a fixed term license with date of pre-defined expiration.
- Network segment - limited by IP address range use, limiting licenses Geograhical area according to network topology.
- Specific server - limited to specific hardware according to the License Host ID
- Employment and limitations - The license manager gives suppliers the flexibility necessary to implement the terms of a license that will allow them to control the type of access the user has on the product being used.
Q: Can Zend Intermediate Code files be de-coded back into the PHP source file?
Obfuscation like encryption can only be decoded using brut-force techniques. Such techniques typically require vast amounts of time and resources to decode obfuscated strings. Furthermore, the longer the obfuscated string is the less realistic it is to decode these strings as the number of possible combinations increases exponentially. Therefore, it is not feasible that Obfuscated files will not be successfully de-coded.
Q: Will using encoded files (instead of source files) change run-time speed or file size?
There might be some speed gain because the compilation stage is saved on every run of the script, however, speed improvements, if any, are dependent on the nature of the script.
The size of an encoded file might be somewhat smaller or larger than the source file, but this too is dependent on the nature of the script. The factors that tend to improve run-time speed are not necessarily the same as those that tend to decrease file size.
Q: Do my clients need to install anything to run Zend-encoded files?
Yes, they need to install the Zend Guard Loader as part of their PHP setup. The Zend Guard Loader is available as a stand-alone component, and can be downloaded from: http://www.zend.com/en/downloads/.
Q: What Zend Guard Loader and PHP version should I use?
Encoded and obfuscated PHP files can be run by the Zend Guard Loader corresponding to their PHP version, as specified in the table below:
PHP Version |
Zend Guard Loader |
PHP 5.5 |
Zend Guard Loader for PHP 5.5 |
PHP 5.6 |
Zend Guard Loader for PHP 5.6 |
Q: Can I package Zend Optimizer / Zend Guard loader with my application encoded by the Zend Guard?
Yes it is possible. Our revised license allows you to package either one of these decoders with encoded by Zend Guard applications. It is easier and faster for customers to carry your product.
Q: Where can I buy Zend Guard?
Visit our online store for more details.
Q: Can encoded and non-encoded PHP files be used together?
Yes. Encoded and non-encoded PHP files, in most instances, can be used together transparently. The only exception is files which were encoded using the “Work Exclusively with Encoded Files” option. These files will only work with encoded files that were encoded by the same company.
Obfuscated files however, can have problem running together with non-obfuscated scripts, if functions or classes defined in one script are called from another script. Such scripts should be both obfuscated or both non-obfuscated, or classes or functions that are called across the "obfuscation border" should be exported.
To temporarily replace obfuscated script with non-obfuscated one and you still want to call the functions and classes in the script, you can use zend_runtime_obfuscate() function - however this function may impact performance so it is not recommended as a permanent solution.
Q: What if my script is dependent on library file?
Files that are include()’d or require()’d in the script must be present at run time and will not be part of the encoded file. Both the encoded file and the library files should be shipped together. Such files can be either encoded or non-encoded – both file types can be used together transparently.
Note:
If 'Work Exclusively with Encoded Files' is used the library files must also be encoded by the same company.
Keeping certain files as plain text can be useful if you wish to let users customize parts of the application.
However when obfuscating files there may be a problem running non-obfuscated scripts, if functions or classes defined in one script are called from another script. Such scripts should be both obfuscated or both non-obfuscated, or classes or functions that are called across the "obfuscation border" should be exported.
To temporarily replace obfuscated script with non-obfuscated one and you still want to call the functions and classes in the script, you can use zend_runtime_obfuscate() function - however this function may impact performance so it is not recommended as a permanent solution.
Q: My scripts use include_path or auto_prepend. Can I encode them without modification?
Yes. Since each file is encoded separately, all include()’s take place at run-time and therefore, do not interfere with the Zend Guard.
Q: How do I check if a file is encoded?
You can use a PHP script with the API: boolean zend_loader_file_encoded() to check if the file is encoded.
Zend encoded files return = true.
Q: Is it possible to generate licenses for an encoded project on a different machine than the machine the project was encoded with?
Yes, as long as the Guard license is good for both machines, since the license generator would require a license to run.
Q: Is it possible to use two systems one to encode and the other to generate licenses (for the project encoded on the separate machine)?
Yes, if both Host IDs are allowed in the generated license.
Q: The same license manager can it be used to issue a license on scripts encoded by two different versions of Zend Guard or the previous Zend Encoder?
Encoded under license file can only be performed with a license that has been created with the same version of the file Zend Guard.
When a file is encoded by the Zend Guard with support of a license, it is digitally signed with a private key for each single Zend Guard installation. Each license file generated by Zend Guard is also digitally signed, in the same way. When a user wants to run a licensed file, it must use a license file that was generated by the same version of Zend Guard, otherwise the signatures match and by the license file will be considered invalid.
Q: How do I tell my clients to the expiry of their license?
To inform your customers of the expiry of their license (bomb), you must write a script that will send an email to your customer on the day of expiry of the license of the encoded product.
Example script:
<php
$ lic_info zend_loader_file_licensed = ();
? If ($ lic_info ['Expires'] == Date (' dmy '))
{
email (' customer@server.com ',' Your license expires today, $ message );
} I need regular.
?>
Q: When I try to run an encoded file, error messages are displayed. Why?
The most common cause of error messages and failure is incompatibility, either with the PHP version, or with the Zend Intermediate Code file (that is, with the version of the Zend Guard that encoded the file).
Q: Why are certain files are not being encoded?
It could be that your file has the same name as a general pattern in the ignore list. To solve this select the file and in the General settings tab click "Override Project Configuration. This will remove the resource from the list of patterns to ignore. Repeat if other files fall under the same category of the general pattern for example; if the pattern to ignore is 'test*.php' the file 'contest.php' will also be ignored. Alternatively, refine the patterns you want to ignore in the exclude tab.