인생에 뜻을 세우는데 있어 늦은 때라곤 없다

WEB/PHP&ASP

php_screw를 이용한 php 소스 암호화 하기

projin 2016. 7. 27. 10:55

PHP 소스를 암호화 하는 경우는 mysql 접속 계정이 들어있는 파일이나 ftp 접속 계정, 계정 생성 암호화 방식, DB테이블 구조 등 여러가지 이유에서 소스를 아무도 열어볼 수 없게 하고 싶을 때 입니다.

일반적으로 소스 파일을 열어보면 누구나 쉽게 내용을 볼 수 가 있죠. 이것을 바이너리 파일로 변환하여 알아볼 수 없게 만듭니다.

그러나 파일자체로서는 동작을 합니다.

(중요) 소스를 암호화 하면 내용을 복호화 하지 못하므로, 개발자는 암호화되기전의 원본 소스 파일을 별도로 보관해야 합니다.

그럼 사용방법을 알아보도록 하겠습니다.

 

1. 다운로드

# cd /usr/local/src
# wget wget –no-check-certificate http://sourceforge.net/projects/php-screw/files/php-screw/1.5/php_screw-1.5.tar.gz

 

2. 설치

# cd php_screw-1.5
# /usr/local/php/bin/phpize
# ./configure –with-php-config=/usr/local/php/bin/php-config
# make

make 명령에서 에러날 경우

/usr/local/src/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’:

/usr/local/src/php_screw-1.5/php_screw.c:78: error: too few arguments to function ‘org_compile_file’

/usr/local/src/php_screw-1.5/php_screw.c:84: error: too few arguments to function ‘org_compile_file’

/usr/local/src/php_screw-1.5/php_screw.c:93: error: too few arguments to function ‘org_compile_file’

make: *** [php_screw.lo] 오류 1

php_screw.c 파일의 78,84,93 라인을 수정해줍니다.

org_compile_file(file_handle, type);                       // 수정 전

org_compile_file(file_handle, type TSRMLS_CC);    // 수정 후

그리고 make clean, 다시 make 를 진행합니다.

# make clean
# make 
# make install
# cp -arp /usr/local/php/lib/php/extensions/no-debug-zts-20060613/php_screw.so /usr/local/php/lib/

 

3. 설정 

# vi /usr/local/apache/conf/php.ini

extension_dir = “/usr/local/php/lib”

extension = “php_screw.so”

apache 를 재시작하여 적용합니다.

# /usr/local/apache/bin/apachectl restar

 

4. 명령어 복사

# cd tools
# make
# cp -arp screw /usr/bin/

 

5. 사용 방법

이제 PHP 소스 파일을 암호화 할 수 있습니다.

적용 방식은 아래와 같습니다.

예) screw phpinfo.php

결과) phpinfo.php 는 암호화 처리되며, 원본파일은 phpinfo.php.screw 로 남게 됩니다.

LIST