Keys The following shows the Keys tab of the Project Settings dialog: Dynamic and external keys provide a way of adding extra security to the encoded files. Dynamic keys are expressions that have to be evaluated at runtime before a function or method can be decoded successfully.
External keys are files or string values that are separate from the encoded file and which have to exist for the file to be decoded and run successfully. We recommend that you read the External and Dynamic Keys chapter of the User Guide PDF for full details on how they work. We will cover the basic points of the features below. Dynamic decoding means that functions and methods are only decoded when they are first called in the application, rather than when the encoded file is read. This means that the decoded byte code is only obtained at the last possible moment. Dynamic keys enhance dynamic decoding by requiring an expression to be evaluated before a function is decoded. The result of the expression will be used to decrypt the byte code of the function in the ionCube Loader.
Dynamic keys are expressions that have to be evaluated at runtime before a function or method can be decoded successfully. External keys are files or string. Apr 19, 2016 - ionCube (at least when it was PHP Accelerator) compiled PHP to bytecode prior to encoding. This eliminates the source code entirely, and even if you were able.
Dynamic keys are specified as comments in the original source code of your application and the expression may be a URL, a variable or function. In the comment there should also be the expected value of the expression and that value will be used by the Encoder to encrypt the byte code of the function. External keys are files or string values that are separate from the encoded file.
Those values are essential to decode the file successfully. The location of the keys may be set within the encoded file, within a PHP configuration file (php.ini file) or within a license file. Settings for Dynamic Keys Dynamic and external keys are set within the Keys tab of the current project settings, as shown in the image above. The top part of the Keys section is for the dynamic keys and the lower part is for the external keys. The section for the Dynamic keys consists of the following:.
A panel describing how the dynamic keys should be set within your PHP source code. Functions to which the reflection API in PHP may be applied. Some reflection functions need the function to which they are being applied to be decoded before they will work. However, that may mean that the function would be decoded before it is first called. The default, None, is for no functions to be decoded for the reflection API.
You can also allow All functions to be decoded for the reflection API and you can also supply a file that lists patterns for which functions and methods may have the reflection API applied to them. Those patterns will have one of the following four forms:. myfn where myfn is the name of an ordinary function (not a method) in your code.
MyClass::foo where foo is the name of a method in class MyClass. MyClass::. which means all methods in class MyClass. Lang Translate.
which means all functions and methods in the Lang Translate namespace. A radio button that lets you choose how dynamic decoding errors are presented by the ionCube Loader. The options are Simple, where minimal information is given, Normal (the default) where the information is similar to that of a standard PHP error message, and Backtrace where a backtrace of functions called is given. Note that this option also affects how errors are presented when decoding fails due to an incorrect external key. Detection of Dynamic Keys when Encoding If a dynamic key is detected when encoding that will be output in the Event Log as can be seen in the image above where the function called protectedfn has a dynamic key.
Settings for External Keys The External key settings section is in the bottom part of the Keys tab. That section consists of the following:. A check box that, if ticked, means that an external key will be used.
Settings for the location of the external key. In the settings for the external key, you will need to give the value to be used when encoding and also the location of the external key at runtime. There are three possibilities for the location of the key at runtime:. A file path is located in the encoded file. The contents of the file at that path will be used as the key by the Loader. You will also need to choose the local path for the key when encoding.
A php.ini property that will give either a string or a file path of an external key at runtime. The full name of the property in the ini file will be ioncube.loader.key.propname where propname will be the name that you choose for the property.
If you want the value of the ini property to be a string then you will need to provide that string in the options. If you want the value of the ini property to be a file path then you will need to provide a local file for the key when encoding. A license property can be the key. As the with ini properties, the value can be either a string or a file path. You will need to ensure that the license is generated with a property that has the same value used when encoding.
Here are some examples of how the external keys may be set as php.ini and license file properties:- The image above shows the setting for an external key that will be a php.ini property and where the value is a string. In this case the full name of the ini property at runtime should be ioncube.loader.key.keyprop. The image above shows the setting for an external key that will be a php.ini property and where the value is a full file path. In this case the full name of the ini property at runtime should be ioncube.loader.key.extkey. The file found from the ini property must have the same contents as the file used when encoding. The image above shows the setting for an external key that will be a license property and where the value is a file.
The license must be generated with the same property name, keylicprop, and have a value that is a full path to a file with the same contents as the local file used when encoding.
Using ionCube encoded and secured PHP files requires a file called the ionCube Loader to be installed on the web server and made available to PHP. PHP can use the Loader with one line added to a PHP configuration file (php.ini).
An automated Installer and Wizard are available to help with install, as well as manual instructions. Loaders are for 32 and 64 bit x86 based systems unless otherwise specified. The Windows non-TS Loaders are for use on a Windows system where a phpinfo page shows that PHP is built with thread safety disabled. If you need Loaders for platforms not mentioned please. Note that different distributions of Linux, e.g. CentOS, SuSE, Debian, RedHat etc.
Are all covered by the 32 and 64 bit Linux Loaders. Installing with the Loader Installer or Loader Wizard (recommended) It is recommended to install a Loader using the Loader Installer. The Installer is a Windows application that can deploy a Loader automatically to any supported operating system over FTP or SFTP. If this cannot be used, we also provide a Loader Wizard PHP script that gives guidance on installing manually. Loader Installer: Loader Wizard: To use the Wizard, 1) download and install the script into your web space, then 2) launch the script in your browser.
The Wizard will give guidance on selection and installation of the correct Loader package. Manual Install - Which Download Do I Need? Archives are available for each supported server platform. If you are unsure of the server platform (e.g.
Linux or FreeBSD) and architecture (e.g. X86 or x86-64), your hosting company will be able to tell you. Loader Packages Linux Loaders also include support for vulnerability protection and PHP error reporting via the platform. Loader Downloads API Are you a hoster or package maintainer and would like API access to historical releases? And let us know.
Production Loaders. OS/Platform Packages Version Release Date Linux (32 bits) 10.3.2 2019-01-02 Linux (64 bits) 10.3.2 2019-01-02 Linux Armv7l (e.g. 2019-01-02 10.3.2 Fix for a potential issue with the corruption of included file paths, particularly on Windows. 2018-12-28 10.3.1 Fix for potential issue running code on PHP 7.1 and 7.2.
Enhancement to ionCube 24 support. 2018-12-21 10.3.0 Loaders for PHP 7.3.
Fix for an issue with dynamic properties of classes in PHP 7.1 and 7.2 which are updated using an 'op assign' such as '+='. Improvements, enhancements and support for future ionCube 24 features. All ionCube 24 users are strongly encouraged to update to this version.
2018-11-13 10.3.0-beta Beta ionCube Loaders for PHP 7.3 on Linux and FreeBSD 11. Those can be used with the release candidate (RC) versions of PHP 7.3.0 on Linux and FreeBSD 11. They can run files encoded with the version 10 PHP 7.1 and 7.2 Encoders.
As with PHP 7.3.0 RC versions themselves, these loaders should not be used in a production environment. 2018-11-08 10.2.7 (includes changes for 10.2.6) Fix for potential fault with thread-safe PHP 7 on Windows. Fixes for ionCube24 support if using thread safe PHP on Linux and with code calling moveuploadedfile from PHP 7. 2018-09-28 10.2.5 Fix for an issue with PHP 5.4, 5.5 and 5.6 encoding where a silence operator at the start of an assignment including object instantiation may cause a segfault. Fix for an issue in PHP 7.1 and 7.2 where the values of generator parameters may not be found if a generator is closed and then later opened again. Fix corresponding to that for PHP bug 76534 (2018-07-27 10.2.4 Added FreeBSD 11, both 32 and 64 bit, as new standard platforms. IC24: Fix for a possible crash in PHP 7 when an attempt is made to open a file on a path in the trusted include paths list and the file does not actually exist.
2018-07-18 10.2.3 Fix for possible memory leak with closures in the PHP 7.0-7.2 loaders. Fix for obfuscated versions of built-in functions not being found in thread-safe PHP 7.0-7.2. Fix for possible invalid memory access when a generator is unset or otherwise terminates prematurely in PHP 7.1 and 7.2. Fix for possible segmentation fault when running PHP 5.0-encoded files on 5.4-5.6.
2018-06-22 10.2.2 Fix for a crash that could occur when using cloned objects in PHP versions prior to 7.0. Fix for a crash occurring when using dynamic key functions with arguments for PHP versions prior to 7.0. Fix for a crash that could occur when using the allow-reflection options (not including the allow-reflection-all option). Fix for a crash that could occur for dynamically defined functions (such as defined within if-statements) in PHP 7.0-7.2.
Correction for memory leaks occurring as a result of method calls in the PHP 7.0-7.2 Loaders. 2018-05-03 10.2.1 Fix for a crash that could occur if there was a mismatch between a parent method signature and a child method signature. Improvements to memory consumption. 2018-03-07 10.2.0 Loaders for PHP 7.2 encoding produced by the new 10.2 Encoders. Fix for an issue in the PHP 7.1 and 7.2 Loaders whereby a return type could cause referenced parameters to break.
Fix corresponding to the fix for PHP bug 69676 (2018-01-17 10.1.1 Fix for a fault in the PHP 7.0 Loader that could occur where a function was called with more arguments than in its definition. Changes made corresponding to the fix for PHP bug number 74862 for PHP versions 7.1.13 and PHP 7.2.1. Improved error message when the user is attempting to run a 5.6 or earlier encoded script on PHP 7.1 or later. 2017-12-14 10.1.0 Loaders for PHP 7.2.
Support for bundled encodings, a feature that will be included in a minor update of the version 10 Encoder. Improvements to error messages produced when a 7.1-encoded file is read by a Loader for an earlier version of PHP. Fix for an issue whereby private methods could be wrongly overridden with inheritance and dynamic decoding. IC24: Notices plus strict and deprecated warnings are no longer reported if they are masked by @ or the error reporting level. 2017-11-01 10.0.4 Fix for issue in PHP 5.5 and 5.6 where a crash could occur under certain conditions.
IC24 improvements. 2017-09-26 10.0.3 Fix for issue in PHP 7.1 where getting the default values of parameters can randomly fail. Fix for issue in PHP 7.1 where an array value could be assigned to the next element where the array has 'holes' i.e. Numeric indexes of the array that do not have values. Fix for issue in PHP 7.1 where a call to a stored procedure can lead to an incorrect 'unbuffered queries are active' error. Improvement to the error message produced by the PHP 7.1 Loader when encountering a file not produced by the PHP 7.1 Encoder. IC24: New ic24.sec.initialstate ini option to configure whether security is enabled or not upon cache creation.
IC24: New ic24.sec.initialaction ini option to determine how new and modified files should be treated when about to execute. IC24: New ic24.sec.initialnotify ini option to flag whether a notification should be generated when execution is attempted of a new or modified file. Other IC24 improvements. 2017-09-11 10.0.2 Fix for issue where, with the PHP 7.0 and 7.1 Loaders, reading unencoded files on Windows could crash. Fix for issue with the PHP 7.1 Loader where a crash may occur when running a function to generate a dynamic key. 2017-08-31 10.0.1 Fix for issue where a primary script with an external key that is obtained via a URL will fail. Fix for issue where, if an external key is set in two separate license files with the same property but different values, then decoding will fail.
Fix for issue where setting encoded paths could lead to segmentation faults in some cases on PHP 7.0 and 7.1. 2017-08-02 10.0.0 Loader 10.0.0 released.
These are loaders to run files produced by the forthcoming version 10 ionCube PHP Encoder. Included are loaders for PHP 7.1. Those will only run files produced by the version 10 encoder for PHP 7.1.
2017-05-24 6.1.0 Loader 6.1.0 released. Fix for issue related to use of include file protection combined with a callback file. Fix for issue where setting encoded paths can lead to segmentation faults on PHP 7 in some cases. IC24: Support for the ioncube24 part of the Loader on PHP 7.0 IC24: Switch to a single cache file. IC24: Internal changes to support future features and enhancements. 2017-01-26 6.0.9 Loader 6.0.9 released which fixes an issue where, in PHP 7.0, an 'Unsupported constant expression' error occurs rather than the correct execution of the script.
![Decoder Decoder](/uploads/1/2/5/3/125393018/870940443.jpg)
2016-12-15 6.0.8 Loader 6.0.8 released which fixes an issue where, in PHP 7.0, a dynamic key on a method could wrongly lead to a call from that method to a private method being prevented. 2016-12-02 6.0.7 Fix for three issues. Firstly, for the incorrect registration of certain Loader ini settings. Secondly, for the getFileName reflection API function sometimes producing a crash in the PHP 7 Loader. Lastly, for a build issue with the PHP 5.2 and below loaders. 2016-10-24 6.0.6 Loader 6.0.6 has been released to complement upcoming Encoder release 9.0.4.
The new Encoder and Loader provide a fix for PHP 5.6 encoding where instances of DIR and FILE were not converted properly to the location of the encoded file at runtime. 2016-10-07 6.0.5 Fix for an issue with the PHP 7 Loader where nested encapsulated strings may cause a fault. 2016-09-23 6.0.4 Fix for an issue with the PHP 7 Loader where, if a conditionally defined function was protected by a dynamic key, then the dynamic key may not be found. 2016-09-19 6.0.3 Fix for issue with the PHP 7 Loader if, in the original 5.6 code, a function parameter had the form ($param) i.e. A variable with an extra pair of brackets around it. 2016-09-16 6.0.2 Fix for possible crash with obfuscated functions on PHP 7.
2016-09-15 6.0.1 Support for PHP 7. The new PHP 7 ionCube Loaders will run files produced by the version 9 PHP 5.6 Encoder. 2016-03-22 5.1.2 Fix for potential issue with over 3000 cache entries. 2016-02-07 5.1.1 New feature for realtime reporting of PHP errors and uncaught exceptions to ionCube24. 2016-01-26 5.0.23 Resolve link issue with some Linux setups. 2016-01-20 5.0.22 Added missing dependency on Linux rt library. 2016-01-19 5.0.21 Fix for possible incorrect behaviour when accessing a server from the ionCube24 interface when ionCube24 is fully activated.
Fix for potential issue with large cache sizes. 2016-01-16 5.0.20 Fix for potential issue with obfuscation of unqualified function names used within a namespace.
![Php Ioncube Decoder Php Ioncube Decoder](http://3.bp.blogspot.com/-mwnJs52jIxw/Uvmz_b-_qyI/AAAAAAAAAD8/8_6SgbwpHVg/s1600/ioncubeV8decoder.png)
PDF User Guide now included. Fix for issue with symlinks used within a trusted include path. Enhanced healing when PHP is unstable. Php.ini option to block or allow scripts via stdin. Ability to protect only the domains configured within the ionCube24 interface rather than all domains. 2015-10-19 5.0.19 update to avoid potential unnecessary notification.
2015-9-14 5.0.18 Fix for possible false alert of a new file being blocked with. 2015-9-9 5.0.17 Fix for issue with 64-bit Windows loaders. 2015-8-27 5.0.16 Fix for rare issue preventing interaction with the ionCube24 control panel on some systems.
2015-8-19 5.0.15 Corrected handling for PHP 5.6 magic method, debugInfo. Fix for memory corruption issue for thread-safe PHP when running unencoded files. Improvement in handling of empty arrays in PHP 5.6 with pre-5.6 encoded files.
2015-7-29 5.0.14 Fix for issue with previous release. 2015-7-28 5.0.13 New php.ini option ic24.sec.trustedincludepaths for trusting dynamically created include files (see User Guide for details) plus enhancement for processing pre 5.6 encoded files on PHP 5.6. 2015-7-13 5.0.12 Fix for problem caused by a large number of network aliases on a system. 5.0.11 No release. 2015-6-22 5.0.10 Fix for an undefined symbol occurring with the PHP 5.3 Loaders.
2015-6-19 5.0.9 Fix for issue where if a reference variable was used as a non-referenced lexical variable in a closure then memory corruption would occur. 2015-6-16 5.0.8 Fix for issue calling ioncubeserverdata or ioncubewritefile from a function producing a dynamic key.
Fix for problem sending notifications with some configurations. Internal changes related to future ionCube 24 features. 2015-5-22 5.0.7 Workaround for an issue that prevented the Loader starting when XCache is installed. Fix for possible crash if a corrupt license is processed. 2015-5-18 5.0.6 Fix for notifications not being delivered with PHP 5.6 (Linux only).
2015-5-15 5.0.5 Fix for failure in Windows 64 bit Loader. Fix for Windows Loader not recognising PHP 5.6 encoded files from Encoder 9.0. 2015-5-8 5.0.4 Fix for potentially excessive memory usage. Updating recommended. 2015-5-4 5.0.3 (Linux) Trustpoint is now enabled by default and set to the current time when first initialising ionCube 24 on a server.
2015-5-2 5.0.2 minor update in version 9 support. 5.0.1 No release.
2015-4-27 5.0.0 support for running files produced by the ionCube version 9 PHP Encoder. IBM Power Systems The archives include ionCube Loaders for PHP 5.6 and PHP 7.0 only.
OS/Platform Packages Version Release Date Linux ppc64el 6.0.9 2017-03-13 Legacy Loader Packages Please note: The following packages are no longer being maintained are provided for legacy use. OS/Platform Packages Version Release Date Windows VC6 (32 bits) 4.0.7 2011-2-21 Windows VC6 (Non-TS) (32 bits) 4.0.7 2011-2-21 FreeBSD 4 (32 bits) 4.4.4 2013-10-15 Solaris (sparc 32 bits) 4.0.10 2011-8-16 Copyright 2002-2019 ionCube Ltd. VAT GB-814942816. All rights reserved. IonCube and the ionCube logo are registered trademarks of ionCube Ltd. Prices exclude VAT.
VAT is applied if purchasing from the UK or from the European Union by a non-business customer. The shopping cart will show any VAT due based on your country before the purchase is finalized.