欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 "神盾加密" , 其实网上早就有人分析过这个了,而且写成了工具、但是我测试了很多个,没一个能用,所以决定自己从头分析一遍。

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 "神盾加密" , 其实网上早就有人分析过这个了,而且写成了工具、但是我测试了很多个,没一个能用,所以决定自己从头分析一遍。

我们来做第一步解密处理吧。

PS: 这只是我的解密思路,与大家分享一下,也许你有更好的方法还望分享

$str = file_get_contents("1.php");

// 第一步 替换所有变量

// 正则 \$[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*

preg_match_all('|\$[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*|', $str, $params) or die('err 0.');

$params = array_unique($params[0]); // 去重复

$replace = array();

$i = 1;

foreach ($params as $v) {

$replace[] = '$p' . $i;

tolog($v . ' => $p' . $i); // 记录到日志

$i++;

}

$str = str_replace($params, $replace, $str);

// 第二步 替换所有函数名

// 正则 function ([a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)

preg_match_all('|function ([a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)|', $str, $params) or die('err 0.');

$params = array_unique($params[1]); // 去重复

$replace = array();

$i = 1;

foreach ($params as $v) {

$replace[] = 'fun' . $i;

tolog($v . ' => fun' . $i); // 记录到日志

$i++;

}

$str = str_replace($params, $replace, $str);

// 第三步 替换所有不可显示字符

function tohex($m) {

$p = urlencode($m[0]); // 把所有不可见字符都转换为16进制、

$p = str_replace('%', '\x', $p);

$p = str_replace('+', ' ', $p); // urlencode 会吧 空格转换为 +

return $p;

}

$str = preg_replace_callback('|[\x00-\x08\x0e-\x1f\x7f-\xff]|s', "tohex", $str);

// 写到文件

file_put_contents("1_t1.php", $str);

function tolog($str) {

file_put_contents("replace_log.txt", $str . "\n", FILE_APPEND);

}

?>

(其中有一个记录到日志的代码,这个在之后的二次解密时有用。)

执行之后就会得到一个 1_t1.php 文件,打开文件看到类似这样的代码

找个工具格式化一下,我用的 phpstorm 自带了格式化功能,然后代码就清晰很多了。

进一步整理后得到如下代码:

//Start code decryption《===

if (!defined('IN_DECODE_82d1b9a966825e3524eb0ab6e9f21aa7')) {

define('\xA130\x8C', true);

function fun1($str, $flg="") {

if(!$flg) return(base64_decode($str));

$ret = '?';

for($i=0; $i$c = ord($str[$i]);

$ret .= $c<245 ? ( $c>136 ? chr($c/2) : $str[$i] ) : "";

}

return base64_decode($ret);

}

[1] [2]

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php神盾解密,浅谈PHP神盾的解密过程相关推荐

  1. 浅谈密码学的历史发展过程

    浅谈密码学的历史发展过程 前言 这是大三下学期选学的网络信息安全课程的期末作业,这个学期就是疫情爆发期间上网课的那段时期... 摘要 密码对我们都不陌生,在日常生活中也接触过密码,日常生活中所说的密码 ...

  2. 浅谈HTTP协议的作用过程

    浅谈http协议的作用过程 引言 正文 一.HTTP定义 二.HTTP完整的请求过程 域名解析 与服务器建立连接 发送http请求给服务器 服务器返回数据给客户端 客户端与服务器端断开通信 结束语 引 ...

  3. 浅谈 PHP 神盾的解密过程

    前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 "神盾加密" , 牛逼闪闪的样子. 百度下发现神盾是个很古老的东西,最后一次更新是在 2012-10-09 ...

  4. 浅谈PHP神盾的解密过程

    我们来做第一步解密处理吧. PS: 这只是我的解密思路,与大家分享一下,也许你有更好的方法还望分享 <?php $str = file_get_contents("1.php" ...

  5. 浅谈BCrypt密码加解密的使用

    一.编写核心类BCrypt.java // Copyright (c) 2006 Damien Miller <djm@mindrot.org> // // Permission to u ...

  6. 浅谈HTTPS协议的加密过程

    https包括对称加密和非对称加密两个阶段,在客户端和服务端建立连接的时候使用非对称加密,连接建立以后使用的是对称加密. 注:SSL是传输层协议 加密过程: 1,客户端使用https的URL访问Web ...

  7. 浅谈HTTP事务的一个过程

    一个腾讯在职的朋友问道,当我们在浏览器的地址栏输入 www.baidu.com ,然后回车,这一瞬间页面发生了什么?下面以谷歌浏览器一一解释. 一.域名解析 首先Chrome浏览器会解析www.bai ...

  8. 浅谈JSP自定义标签实现过程

    (一) 没有正文的JSP自定义标签实现 (1):定义JSP自定义标签处理类 import java.io.IOException; import java.util.Date; import java ...

  9. 浅谈面向对象编程与面向过程编程

    面向对象编程 面向对象编程是一种更加复合人们思维方式的编程思想.在现实生活中存在许多不同种类的事物,但是这些事物之间存在着某种联系,我们在使用程序模拟实现这些事物时,就可以通过对象的形式对其进行描述. ...

最新文章

  1. 多个前端项目放在一个git好还是_前端工作流
  2. mybatis转义反斜杠_Shell echo命令:输出字符串
  3. 私有云存储 linux,搭建nextcloud私有云存储网盘
  4. JavaScript高级之继承
  5. Kafka笔记--常用指令(新建、删除topic)
  6. SQL 必知必会·笔记3过滤数据
  7. 在XP中轻松获取未使用的局域网IP地址
  8. dlib疲劳检测_基于OpenCV的实时睡意检测系统
  9. Xlim函数--Matplotlib
  10. android+p+华为手机,Android P六大特性曝光支持刘海屏_华为 P20_手机新闻-中关村在线...
  11. 机器学习:混淆矩阵、准确率、错误率、灵敏度、特异度、精准率、召回率、F-Measure、ROC曲线 PR曲线
  12. 高端游戏计算机电源外形规格,游戏新高度!实述高端电源选购技巧
  13. java写一个泡泡龙小游戏
  14. 第四章第六题(圆上的随机点)(Random points on a circle)
  15. 解决——zip压缩包解压后的文件全是乱码问题
  16. MOS管推挽电路设计及特性解析
  17. 大数据与人工智能催生智能时代
  18. 随机池化(Stochastic Pooling)
  19. 云计算概念及Linux系统详解
  20. 一加7t人脸识别_一加7T新机设计图发布 这款手机的外观设计如何

热门文章

  1. oracle数据库问题吗,Oracle数据库常见问题答疑一
  2. Windows下C++通过Hooks记录键盘敲击记录的代码
  3. [开关电源]浪涌电流有点高?我来给你支支招
  4. div标签和span标签区别
  5. 360搜索是废了还是彻底商业化了?
  6. javascript正则检测用户名验证密码邮箱手机号
  7. 立创开源 51编程炫酷心形流水灯
  8. IT人士必去的10个网站 .
  9. 最严“22条措施”打击市场乱象 云南旅游“浴火重生”
  10. 基于MATLAB的说话人识别系统