wdcp管理系统源代码加密解密方法,Linux服务器管理系统!
在修改修复WDCP管理系统时,打开文件全是加密的,那么就需要我们解密PHP文件了!
下面是从网上找到一解密加密代码的方法,都是单个文件加密解密。
觉得麻烦自己就修改了一下方法,使方法能一次直接解密整个文件夹!
以下是修改后的两个方法,自己修改自己测试确认没问题了哦:<?php
// +------------------------------------------------------------------------------
// | WDCP服务器管理系统源代码 - 加密解密 Author:xiaochuan 28126649@qq.com
// +------------------------------------------------------------------------------
header("Content-Type:text/html;charset=utf-8");
##################################################################################
/**
* WDCP服务器管理系统源代码 解密方法(整个目录一次性解密)
* @access public
* @param
* @return
*/
function wdcp_decode($filename) {
if (!file_exists($filename)) exit('文件名不存在');
$data = unpack('C*', substr(file_get_contents($filename), 9));
$nine_bytes = '09574154574443504D';
$str_nice_bytes = pack('H*', $nine_bytes);
if(strncmp(file_get_contents($filename), $str_nice_bytes, 9) != 0){
echo '【文件】'. $filename. ',不是加密文件,不需要解密!
';
return file_get_contents($filename);
}
$key = array(0xB8, 0x35, 0x6, 0x2, 0x88, 0x1, 0x5B, 0x7, 0x44, 0x0);
$j = count($data);
foreach($data as $k => &$v) {
$v = $key [ 2 * ($j % 5) ] ^ ~$v;
$v &= 0xFF;
$v = pack('C*', $v);
-- $j;
}
return gzuncompress(join('', $data));
}
function Traversal_Files($path = '.'){
if (!is_dir($path)) exit('参数不是目录');
if ($current_dir = opendir($path)) {
while (false !== ($file = readdir($current_dir))) {
$sub_dir = $path . DIRECTORY_SEPARATOR . $file;
if ($file == '.' || $file == '..') {
continue;
}else if (is_dir($sub_dir)) {
Traversal_Files($sub_dir);
}else{
$file_ext = substr($file, strrpos($file,".")+1);
if ($file_ext == 'php' || $file_ext == 'PHP') {
file_put_contents($sub_dir . '_decode', wdcp_decode($sub_dir));
unlink($sub_dir);
rename($sub_dir . '_decode', $sub_dir);
}
}
}
}
closedir($current_dir);
}
##################################################################################
/**
* WDCP服务器管理系统源代码 还原加密方法
* @access public
* @param
* @return
*/
function wdcp_encode($filename){
$data = file_get_contents($filename);
$nine_bytes = '09574154574443504D';
$str_nice_bytes = pack('H*', $nine_bytes);
if(strncmp($data, $str_nice_bytes, 9) == 0) exit('【文件】'. $filename. ':已经是加密文件
');
$gz_data = gzcompress($data);
$length = strlen($gz_data);
$array_gz_data = unpack('C*', $gz_data);
$secret = array(0xB8, 0x35, 0x6, 0x2, 0x88, 0x1, 0x5B, 0x7, 0x44, 0x0);
foreach ($array_gz_data as $key => &$v) {
$v = $secret [ 2 * ($length % 5) ] ^ ~$v;
$v &=0xff;
$v = pack('C*', $v);
--$length;
}
$result = join('',$array_gz_data);
file_put_contents('encode_' . $filename ,$str_nice_bytes.$result);
}
##################################################################################
//Traversal_Files("F:/WWW/demo/wdcp-demo/wdcp/"); //传入目录解密
//wdcp_encode('en.php'); //传入文件加密
?>
浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!
郑重声明:
1、本站源码仅供个人学习研究和交流使用,请于下载后二十四小时内删除
2、本站大多资源来源于互联网、用户分享,仅供学习交流使用,本站不提供任何技术支持
3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意