srcProtector tries to keep as much compatibility in an encoded applications as possible. Despite this PHP language has some options that encrypting software cannot handle properly. These cases are rare and you can probably find them only in old and ugly code, or in special applications that need to build some of their code in runtime..
Most of these issues are caused by execution of code contained in string. Functions eval and extract can cause these problems and it’s better to avoid using them in the code which you want to encrypt.
The analysis engine of srcProtector checks code before encoding itself and warns you if your code contains any of these problematic parts.
Here is the table with description of limitations of encrypting software and tips how to avoid problems or set this programme to handle code properly.
Function/Syntax | Problem description |
---|---|
Eval() function | Encrypting software cannot properly handle content of the string as parameter of eval function. You should put all possible content of the parameter as excluded function/classes/constants from encryption. |
Extract() function | Encrypting software cannot properly handle content of string as parameter of extract function. You should put all possible content of the parameter as excluded variables from the encryption, or turn the variables encryption off. |
new $class_name | $class_name variable contains a string with the name of the class which instance you want to create, but encrypting software cannot handle content of the variable. You should add all possibilities of class name, which can be created in this part of code on a list of class names excluded from encryption. Or you can simply disable class names encryption and let encrypt only the rest. |
$function_name(...) | $function_name variable contains a string with name of function you want to call, but encrypting software cannot handle content of the variable. You should add all possibilities of function name which can be called in this part of code on a list of function names excluded from encryption. Or you can simply disable function names encryption and let encrypt only the rest. |
functions with callable parameter | If parameter is a simple string and not a variable, srcProtector can handle this, but when it is a variable which contains string name of function which is called, it is not possible to encrypt content of variable. You should enter all possible function names that are called here, or turn off the function names encryption. Some of functions using string as callable parameter are: call_user_func, call_user_func_array, forward_static_call, forward_static_call_array, array_walk_recursive, array_walk, usort, uasort, uksort, array_intersect_ukey, array_diff_uassoc, array_diff_ukey, array_uintersect_assoc, array_uintersect_uassoc, array_uintersect, set_error_handler, set_exception_handler. |