본문 바로가기

리눅스

PHP Screw(screwim) 확장 모듈 설치

728x90

PHP Screw(screwim) 확장 모듈 설치

테스트 환경

$ 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-dev

Screw(screwim) 확장 모듈 설치

  • 소스 코드 다운로드
cd /usr/local/src/
git clone https://github.com/OOPS-ORG-PHP/mod_screwim.git
cd 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_MOD
  • 컴파일
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 install
  • 확장 모듈 설정
echo "screwim.enable = 1" | sudo tee /etc/php/8.1/mods-available/screwim.ini
echo "extension=screwim.so" | sudo tee -a /etc/php/8.1/mods-available/screwim.ini
sudo ln -s /etc/php/8.1/mods-available/screwim.ini /etc/php/8.1/fpm/conf.d/91-screwim.ini
sudo ln -s /etc/php/8.1/mods-available/screwim.ini /etc/php/8.1/cli/conf.d/91-screwim.ini
728x90

또는

echo "extension=screwim.so" | sudo tee /etc/php/$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')/mods-available/screwim.ini
sudo phpenmod screwim
  • 확장 모듈 확인
php -m | grep screwim
$ php -m | grep screwim
screwim

명령행 암화화 도구(screwim 명령어 설치하는 방법)

cd tools
./autogen.sh
./configure
sudo 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 file

screwim 명령어를 사용하여 파일 암호화하는 방법

  • 암호화할 파일 생성
echo "AAA3" > zz.txt
$ cat zz.txta
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

 

728x90