php混淆加密的文件解密方法,php 字符串加密解密

本文目录一览:

php源代码被加密了,请问如何解密?

php源码被使用zend加密,现阶段还没用解密方法。但是好像现在有这样的一个studio,他们成功地完成了zend和eac的decode

不过是收费的

如何破解phpjm.net的混淆加密并解密

$file = ‘plugin.php’; //要破解的文件

$fp = fopen($file, ‘r’);

$str = fread($fp, filesize($file));

fclose($fp);

copy($file, ‘0_’.$file);

$n = 1;

while($n 10){

$code = strdecode($str);

if($n == 1){

$code = str_replace(“__FILE__”, “‘0_$file'”, $code);

}

$replace = ‘$decode’.$n.’=trim’;

if(strpos($code, ‘eval(‘) 0){

$code = str_replace(‘eval(‘, $replace.'(‘, $code);

}else{

preg_match(“/@\\$(.*)\(\\$(.*),(.*)\(/isU”, $code, $res);

$code = str_replace($res[3], “‘$replace”, $code);

}

$code = preg_replace(‘/\\$(.*)=false;(.*?)\(\);/’, ”, $code); //上一版本

$code = preg_replace(‘/\|\|@\\$(.*?)\(\);/’, ‘|| print(“ok”);’, $code);

$code = destr($code);

$tmp_file = ‘detmp’.$n.’.php’;

file_put_contents($tmp_file, $code);

include($tmp_file);

$val = ‘decode’.$n;

$str = $$val;

unlink($tmp_file);

if(strpos($str, ‘;?’) === 0){

$decode = $str;

break;

}

$str = ” $n++;

}

$decode = preg_replace(“/^(.*)exit\(‘Access Denied’\); /”, ” $del = strrchr($decode, ‘unset’);

$decode = str_replace($del, “\r\n?”, $decode);

file_put_contents($file.’.de.php’ ,$decode);

unlink(‘0_’.$file);

echo ‘done’;

////////////

function val_replace($code, $val, $deval){

$code = str_replace(‘$’.$val.’,’, ‘$’.$deval.’,’, $code);

$code = str_replace(‘$’.$val.’;’, ‘$’.$deval.’;’, $code);

$code = str_replace(‘$’.$val.’=’, ‘$’.$deval.’=’, $code);

$code = str_replace(‘$’.$val.'(‘, ‘$’.$deval.'(‘, $code);

$code = str_replace(‘$’.$val.’)’, ‘$’.$deval.’)’, $code);

$code = str_replace(‘$’.$val.’.’, ‘$’.$deval.’.’, $code);

$code = str_replace(‘$’.$val.’/’, ‘$’.$deval.’/’, $code);

$code = str_replace(‘$’.$val.”, ‘$’.$deval.”, $code);

$code = str_replace(‘$’.$val.”, ‘$’.$deval.”, $code);

$code = str_replace(‘$’.$val.’^’, ‘$’.$deval.’^’, $code);

$code = str_replace(‘$’.$val.’||’, ‘$’.$deval.’||’, $code);

$code = str_replace(‘($’.$val.’ ‘, ‘($’.$deval.’ ‘, $code);

return $code;

}

function fmt_code($code){

global $vals,$funs;

preg_match_all(“/\\$[0-9a-zA-Z\[\]’]+(,|;)/iesU”, $code, $res);

foreach($res[0] as $v){

$val = str_replace(array(‘$’,’,’,’;’), ”, $v);

$deval = destr($val, 1);

$vals[$val] = $deval;

$code = val_replace($code, $val, $deval);

}

preg_match_all(“/\\$[0-9a-zA-Z\[\]’]+=/iesU”, $code, $res);

foreach($res[0] as $v){

$val = str_replace(array(‘$’,’=’), ”, $v);

$deval = destr($val, 1);

$vals[$val] = $deval;

$code = val_replace($code, $val, $deval);

}

preg_match_all(“/function\s[0-9a-zA-Z\[\]]+\(/iesU”, $code, $res);

foreach($res[0] as $v){

$val = str_replace(array(‘function ‘,'(‘), ”, $v);

$deval = destr($val, 1);

$funs[$val] = $deval;

$code = str_replace(‘function ‘.$val.'(‘, ‘function ‘.$deval.'(‘, $code);

$code = str_replace(‘=’.$val.'(‘, ‘=’.$deval.'(‘, $code);

$code = str_replace(‘return ‘.$val.'(‘, ‘return ‘.$deval.'(‘, $code);

}

return $code;

}

function strdecode($str){

$len = strlen($str);

$newstr = ”;

for($i=0; $i$len; $i++){

$n = ord($str[$i]);

$newstr .= decode($n);

}

return $newstr;

}

function decode($dec){

if(($dec 126 || $dec32) $dec13 $dec10){

return ‘[‘.$dec.’]’;

}else{

return chr($dec);

}

}

function destr($str, $val=0){

$k = 0;

$num = ”;

$n = strlen($str);

$code = ”;

for($i=0; $i$n; $i++){

if($str[$i] == ‘[‘ ($str[$i+1]==1 || $str[$i+1]==2)){

$k = 1;

}elseif($str[$i] == ‘]’ $k==1){

$num = intval($num);

if($val==1){

$num = 97 + fmod($num, 25);

}

$code .= chr($num);

$k = 0;

$num = null;

}else{

if($k == 1){

$num .= $str[$i];

}else{

$code .= $str[$i];

}

}

}

return $code;

}

?

如何解密php加密文件

首先建议您可以和这款软件的作者和客服人员联系一下,看是否有解决办法。

您以后可以选择专业的加密软件来给您的文件和文件夹加密。

文件夹加密超级大师是文件加密软件中非常不错的选择。

文件夹加密超级大师是专业的文件加密软件,文件加密后如果需要使用,只需要输入正确密码,点击打开,使用完毕后,文件就自动回复到加密状态了。

文件夹加密超级大师的功能相当的强大,您可以到百度上搜索文件夹加密超级大师给您的文件和文件夹加密试试,看看加密效果怎么样?

如何把一个PHP文件解密

所谓的PHP文件加密,一般有两种方式,一是ZEND编译,二是BASE64等编码,理论上都不是加密,下面分别说说如何还原。

对于ZEND编译过的代码,用记事本打开是完全是乱码,除了前面的很小的头部,后面不是可见ASCII字符,有点像打开一个EXE文件的效果,是无法阅读的。这类处理的文件一般认为是无法还原的,网上有DEZEND工具,你可以下载来试试看,能还原早期ZEND版本编译后的代码。

对于使用BASE64等编码后的PHP文件,可以用记事本打开查看,所有字符都是可见ASCII字符,一般使用两种方法加大阅读难度:一是使用$ll111、$ooo000这样的变量,字母L的小写与1混在一起、字母O的小写与数字0混在一起,不容易分辨变量名称。二是使用BASE64编码对原始代码进行转换,最后使用eval进行处理。往往两种方式结合在一起。

第二种方式处理后的代码是很容易还原的,方法就是把eval换为exit,在CLI(命令提示符)下执行就会显示出eval那个语句对应的等效代码,替换原始语句即可。有时候还原一次后还是eval语句,那需要按照同样的方法反复处理。

PHP常用加密解密方法

作者/上善若水

1.md5(string $str,bool $flag = false);

$flag = false 默认返回32位的16进至数据散列值

$flag = true  返回原始流数据

2.sha1($string,$flag = false)

$flag = false 默认返回40位的16进至数据散列值

true  返回原始流数据

3.hash(string $algo,srting $str,bool $flag);

$algo : 算法名称,可通过hash_algos()函数获取所有hash加密的算法

如:md5,sha1等,采用md5,sha1加密所得结果和1,2两种方式结 果相同。

$flag = false 默认返回16进至的数据散列值,具体长度根据算法不同

而不同。

true  返回原始流数据。

4.crypt(string $str,$string $salt);

函数返回使用 DES、Blowfish 或 MD5 算法加密的字符串。

具体算法依赖于PHP检查之后支持的算法和$salt的格式和长度,当 然具体结果也和操作系统有关。比较结果采用 hash_equals($crypted,crypt($input,$salt));//且salt值相同

Password_verify($str,$crypted);

5.password_hash ( string $str, integer $algo [, array $options ] )

函数返回哈希加密后的密码字符串, password_hash() 是crypt()的 一个简单封装

$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT

$options = [

“cost”=10,//指明算法递归的层数,

“salt”=“xxadasdsad”//加密盐值,即将被遗 弃,采用系统自动随机生成安全性更高

];

使用的算法、cost 和盐值作为哈希的一部分返回

Password_verify($str,$hashed);

6.base64_encode(string $str)

设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层 传输,例如电子邮件的主体。base64_decode(string $encoded)

可以进行解码;

7.mcrypt_encrypt ( string $cipher , string $key , string $data ,

string $mode [, string $iv ] )

mcrypt_decrypt ( string $cipher , string $key , string $crypted ,

string $mode [, string $iv ] )

$ciper:加密算法,mcrypt_list_algorithms()可以获取该函数所有支持的算法

如MCRYPT_DES(“des”),MCRYPT_RIJNDAEL_128(“rijndael-128”);

$mode : 加密模式 ,mcrypt_list_modes()获取所有支持的加密模式,ecb,cbc

$key: 加密的秘钥,mcrypt_get_key_size ( string $cipher , string $mode )

获取指定的算法和模式所需的密钥长度。$key要满足这个长度,如果长 度无效会报出警告。

$iv : 加密的初始向量,可通过mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ),

Iv的参数size:

通过mcrypt_get_iv_size ( string $cipher , string $mode )获取

Iv 的参数source:

初始向量数据来源。可选值有: MCRYPT_RAND (系统随机数生成 器), MCRYPT_DEV_RANDOM (从 /dev/random 文件读取数据) 和  MCRYPT_DEV_URANDOM (从 /dev/urandom 文件读取数据)。 在 Windows 平台,PHP 5.3.0 之前的版本中,仅支持 MCRYPT_RAND。

请注意,在 PHP 5.6.0 之前的版本中, 此参数的默认值 为 MCRYPT_DEV_RANDOM。

Note: 需要注意的是,如果没有更多可用的用来产生随机数据的信息, 那么 MCRYPT_DEV_RANDOM 可能进入阻塞状态。

$data : 要加密的字符串数据

这种PHP混淆加密,如何解密,好像不是新版混淆加密

本文件为新版PHPJM 采用混淆方式加密!

如果需要加密可能需要到专业的平台付费解密!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/233815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 17:11
下一篇 2024-12-11 17:11

相关推荐

  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python中将字符串转化为浮点数

    本文将介绍在Python中将字符串转化为浮点数的常用方法。在介绍方法之前,我们先来思考一下这个问题应该如何解决。 一、eval函数 在Python中,最简单、最常用的将字符串转化为…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29

发表回复

登录后才能评论