本文目錄一覽:
- 1、php源代碼被加密了,請問如何解密?
- 2、如何破解phpjm.net的混淆加密並解密
- 3、如何解密php加密文件
- 4、如何把一個PHP文件解密
- 5、PHP常用加密解密方法
- 6、這種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/zh-tw/n/233815.html