php_screw安裝,使用


安裝步驟:
1. 下載源碼:
wget http://nchc.dl.sourceforge.net/project/php-screw/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
root@Server:~/php_screw-1.5# vim php_screw.h
#define PM9SCREW “\tPM9SCREW\t”
#define PM9SCREW_LEN 10
#define PM9SCREW “\tLAURENCE\t”
#define PM9SCREW_LEN 9

每個加密的文件頭部都一個很明顯的字符串PM9SCREW, 這樣很容易被人猜到是用screw加密的.

   這個問題的解決需要在安裝的第一步就開始. 該標識串在源碼的php_screw.h中. 在編譯之前, 可以更改這個字符串, 例如,更改為PeterHu, 相應的下面的長度就不再是10了, 而是\tPeterHu\t,一共7個了.

#define PM9SCREW        "\tPM9SCREW\t"
#define PM9SCREW_LEN 10

 

5. php_screw.h文件,如果不改這個文件,你加密的文件內容開頭就會有 PM9SCREW ,你復制到google搜索下就知道是用screw模塊加密的,雖然目前網上沒發現解密算法,但以后就不一定,這么做就是為了隱藏加密算法,可以讓別人不 知道你是用的什么算法加的密。改成COOL后10也要改成6.因為LAURENCE后字符長度是9發字符,如果你不對應加密后解密解析不了。
my_screw.h
root@Server:~/php_screw-1.5# 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位數,大了就會解密解析有問題。

6. phpize
#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

7. 配置
./configure
如果php安裝在非標准目錄,需要查看在phpize目錄下是否有php-config文件,然后執行該目錄如下
./configure –with-php-config=/full/path/to/php-config

8. 安裝
make
make install

這個時候有時會出現一個問題:
‘zend_compiler_globals’ 沒有名為 ‘extended_info’ 的成員make: *** [php_screw.lo] 錯誤 1
解決方法:
需要修改php_screw.c (有兩個地方需要調整)
把CG(extended_info) = 1;
修改為:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

9. php配置
在php.ini文件里面添加擴展
vim /usr/local/php/etc/php.ini
extension=php_screw.so
重啟apache,查看phpinfo()里面應該有php_screw的相關信息

 
10、編譯加密工具
    cd tools
    make
11、 將 tools 目錄下加密用的工具 screw 拷貝到適當目錄
     cp screw /usr/bin/
 
在根目錄下創建hello.php 
<?echo 'hello';?>
php hello.php
輸出:hello
screw hello.php
輸出:Success Crypting(hello.php),說明加密成功,目錄下會多出一個文件hello.php.screw,現在的hello.php已經是加密過的了,而多出的則是源文件的備份.
cat hello.php顯示亂碼.
php hello.php 輸出hello.腳本方式解析加密文件成功了.

 

PS:編譯過程中碰見的幾個問題如下(解決方法)

1。 /root/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’:

解決方法:

需要修改php_screw.c

把第78,84,93行的org_compile_file(file_handle, type);
修改為:
org_compile_file(file_handle, type TSRMLS_CC);

然后再make就成功了。

2. /opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:124: 錯誤:‘zend_compiler_globals’ 沒有名為 ‘extended_info’ 的成員/opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:133: 錯誤:‘zend_compiler_globals’ 沒有名為 ‘extended_info’ 的成員make: *** [php_screw.lo] 錯誤 1

解決方法:
需要修改php_screw.c

把CG(extended_info) = 1;
修改為:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

 

php_screw如何對當前目錄下,對目錄下包含的文件,以及包含目錄下的文件進行整體加密

find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件

find ./ -name "*.screw" -print|xargs -n1 rm //刪除所有的.php源文件的備份文件

命令都實驗過成功的.........應該沒什么再補充的咯.....

轉自:https://blog.csdn.net/songtianyang01/article/details/36184375  

本人實操成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM