PHP 8.0 에서 SCREWIM 을 이용한 소스 암호화

리눅스/PHP|2021. 12. 28. 13:53
반응형

DB 접속 정보가 들어있는 파일이 노출될 우려가 있어 많은 개발자들이 암호화 방법을 찾고 있습니다.

검색해보면 상용 프로그램 또는 난독화, 무료 암호화 프로그램이 몇 개 있으나

여기에서는 김정균님이 만드신 screw 개선 버전 screwim 을 소개합니다.

아래 내용은 CentOS 7, PHP 8.0 소스설치 환경에서 테스트 했으며,

페이지 하단 출처의 내용을 요약하였습니다.

 

 

1. 다운로드

 

# cd /usr/local/src
# git clone https://github.com/OOPS-ORG-PHP/mod_screwim.git

mod_screwim.zip
0.22MB

# cd mod_screwim
# /usr/local/php/bin/phpize


2. PHP 확장 모듈 생성하기

 

# ./configure --with-php-config=/usr/local/php/bin/php-config
# make install

php.ini 에 아래 내용 추가
# vi /usr/local/apache/conf/php.ini
extension = screwim.so
screwim.enable = 1

(아파치 재시작 및 적용 확인)
# /usr/local/apache/bin/apachectl restart
# /usr/local/php/bin/php -m |grep screwim

 


3. SCREWIM 설치

 

# cd tools
# ./autogen.sh    // 위에서 모듈을 설치하지 않으면 실행이 안됩니다. 모듈부터 설치하세요.

# ./configure

# make install

 

(설치 확인)
# /usr/local/bin/screwim -v


4. PHP 소스 암호화 하기


# cd /{PHP 소스 디렉토리}
# screwim config.php

 

원본 파일은 백업하고 암호화된 파일은 사용하는 파일명으로 변경합니다.
# mv config.php config.php.ori
# mv config.php.screw config.php

사이트 동작을 확인합니다.

 

* 복호화 불가 처리하실 분은..

   실행 파일이나 설치 소스 파일이 그대로 남겨져 있을 경우 screwim -d 옵션을 통해 복호화가 가능하므로

   실행 파일 및 설치 소스 파일 디렉토리를 삭제 합니다.

   (설치시 암호화, 복호화에 사용되는 랜덤 생성된 KEY STRING 삭제)

    rm -f /usr/local/bin/screwim

    rm -rf /usr/local/src/mod_screwim

 

 

[출처] https://www.php79.com/525

https://github.com/OOPS-ORG-PHP/mod_screwim/

https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=81220

 

 

반응형

댓글()