当前位置:网站首页>简单解决phpjm加密问题 免费phpjm解密工具
简单解决phpjm加密问题 免费phpjm解密工具
2022-07-06 09:08:00 【办公模板库 素材蛙】
你们可能看到了最近发了几个基于帝国CMS开发的模板,都是些做了SEO优化处理的模板,最近又买了一个,但是在扫描后门的时候发现很多文件加密了,加密方式是phpjm加密
查看更多关于 phpjm加密 的文章,使用的时候是没问题的,但是为了查看是否有后门还是解密看看。
在网上搜了下,发现大部分phpjm解密 查看更多关于 phpjm解密 的文章的工具都是收费的,不过也不贵,但是想着以前也经常看到这种方式的加密文件,要不研究下有没有一劳永逸的解决phpjm加密方式的办法?于是在百度找到了这个免费phpjm解密 查看更多关于 phpjm解密 的文章代码。
使用方法就是通过浏览器运行此解密文件,然后就会会生成一个解密的php文件。
< !--?php $file = 'phpjm.php'; //要解密的文件名 $fp = fopen($file, 'r'); $str = fread($fp, filesize($file)); fclose($fp); copy($file, '0_'.$file); $n = 1; while($n < 10){ $code = strdecode($str); if($n == 1){ $code = str_replace("__FILE__", "'0_$file'", $code); } $replace = '$decode'.$n.'=trim'; if(strpos($code, 'eval(') > 0){ $code = str_replace('eval(', $replace.'(', $code); }else{ preg_match("/@$(.*)($(.*),(.*)(/isU", $code, $res); $code = str_replace($res[3], "'$replace", $code); } $code = preg_replace('/$(.*)=false;(.*?)();/', '', $code); //上一版本 $code = preg_replace('/||@$(.*?)();/', '|| print("ok");', $code); $code = destr($code); $tmp_file = 'detmp'.$n.'.php'; file_put_contents($tmp_file, $code); include($tmp_file); $val = 'decode'.$n; $str = $$val; unlink($tmp_file); if(strpos($str, ';?-->') === 0){
$decode = $str;
break;
}
$str = "< !--?phprn". $str; $n++; } $decode = preg_replace("/^(.*)exit('Access Denied'); /", "<?phprn", $decode); $del = strrchr($decode, 'unset'); $decode = str_replace($del, "rn?-->", $decode);
file_put_contents($file.'.de.php' ,$decode);
unlink('0_'.$file);
echo 'done';
function val_replace($code, $val, $deval){
$code = str_replace('$'.$val.',', '$'.$deval.',', $code);
$code = str_replace('$'.$val.';', '$'.$deval.';', $code);
$code = str_replace('$'.$val.'=', '$'.$deval.'=', $code);
$code = str_replace('$'.$val.'(', '$'.$deval.'(', $code);
$code = str_replace('$'.$val.')', '$'.$deval.')', $code);
$code = str_replace('$'.$val.'.', '$'.$deval.'.', $code);
$code = str_replace('$'.$val.'/', '$'.$deval.'/', $code);
$code = str_replace('$'.$val.'>', '$'.$deval.'>', $code);
$code = str_replace('$'.$val.'<', '$'.$deval.'<', $code);
$code = str_replace('$'.$val.'^', '$'.$deval.'^', $code);
$code = str_replace('$'.$val.'||', '$'.$deval.'||', $code);
$code = str_replace('($'.$val.' ', '($'.$deval.' ', $code);
return $code;
}
function fmt_code($code){
global $vals,$funs;
preg_match_all("/$[0-9a-zA-Z[]']+(,|;)/iesU", $code, $res);
foreach($res[0] as $v){
$val = str_replace(array('$',',',';'), '', $v);
$deval = destr($val, 1);
$vals[$val] = $deval;
$code = val_replace($code, $val, $deval);
}
preg_match_all("/$[0-9a-zA-Z[]']+=/iesU", $code, $res);
foreach($res[0] as $v){
$val = str_replace(array('$','='), '', $v);
$deval = destr($val, 1);
$vals[$val] = $deval;
$code = val_replace($code, $val, $deval);
}
preg_match_all("/functions[0-9a-zA-Z[]]+(/iesU", $code, $res);
foreach($res[0] as $v){
$val = str_replace(array('function ','('), '', $v);
$deval = destr($val, 1);
$funs[$val] = $deval;
$code = str_replace('function '.$val.'(', 'function '.$deval.'(', $code);
$code = str_replace('='.$val.'(', '='.$deval.'(', $code);
$code = str_replace('return '.$val.'(', 'return '.$deval.'(', $code);
}
return $code;
}
function strdecode($str){
$len = strlen($str);
$newstr = '';
for($i=0; $i<$len; $i++){ $n = ord($str[$i]); $newstr .= decode($n); } return $newstr; } function decode($dec){ if(($dec > 126 || $dec<32) && $dec<>13 && $dec<>10){
return '['.$dec.']';
}else{
return chr($dec);
}
}
function destr($str, $val=0){
$k = 0;
$num = '';
$n = strlen($str);
$code = '';
for($i=0; $i<$n; $i++){ if($str[$i] == '[' && ($str[$i+1]==1 || $str[$i+1]==2)){ $k = 1; }elseif($str[$i] == ']' && $k==1){ $num = intval($num); if($val==1){ $num = 97 + fmod($num, 25); } $code .= chr($num); $k = 0; $num = null; }else{ if($k == 1){ $num .= $str[$i]; }else{ $code .= $str[$i]; } } } return $code; } ?>
边栏推荐
- Popularization of security knowledge - twelve moves to protect mobile phones from network attacks
- 大学C语言入门到底怎么学才可以走捷径
- Control the operation of the test module through the panel in canoe (Advanced)
- Une grande vague d'attaques à la source ouverte
- 四川云教和双师模式
- vscode 常用的指令
- 51单片机进修的一些感悟
- 机械工程师和电气工程师方向哪个前景比较好?
- C杂讲 双向循环链表
- 018. Valid palindromes
猜你喜欢
Control the operation of the test module through the panel in canoe (primary)
一大波开源小抄来袭
Oom happened. Do you know the reason and how to solve it?
The replay block of canoe still needs to be combined with CAPL script to make it clear
CAPL 脚本对.ini 配置文件的高阶操作
Counter attack of noodles: redis asked 52 questions in a series, with detailed pictures and pictures. Now the interview is stable
Hard core! One configuration center for 8 classes!
C#/. Net phase VI 01C Foundation_ 01: running environment, process of creating new C program, strict case sensitivity, meaning of class library
Carolyn Rosé博士的社交互通演讲记录
Contrôle de l'exécution du module d'essai par panneau dans Canoe (primaire)
随机推荐
A new understanding of RMAN retention policy recovery window
Pointer learning
C杂讲 浅拷贝 与 深拷贝
docker MySQL解决时区问题
068. Find the insertion position -- binary search
六月刷题02——字符串
【深度學習】語義分割-源代碼匯總
Embedded development is much more difficult than MCU? Talk about SCM and embedded development and design experience
MapReduce instance (VIII): Map end join
《ASP.NET Core 6框架揭秘》样章发布[200页/5章]
CANoe仿真功能之自动化序列(Automation Sequences )
Hero League rotation chart manual rotation
在CANoe中通过Panel面板控制Test Module 运行(初级)
CANoe下载地址以及CAN Demo 16的下载与激活,并附录所有CANoe软件版本
MapReduce instance (IX): reduce end join
Download address of canoe, download and activation of can demo 16, and appendix of all canoe software versions
I2C summary (single host and multi host)
Random notes
The 32-year-old fitness coach turned to a programmer and got an offer of 760000 a year. The experience of this older coder caused heated discussion
How does the single chip microcomputer execute the main function from power on reset?