php 파일 복호화
PHP의 모든 암호화는 eval을 변경하여 종료한 다음 콘솔(또는 DOS에서)을 실행하여 eval 문의 해독된 코드를 확인합니다. 평가문.
예를 들어 프로그램에서 첫 번째 평가를 종료로 바꾼 후 실행 출력 코드는 다음과 같습니다.
$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18} .$ OOO000000{5}.$OOO000000{19}; if(!0)$O000O0O00=$OOOO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{ 5} .$OOO000000{9}.$OOO000000{16};$OOOO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O ($ O000O0O00, 1253); 7=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /'))) eval($OO00O00O0);
교체된 내용은 다음과 같습니다. 다음:
lt;?php // 이 파일은 저작권법에 의해 보호되며 라이센스에 따라 제공됩니다. Copyright( C) 2009 www.i7a.cn, All Rights Reserved.
$ OOO0O0O00=__FILE__;$OOO000000=urldecode('74683673626568716c6134636f5f73616466706e72');$OO00O0000=9504;$OOO0000 O0=$OOO000000{4}.$ OOO000000{9} .$OOO000000{3}.$OOO000000{5};$OOO0000O0. =$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$ OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{ 7}.$OOO000000{5}; $O0OO0000=$OOO000000{17}.$OOO000000{12 } .$OOO000000{18}.$OOO000000{5}.$OOO000000{19}; (!0)$O000O0O00=$OOOO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{ 20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16} ;$OOOO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO0
00000{20};$OO0OO000O($O000O0O00,1253);$OO0000O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,380)), gFKxGq0yEYZHJcmzvIP1oTk87=','ABCDEFGHIJ KLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /')));종료 ($OO00O00O0) ; return;?gt;
위는 PHP 복호화의 원칙인데, 여기서는 원본 파일이 소멸되기 때문에 자동으로 복호화할 수 없는 변수인 echo $OO0OO00O0 등을 발견했습니다. 현재 명령문이 실제로 파일 끝의 내용을 읽고 이를 대체한 다음 다시 실행한다는 것을 알 수 있습니다. 이제 원본 파일의 380바이트 뒤의 적절한 위치에 내부의 380을 조정해야 합니다.