`

PHP脚本urldecode解密算法

    博客分类:
  • php
 
阅读更多

今天在学习一个ThinkPHP框架——sgcms时,发现一个文件被加密。

<?php
// This file is protected by sgcms & provided under license.
Copyright(C) 2007-2010 www.sgcms.cn, All rights reserved.
 
$OOO0O0O00 = __FILE__ ;
$OOO000000 =urldecode( 'th6sbehqla4co_sadfpnr' );
$OO00O0000 =21496;
$OOO0000O0 = $OOO000000 {4}.
$OOO000000 {9}. $OOO000000 {3}. $OOO000000 {5};
$OOO0000O0 .= $OOO000000 {2}. $OOO000000 {10}. $OOO000000 {13}. $OOO000000 {16};
$OOO0000O0 .= $OOO0000O0 {3}. $OOO000000 {11}. $OOO000000 {12}. $OOO0000O0 {7}. $OOO000000 {5};
$O0O0000O0 = 'OOO0000O0' ;
eval (($ $O0O0000O0 ('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwM...

很明显,是使用了某种PHP代码混淆工具混淆了下,Google网上搜了下,问题解决,给遇到同样问题的朋友一个方便。

 

解密php文件:

<?php
 
$filename = "GlobalAction.class.php" ; //要解密的文件
$lines = file( $filename ); //0,1,2行
 
//第一次base64解密
$content = "" ;
if (preg_match( "/O0O0000O0\('.*'\)/" , $lines [1], $y ))
{
     $content = str_replace ( "O0O0000O0('" , "" , $y [0]);
     $content = str_replace ( "')" , "" , $content );
     $content = base64_decode ( $content );
}
//第一次base64解密后的内容中查找密钥
$decode_key = "" ;
if (preg_match( "/\),'.*',/" , $content , $k ))
{
     $decode_key = str_replace ( "),'" , "" , $k [0]);
     $decode_key = str_replace ( "'," , "" , $decode_key );
}
//查找要截取字符串长度
$str_length = "" ;
if (preg_match( "/,\d*\),/" , $content , $k ))
{
     $str_length = str_replace ( ")," , "" , $k [0]);
     $str_length = str_replace ( "," , "" , $str_length );
}
//截取文件加密后的密文
$Secret = substr ( $lines [2], $str_length );
//echo $Secret;
 
//直接还原密文输出
echo "<?php\n" . base64_decode ( strtr ( $Secret , $decode_key ,
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' )).
"?>" ;
 
?>
分享到:
评论

相关推荐

    PHP 加密解密和解决URL传输问题

    PHP的`urlencode`和`urldecode`函数可以实现URL编码和解码。然而,加密后的数据可能会包含非ASCII字符,这时我们需要先对加密结果进行Base64编码,因为Base64编码后的结果只包含可打印的ASCII字符。PHP的`base64_...

    基于PHP的迅雷、快车、旋风URL加解密工具php版源码.zip

    2. URL编码与解码:在处理URL时,需要了解URL编码(如`urlencode()`和`urldecode()`函数)的概念,以确保URL中的特殊字符被正确处理。在加解密过程中,可能需要对URL进行编码和解码,以保证其在传输过程中的正确性和...

    url_迅雷url转换_php_

    PHP在实现这个过程中,可能用到的函数有`urlencode()`和`urldecode()`进行URL编码和解码,以及可能的自定义加密算法。同时,为了保证安全性,开发者还需要注意对用户输入的URL进行验证和过滤,防止潜在的安全问题,...

    PHP微盾解码

    1. **识别加密模式**:了解所使用的加密算法或混淆技术是至关重要的,这可能需要对PHP代码进行分析或查找相关的解密库。 2. **还原变量**:像代码片段中的 `$OOO0O0O00` 和 `$OOO000000` 这样的变量名,通常是混淆...

    PHP网站安全及加密技术对策.pdf

    PHP语言属于超文本预处理器语言,该技术主要针对文件数据加密算法进行数据计算处理,所构建的是一套不可读的数字代码,它主用于保护数据不被外部人员非法窃取与阅读。因此,PHP语言属于典型的HTML内嵌式语言,在...

    基于PHP的urlShort短网址服务实现程序源码.zip

    1. **URL编码与解码**:如何使用PHP内置的`urlencode()`和`urldecode()`函数进行URL的编码和解码。 2. **哈希算法**:可能使用了哈希算法(如MD5或SHA-1)来将长URL映射为短码,了解其工作原理和实现方式。 3. **...

    易语言PHP验证

    这种验证可能涉及到加密算法、哈希计算等安全措施,确保数据在传输过程中不被篡改。 2. **PHP验证**: 在PHP中,验证通常涉及用户输入的检查,例如登录凭证、表单数据等。这可能包括验证用户名和密码的正确性、...

    PHP实例开发源码—php启科短网址程序.zip

    1. **URL编码与解码**:短网址程序需要处理URL的编码与解码,这涉及到PHP的`urlencode()`和`urldecode()`函数,以及可能的自定义编码算法。 2. **数据库操作**:存储和查找长URL与短URL之间的映射关系,可能使用了...

    php解码文件很好用 试试看

    PHP文件可能通过各种编码方式加密或混淆,比如base64编码、URL编码、甚至更复杂的加密算法。解码过程就是将这些编码还原为原始的可读代码或数据。以下是一些关于PHP解码的关键知识点: 1. **Base64解码**:Base64是...

    PHP实例开发源码—短网址程序 云数据库版.zip

    在PHP中,可以使用`urlencode()`和`urldecode()`函数来实现这一功能,确保URL的正确传输和显示。 3. **数据库连接与操作**:程序需要连接到云数据库,如MySQL、MongoDB或AWS RDS等,进行数据的读写操作。PHP提供了...

    PHP的加密方式及原理

    相对应地,`urldecode()`和`base64_decode()`函数则分别用于解码。 在给出的代码示例中,演示了如何通过一系列字符串操作和编码转换来隐藏原始数据或代码的真实意图。虽然这里的方式并不是传统意义上的加密算法,但...

    基于PHP的下载地址转换网站源码 php版 将迅雷、旋风、快车专用链转换成真实链接工具.zip

    - URL解码:PHP提供`urldecode()`函数,用于将URL编码的字符串转换回原始形式。 - 数据解析:可能需要用到`json_decode()`或`xml_parse()`等函数,根据链接中的数据格式进行解析。 - HTTP请求:`file_get_...

    PHP内置加密函数详解

    URL解码则使用urldecode()和rawurldecode()函数。 Base64编码是一种用于数据的编码方式,它将二进制数据转换为ASCII字符串。Base64编码后的字符串可以通过base64_encode()函数获得,并且可以直接在标签中作为图片...

    风吟PHP Escape 加密/解密

    解密过程则是逆向操作,首先用`urldecode`或`rawurldecode`还原编码后的字符串,然后再进行解码恢复原始的中文字符。 在`code`文件中,可能包含了实现这些加密/解密功能的PHP源代码。通过分析这些代码,我们可以更...

    PHP安全策略大集合

    PHP可以通过htmlspecialchars函数来转义HTML特殊字符,或者使用htmlspecialchars_decode来解码已编码的字符串。另外,考虑使用HTTP头部Content-Security-Policy来限制可执行的脚本来源。 4. **CSRF(跨站请求伪造)...

    php网络开发完全手册

    11.4.2 解码字符串——urldecode 181 11.5 小结 182 第12章 PHP与JavaScript交互 183 12.1 JavaScript简介 183 12.2 JavaScript的数据类型 183 12.3 JavaScript程序设计基础 184 12.3.1 在HTML中嵌入JavaScript 184 ...

    PHP函数速查大全汇总

    **Crypt**: 使用 DES 加密算法加密字符串。例如,`crypt('secret', 'salt')` 返回加密后的字符串。 **Strlen**: 返回字符串长度。例如,`strlen('hello')` 返回 `5`。 **Strtolower**: 将字符串中的所有字符转换为...

    php代码-SimpleEncode

    2. **URL编码**:当需要在URL中包含非ASCII字符时,通常会使用`urlencode()`和`urldecode()`函数进行编码和解码。这是因为URL中只能包含有限的字符集。 3. **HTML实体编码**:在显示用户提供的HTML内容时,为了避免...

    PHP-Visitor-Tracking:PHP

    这通常涉及创建数据库模型、编写入库脚本以及设计数据结构以存储IP、时间戳、页面访问路径等信息。 ### 6. 安全与隐私 在实施访客追踪时,必须遵守数据保护法规,尊重用户的隐私权。确保收集的数据最小化,不存储...

    PHP采用curl模仿用户登陆新浪微博发微博的方法

    在这个例子中,我们注意到登录过程中涉及到了SHA1加密算法,即`sha1(sha1(sha1(pwd)).once.servertime)`。这意味着密码需要经过多次加密处理,使得直接登录变得复杂。 然而,在实际操作中,我们发现新浪登录接口...

Global site tag (gtag.js) - Google Analytics