教你如何解密 “ PHP 神盾解密工具 ”


Posted in PHP onJune 20, 2014

其实对神盾解密并没有那么感兴趣,只是看到了作者把工具又加密了,感觉不爽。研究了一下,其实解密没那么复杂。

利用php_apd扩展很轻松地就这把这搞定了。只有四句代码。

<?php
rename_function('gzuncompress','new_gzuncompress');
override_function('gzuncompress', '$arg', 'print(new_gzuncompress($arg)); return new_gzuncompress($arg);');
 
require_once 'decryption.php';
decryption('decryption.php');

该工具的核心代码:decryption.php

<?php
function decryption($fileName) {
  /**
   * 解码函数
   * @param string $str 待解码字符串
   * @param string $flg 是否解析后解码
   * @return string   已解码字符串
   */
  function decode($str, $flg = '') {
    if($flg === '') {
      $ret = $str;
    } else {
      $ret = 'ۯ'; $i = 0; $l = strlen($str);
      while($i++ < $l) {
        $c = ord($str[$i-1]);
        $ret .= $c<245 ? ( $c>136 ? chr($c/2) : $str[$i-1] ) : "";
      }
    }
    return base64_decode($ret);
  }
   
  $err = '解码遇到错误,请联系教主处理该文件!';
  $str = file_get_contents($fileName);
  $path = pathinfo($fileName);
  $dirname = $path['dirname']; // 文件所在目录
  $baseName = $path['filename']; // 文件名
   
   
  if (preg_match('|IN_DECODE_(\w{32})|s', $str, $arr)) {
    // 防止解密自己,其实方法都已经告诉你了,自己动手解码才快乐
    $arr[1] === '761b5f52db6dff7ce91344e99dcedab7' && die("err: [-1] - 请勿试图用本工具解密本工具!");
  } else {
    die("err: [-1] - 没有发现神盾特征,你确定这是神盾加密?");
  }
   
  // 匹配代码主题部分
  // '';@\$[\x00-\xff]+\(\\'([\x00-\xff]+?)\\'\.\(
  preg_match('|\'\';@\$[\x00-\xff]+\(\\\\\'([\x00-\xff]+?)\\\\\'\.\(|s', $str, $arr) || die("err: [0] - ".$err);
  $code = $arr[1];
 
  // 匹配中间加密部分
  preg_match('|\(\'([\x00-\xff]+)\',\'|s', $code, $arr) || die("err: [1] - ".$err);
  $key = base64_decode(decode($arr[1], "decode"));
 
  $code = preg_replace('|\'\.[\x00-\xff]+\'\)\)\.\'|s', $key, $code);
 
  // 匹配尾部被加密代码
  preg_match('|=\'(x[\x00-\xff]+)\'\)\);|s', $str, $arr) || die("err: [2] - ".$err);
  $core = $arr[1];
 
  // 匹配验证key
  preg_match('|[\w+/=]{59}=|s', $arr[1], $arr) || die("err: [3] - ".$err);
  $key = $arr[0];
 
  $core = str_replace($key, '', $core); // 去除key
  $suffix = gzuncompress($core); // 得到 base64 的末尾部分
 
  // 解码
  $code = gzuncompress(base64_decode($code . $suffix));
 
  // 匹配干净的代码
  if (preg_match('|<!--<\?php endif;\?>(<\?php[\r\n]{1,2}[\x00-\xff]+\?>)<\?php \$GLOBALS\[|s', $code, $arr)) {
    $code = $arr[1];
  }
 
  // 写到文件
  $source = $dirname . DIRECTORY_SEPARATOR . $baseName . "_source.php";
  file_put_contents($source, $code);
  die("解密成功,已经保存为: " . $source);
}
PHP 相关文章推荐
一个目录遍历函数
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
PHP DataGrid 实现代码
Aug 12 PHP
PHP 远程关机实现代码
Nov 10 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php中opendir函数用法实例
Nov 15 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
ThinkPHP3.1查询语言详解
Jun 19 #PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 #PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 #PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 #PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 #PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 #PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 #PHP
You might like
2019十大人气国漫
2020/03/13 国漫
深入了解php4(1)--回到未来
2006/10/09 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
浅谈Python __init__.py的作用
2020/10/28 Python
美国健康和保健平台:healtop
2020/07/02 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
节约电力资源的建议书
2014/03/12 职场文书
租房合同协议书
2014/04/09 职场文书
运动会班级口号
2014/06/09 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
初婚未育证明样本
2014/10/24 职场文书
2014年质量工作总结
2014/11/22 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书