반응형
    
    
    
  PHP에서 ScrewIM(screwim) 확장 모듈을 설치하는 방법
ScrewIM 모듈이란?
ScrewIM은 PHP 코드를 암호화하여 소스 코드 유출을 방지하고 불법 복제를 어렵게 만드는 확장 모듈입니다. PHP 애플리케이션의 보안을 강화하는 데 효과적입니다.
테스트 환경
$ lsb_release -d
Description:	Ubuntu 22.04.2 LTS$ php --version
PHP 8.1.2-1ubuntu2.13 (cli) (built: Jun 28 2023 14:01:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.13, Copyright (c), by Zend Technologies필수 패키지 설치
sudo apt-get install -y build-essential autotools-dev zlib1g-devsudo apt-get install -y php-devel php-pearScrew(screwim) 확장 모듈 설치
소스 코드 다운로드
cd /usr/local/src/git clone https://github.com/OOPS-ORG-PHP/mod_screwim.gitcd mod_screwim매직 키(Magic key) 수정
- #define SCREWIM "\tSCREWIM DATA\t"
vim php_screwim.h 34 #ifndef PHP_SCREWIM_H
 35 #define PHP_SCREWIM_H
 36 
 37 #define SCREWIM     "\tSCREWIM DATA\t"
 38 #define SCREWIM_LEN 14
 39 
 40 /* If build PHP module {{{
 41  */
 42 #ifndef NO_PHP_MODScrewim 컴파일 및 설치
컴파일
phpize./configure --with-php-config=/usr/bin/php-config시드 키(Seed Key) 변경
- #define SCREWIM_ENC_DATA 14740, 18008, 5850, 3720, 19113, 5486, 19825, 22165, 4432
vim config.h 58 /* define to support ScrewIm decrypt api */
 59 /* #undef SCREWIM_DECRYPT */
 60 
 61 /* Define to ScrewIm encrypt SEED key */
 62 #define SCREWIM_ENC_DATA 14740, 18008, 5850, 3720, 19113, 5486, 19825, 22165, 4432
 63 
 64 /* Define to ScrewIm Name */
 65 #define SCREWIM_NAME "ScrewIm"설치
sudo make installPHP에 Screwim 확장 모듈 로드
- Screwim 확장 모듈을 로드하도록 설정합니다.
echo "screwim.enable = 1" | sudo tee /etc/php/8.1/mods-available/screwim.iniecho "extension=screwim.so" | sudo tee -a /etc/php/8.1/mods-available/screwim.inisudo ln -s /etc/php/8.1/mods-available/screwim.ini /etc/php/8.1/fpm/conf.d/91-screwim.inisudo ln -s /etc/php/8.1/mods-available/screwim.ini /etc/php/8.1/cli/conf.d/91-screwim.ini또는
echo "extension=screwim.so" | sudo tee /etc/php/$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')/mods-available/screwim.inisudo phpenmod screwim728x90
    
    
    
  Screwim 모듈 설치 확인
- php -m 명령을 사용하여 Screwim이 PHP에 올바르게 설치되었는지 확인할 수 있습니다.
php -m | grep screwim$ php -m | grep screwim
screwim웹 서버 및 PHP-FPM 재시작
웹 서버와 PHP-FPM을 재시작
sudo systemctl restart nginx php-fpm명령행 암화화 도구(screwim 명령어 설치하는 방법)
cd tools./autogen.sh./configuresudo make install
which screwim$ which screwim
/usr/local/bin/screwim
$ screwim -h
screwim 1.0.6 : encode or decode php file
Usage: screwim [OPTION] PHP_FILE
   -c VAL, --convert=VAL convert key byte to digits
   -d,     --decode   decrypt encrypted php script
   -h,     --help     this help messages
   -H VAL, --hlen=VAL length of magic key(SCREWIM_LEN or PM9SCREW_LEN).
                      use -d mode
   -k VAL, --key=VAL  key bytes. use with -d mode
   -v,     --view     print head length and key byte of this filescrewim 명령어를 사용하여 파일 암호화하는 방법
암호화할 파일 생성
echo "AAA3" > zz.txt$ cat zz.txt
AAA3파일 타입 확인
$ file zz.txt
zz.txt: ASCII text파일 암호화
screwim zz.txt$ screwim zz.txt
Success Crypting(zz.txt.screw)암호화된 파일의 타입 확인
$ file zz.txt.screw
zz.txt.screw: data암호화된 파일의 내용 확인
$ cat zz.txt.screw
	SCREWIM DATA	l�qC���p��파일 복호화
screwim --decode zz.txt.screw$ screwim --decode zz.txt.screw
Success Decrypting(zz.txt.screw.discrew)복호화된 파일의 타입 확인
$ file zz.txt.screw.discrew
zz.txt.screw.discrew: ASCII text복호화된 파일 내용 확인
$ cat zz.txt.screw.discrew
AAA3
참고URL
- PHP Screw Improved(ScrewIm) 확장 모듈 : https://github.com/OOPS-ORG-PHP/mod_screwim/blob/master/README.ko.md
git 클론 https://github.com/oops-org-php/mod_crewim.git
728x90
    
    
  반응형
    
    
    
  '리눅스' 카테고리의 다른 글
| grubby 명령어 (0) | 2023.08.07 | 
|---|---|
| Amazon Linux 2023에서 SELinux를 비활성화하는 방법 (0) | 2023.08.07 | 
| 우분투에 PHP-FPM 8.1을 설치하는 방법 (0) | 2023.08.03 | 
| CentOS 7에서 sar의 수집 주기를 변경하는 방법 (0) | 2023.08.03 | 
| Squid의 액세스 로그(access_log)에 사용자 정의 포맷으로 설정하는 방법 (0) | 2023.08.02 | 
 
                  
                 
                  
                 
                  
                