Base64+gzinflate 圧縮エンコード (暗号化) ファイルは通常、ヘッダーとして <? eval(gzinflate(base64_decode()) を持つ PHP ファイルです。エンコード コードとデコード コードは記事に記載されています。
コード:
<?php
関数 encode_file_contents($filename) {
$type=strto lower(substr(strrchr($filename,'.'),1));
if('php'==$type && is_file($filename) && is_writable($filename)){// PHP ファイルで書き込み可能な場合は、圧縮してエンコードします
$contents = file_get_contents($filename); // ファイルがエンコードされているかどうかを判断します。
$pos = strpos($contents,'/*Protected by 草名http://www.crazyi.cnCryptation*/' );
if(false === $pos || $pos>100){ // PHP ファイルからコメントと空白を削除して、ファイル サイズを削減します
$contents = php_strip_whitespace($filename);
//PHP ヘッダーとトレーラーの識別子を削除します
$headerPos = strpos($contents,'<?php');
$footerPos = strrpos($contents,'?>');
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos);
$encode =base64_encode(gzdeflate($contents));//エンコード開始
$encode = '<?php'." /*草名で保護されていますhttp://www.crazyi.cnCryptation*/n eval(gzinflate(base64_decode(".$encode.")));n /*Reverseエンジニアリングは違法であり、厳しく禁止されています - (C)草名Cryptation 2008*/ n?>";
return file_put_contents($filename,$encode);
}
}
false を返します。
}
//関数を呼び出す
$filename='g:My DocumentsDesktoptest.php';
encode_file_contents($filename);
?>
<?php
関数 encode_file_contents($filename) {
$type=strto lower(substr(strrchr($filename,'.'),1));
if('php'==$type && is_file($filename) && is_writable($filename)){// PHP ファイルで書き込み可能な場合は、圧縮してエンコードします
$contents = file_get_contents($filename); // ファイルがエンコードされているかどうかを判断します。
$pos = strpos($contents,'/*Protected by 草名http://www.crazyi.cnCryptation*/' );
if(false === $pos || $pos>100){ // PHP ファイルからコメントと空白を削除して、ファイル サイズを削減します
$contents = php_strip_whitespace($filename);
//PHP ヘッダーとトレーラーの識別子を削除します
$headerPos = strpos($contents,'<?php');
$footerPos = strrpos($contents,'?>');
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos);
$encode =base64_encode(gzdeflate($contents));//エンコード開始
$encode = '<?php'." /*草名で保護されていますhttp://www.crazyi.cnCryptation*/n eval(gzinflate(base64_decode(".$encode.")));n /*Reverseエンジニアリングは違法であり、厳しく禁止されています - (C)草名Cryptation 2008*/ n?>";
return file_put_contents($filename,$encode);
}
}
false を返します。
}
//関数を呼び出す
$filename='g:My DocumentsDesktoptest.php';
encode_file_contents($filename);
?>
圧縮デコード (復号化) コード:
[このコードをコピー]コード:
<?php
$Code = 'ここに復号化するコードを入力します' // Base64 エンコード
$File = 'test.php';//デコード後に保存されたファイル
$Temp = Base64_decode($Code);
$temp = gzinflate($Temp);
$FP = fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo "復号化に成功しました!";
?>