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. ',不是加密文件,不需要解密!<br>'; 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. ':已经是加密文件<br>'); $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'); //传入文件加密 ?>
转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/77.html
1、本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,下载后请24小时内删除。
2、本站所有内容均不能保证其完整性,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用
3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意