php简单混淆类加密文件如何解密?

最近在整理单位购买的源码时,发现源码里好多文件都混淆加密了。虽然不解密也不影响使用,但是心里总觉得有些别扭,便试着将加密的文件解密。

首先,百度了一下,看网上是否有现成的混淆类解密工具,搜到了一个http://www.zhaoyuanma.com/。尝试了一下,这个还真是好用,免费的,解密速度挺快。但是当解到一个比较大的文件时,发现文件上传不上去了,网站提示:文件无法上传。开始以为是不是解密次数多了,网站限制了。隔了一天试了一下,还是不行,后来打开了文件一下打算仔细的看看,觉得文件打开的比较迟钝,硬盘也吱吱的响,这才注意到这个文件的体积还挺大的,都4M多,我说怎么上传不上去。

无法通过工具解密了,就只有自己想办法,试着自己解密试试,结果踩到了一个坑。

先发一个混淆类加密的样式:

$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};
$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};
$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};

eval($O00O0O("JE8wTzAwMD0iZENvVnp1dGtJSnllUVd4VXJxQVNOb*************));

首先 在第一行后插入 echo $O00OO0; die(); 便可输出 urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6****"); 到底是什么字符串了,通过输出发现这一串字符是:

n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j

接着再继续输出  $O00O0O、$OO0O00、 $OO0000 三个变量所表示的字符串了,还是在每一行后面添加 echo $O00OO0; die(); 继续用输出。便可以知道这三个变量表示的是什么含义了。这儿要小心,一不小心,就容易掉到坑里了。

那就是 将第一行要将 $O00OO0=urldecode("%6E1%7A%62%2F%6D%"),这一句变成 $O00OO0=‘ n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j’; 而不是

$O00OO0=" n1zb/ma5\vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j"; ,要不然就整体都错了一位,调试出的变量所代表的函数就都似乎成了未知函数。

错位后的变量所代表的字符变成了

$O00O0O=‘bawh‘;
$O0OO00=‘w0k0k‘;
$OO0O00=‘wqbw0k‘;
$OO0000=‘58‘;
$O00O0O.=‘bawhl+eghs4gh‘

通过正确的输出,便发现加密的函数为:

$O00O0O=‘base‘;
$O0OO00=‘strstr‘;
$OO0O00=‘substr‘;
$OO0000=‘52‘;
$O00O0O.=‘base64_decode‘

原文地址:https://www.cnblogs.com/imustun/p/10158718.html

时间: 2024-10-09 06:43:59

php简单混淆类加密文件如何解密?的相关文章

lua简单地异或加密文件

用lua简单地异或加密文件,注意解密的key是加密key的倒序: 1 require 'bit' 2 3 local encode = function(inpath, outpath, key) 4 local inf = assert(io.open(inpath, "rb")) 5 local outf = assert(io.open(outpath, "wb")) 6 7 if (type(key) ~= "string") or (s

C#,ASP.NET简单的MD5加密,解密

简单的MD5加密 首先要有一个加解密的规则  就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create(); return ASCIIEncoding.ASCII.GetString(desCrypto.Key); } 然后就是加密 传入的参数分别为你要加密的字符串,

【绝对原创】最新研究成果,EFS加密文件真的可以解密!各位不要放弃哈~

我是一名正在读计算机专业的博士,前一段时间花费了几个月研究EFS解密技术,终于成功了,现在总结一下,给各位一个启示~ 关于EFS加密: EFS(Encrypting File System,加密文件系统)是Windows系统特有的一个实用功能,对于NTFS卷上的文件和数据,都可以直接被操作系统加密保存,在很大程度上提高了数据的安全性.但是,如果不小心重装系统或损坏硬盘等将导致EFS加密文件无法打开,无法复制,但可以删除.EFS加密解密都是透明完成,如果用户加密了一些数据,那么其对这些数据的访问将

C#的DES文件加解密工具类

using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace www.xinduofen.com { class FileDES { /// /// 加密文件随机数生成 /// private static RandomNumberGenerator rand = new RNGCryptoServi

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .

以下为php代码 <PRE class=PHP name="code"> </PRE><PRE class=PHP name="code">PHP加解密函数:</PRE><PRE class=PHP name="code"> </PRE><PRE class=PHP name="code"> function encrypt($string)

Android jni aes加解密,实现文件的加解密,具体实现可以自行修改,上面的代码为简单介绍,下面的是JNI端实现文件加解密,可以修改为字符串加解密

#include "aes.h" #include "modes.h" #include "e_os2.h" #include "aes_locl.h" #include "opensslconf.h" AES_KEY aes; //aes cbc模式加解密用到的向量 unsigned char iv[AES_BLOCK_SIZE]; for (i = 0; i < AES_BLOCK_SIZE; i

Java开发经验分享之JAVA简单实现DES加密与实现DES解密

前言:相信很多小伙伴在开发过程中都会加密问题.当然,小菜在开发中也遇到了,这里呢,小菜想说的是JAVA简单实现DES加密. 今天就简单实现一下如何DES加密解密.话不多说,代码如下.直接可用.希望能成为你项目中的一个很好的工具类. public class DesEncrypt { // DES加密密钥key public static String key = "sdfDA12r3JHV214IJrwerDSO892BK2345nrekk35oewr4wrwrenlklknsdlemifzkw

简单安全的电脑文件加密方案?如何控制数据文档随意外发?选择湖南风奥科技

网络技术的普及程度的提高,确实给该阶段时代的发展带来便利,也让人们享受到互联网发展带来的快捷!人们在享受互联网发展带来的快捷感的同时,大家是否思考过,互联网的发展又会给这个时代带来哪些危机? 为什么要加强对电脑文件加密的使用?相信不少的企业以及个人都在互联网新闻上看到了不少关于某某企业.某某机构等数据泄露,多少多少数据泄露为企业带来了什么样的影响等等诸如此类的相关报道!正是因为这些数据泄露事件在互联网上的公开,让现阶段的政府部门等等加强了对互联网市场安全监管,同时企事业单位也加强了对自身企业数据

简单操作只需10秒破解PDF加密文件

简单操作只需10秒破解PDF加密文件 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51345950 如何破解PDF加密文件,如何破解PDF密码呢,破解加密的PDF文件? 从网上下载的PDF文件,由于版权的问题,作者经常会加密禁止读者复制修改等权限,如下面的PDF文档,用Adobe pdf Reader打开时,会显示"已加密"的字样,虽然可以阅读,但不能修改和标记. 为了解决这个问题,可以采用绕过破解密码这一