我自己写了一个扩展是在编译php源文件之前对其进行解密(事先加密过)
但是我今天用了一款免费的加密软件,它不用安装扩展而是直接加密php文件,不知道其是如何实现的,这款软件可以设置加密选项还可以设置混淆选项,不过有个缺点就是加密后的文件大概是原来文件的2-3倍。
另外代码混淆中的变量替换要是遇到include的时候怎么,比如说a文件用到了b文件中定义的一个类

解决方案 »

  1.   

    这里我不是说扩展,我用的是威盾php加密
    我看了一下它是用base64_encode先加密,然后用eval(base64_decode(...));大体是这样(当然有经过一些混淆处理,没那么直白)
    但是最后有一行乱码没看懂...return;?>(乱码)我把乱码去掉结果就出不来了,不过没语法错误,不晓得为什么?照理说return那么后面的代码不是执行不到了吗?
    还有如果有些文件之间是有关联的那么要如何进行变量名的混淆呢?
    比如a文件引用到了b文件的变量或函数
      

  2.   

    return 只是把执行后需要返回的内容返回,所以return并不影响代码执行完毕。return 不是 break 也不是exit
      

  3.   

    <?php
      echo "1";
      return;
       echo "2";
    ?>
    你试一下。
    它base64_decode出来的代码还不是原始代码,还是混淆的代码,这些代码调用自身文件取出最后一行的乱码,然后再eval...
    如果有些文件之间是有关联的那么要如何进行变量/函数名的混淆呢?
    比如a文件引用到了b文件的变量或函数?
      

  4.   


    简单的混淆类似于去掉注释,替换减少变量的长度等操作,本身并不会影响代码的运行,建议参考一下ZEND代码混淆器的原理
      

  5.   

    http://code.google.com/p/zoeeyguard/可以去找作者定制。
      

  6.   

    http://code.google.com/p/zoeeyguard/
    密钥:
    7U9WeZnOFKrjsxIuL3PGav6iXRpbHTCN/08kdJzlM+SDgEVA4m5BQYfytoc2whq1