教你如何解密 “ 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 相关文章推荐
初探PHP5
Oct 09 PHP
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
PHP 日常开发小技巧
Sep 23 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
PHP常用正则表达式集锦
Aug 17 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
详解php伪造Referer请求反盗链资源
Jan 24 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
php生成静态页面的简单示例
2014/04/17 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
python基础教程之循环介绍
2014/08/29 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
python中JWT用户认证的实现
2020/05/18 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
个人求职简历的自我评价
2013/10/19 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
班主任工作年限证明
2014/01/12 职场文书
新员工入职感言
2014/02/01 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
oracle数据库去除重复数据
2022/05/20 Oracle