设为首页 收藏本站
查看: 792|回复: 0

[经验分享] php程序如何加密(php_screw)

[复制链接]

尚未签到

发表于 2018-12-21 07:50:16 | 显示全部楼层 |阅读模式
  最新版本是php_screw_1.5
  wget  http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz
  官方站点只能下到源码
  1.从官方站点下载最新版本:
  http://sourceforge.net/project/showfiles.php?group_id=52025
  以下按我下载的php_screw_1.5为例: php_screw_1.5.tar.gz
  2.解压缩:tar zxvf php_screw_1.5.tar.gz
  3.通过README.en文件可以看到该版本软件包要求PHP5.x 环境,并要求zlib支持(通过执行脚本来检查)。如果你使用的是PHP4.X版本,请下载php_screw_1.3版本
  4.进入源码目录
  #cd php_screw_1.5
  php_screw.h
# vim php_screw.h
#define PM9SCREW        “\tPM9SCREW\t”
#define PM9SCREW_LEN     10
  #define PM9SCREW        “\tCOOL\t”
#define PM9SCREW_LEN     6
  php_screw.h文件,如果不改这个文件,你加密的文件内容开头就会有 PM9SCREW ,你复制到google搜索下就知道是用screw模块加密的,虽然目前网上没发现解密算法,但以后就不一定,这么做就是为了隐藏加密算法,可以让别人不知道你是用的什么算法加的密。改成COOL后10也要改成6.因为COOL后字符长度是6发字符,如果你不对应加密后解密解析不了。
my_screw.h
# vim my_screw.h
short pm9screw_mycryptkey[] = {
  11152, 368, 192, 1281, 62
};
  short pm9screw_mycryptkey[] = {
  12852, 968, 192, 1281, 62, 269
};
  自定义加密种子文件,这个可能是该程序的亮点,用你喜欢的文本编辑器打开源码目录下的my_screw.h,修改文件里面的数组文件,可以用数字添加该数组的长度。数组越长,加密越可靠。而且该数组的长度不会影响加密以及你的PHP程序执行的速度.测试发现不要大于5位数,大了就会解密解析有问题。
  #phpize
  Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
  如果你的系统提示没有该命令就需要安装apt-get install php5-dev Centos 估计是yum -y install php5-devel ,如果还是提示上述命令不存在,可能是由于你的php没有安装在标准目录下,请到php安装目录的bin文件夹下寻找,确定是否有该文件。然后回到php_scre_1.5目录下,执行
  #/full/path/to/phpize
  要成功执行phpize,需要有autoconf 和M4软件包。成功执行后,源码文件夹下出现configure文件
  如果没有装错误如下:phpize command not found
  解决:centOS: yum -y install php-devel
  :RHEL :up2date -i php-devel

  执行:
  ./configure
  如果php安装在非标准目录,需要查看在phpize目录下是否有php-config文件,然后执行该目录如下
  ./configure –with-php-config=/full/path/to/php-config
  5.
  #make
  6.正常执行完make后,你可以在源码目录的modules文件夹下找到php_screw.so文件。将该文件copy到phpinfo()里面extension_dir所指的目录下,然后在php.ini文件里面添加
  cp php_screw.so /usr/lib/php5/20060613+lfs
  vim /etc/php5/apache2/php.ini
  extension=php_screw.so
  重启apache,查看phpinfo()里面应该有php_screw的相关信息
  7.转到源码目录下的tools文件夹,执行
  #make
  这里是编译php源码到php加密文件工具:screw
  上面的php_screw.so其实是解析加密后的php源码
  编译screw过程中会用到my_screw.h文件,所以请保证编译php_screw.so和screw时使用的my_screw.h文件一致。
  make完成后会在tools目录下产生screw可执行文件,你可以把它放到任何你喜欢的path目录,如/usr/local/bin,/usr/bin等,确保你键入screw命令时可以找到
  8.切换到你的php源码目录,比如你要加密phpinfo.php文件则执行
  #screw phpinfo.php
  则产生phpinfo.php这个加密文件,原文件copy为phpinfo.php.screw.打开phoinfo.php文件可以看到一堆乱码。通过web访问phpinfo.php以及phpinfo.php.screw则显示同样内容
  9. php_screw_1.5有一个缺点就是screw 加密工具一次只能执行一个文件,如果你切换到你的php源码目录执行
  #screw *
  不会有任何文件被加密,如果要加密上百个文件,那正是灾难
  解决办法如下 ,执行
  find /path/to/php/source  -name “*.php” -print|xargs -n1 screw //加密所有的.php文件
find  /path/to/php/source  -name “*.screw” -print/xargs -n1 rm //删除所有的.php源文件的备份文件
  可以对/path/to/php/source目录下的所有后缀为php的文件加密,包括子目录下的。
  这样就基本做到的对php源码的加密。如果只是个人的小程序源码的加密,我想php_screw是一个不错的选择




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653782-1-1.html 上篇帖子: php扩展中遍历数组 下篇帖子: 解决了flash+php+mysql公告板的(php部分)问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表