教你如何解密 “ 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 相关文章推荐
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
PHP多进程简单实例小结
Nov 09 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
PHPThumb图片处理实例
2014/05/03 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
详解PHP队列的实现
2019/03/14 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
Angular CLI 安装和使用教程
2017/09/13 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
python创造虚拟环境方法总结
2019/03/04 Python
NumPy统计函数的实现方法
2020/01/21 Python
Python-for循环的内部机制
2020/06/12 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
给老婆的保证书范文
2014/04/28 职场文书
大专生找工作自荐书
2014/06/10 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
满月酒邀请函
2015/01/30 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
运动会新闻稿
2015/07/17 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android