獨創:幾十行純php代碼解密goto加密的php單文件[僅供學習]

使用用途
1. 安全測試:測試你用網絡工具加密的代碼是否可以被快速解密。
2. 學習參考:對自己感興趣的源碼解密用於編程學習,或瞭解加密解密。
3. 安全評估:解密自己用的第三方源碼是否有危險行爲,比如後門、間諜行爲.
不得用於
1. 解密出售:請尊重他人勞動成果,不得公開、盜賣他人知識產權等侵權行爲。
2. 黑產:不得用於網絡攻擊、非法獲取網絡數據等違反法律法規的用途。
備註說明 已可解密大部分加密內容(非全),夠你用於網絡安全分析及解密思路學習。

<?php

//建議用途
//1. 安全測試:測試你用網絡工具加密的代碼是否可以被快速解密。
//2. 學習參考:對自己感興趣的源碼解密用於編程學習,或瞭解加密解密。
//3. 安全評估:解密自己用的第三方源碼是否有危險行爲,比如後門、間諜行爲.
//不得用於
//1. 解密出售:請尊重他人勞動成果,不得公開、盜賣他人知識產權等侵權行爲。
//2. 黑產:不得用於網絡攻擊、非法獲取網絡數據等違反法律法規的用途。


//去行首goto+多字母;
function Trimgoto($str,$stra){
$str = Trim($str);
preg_match_all('/goto.+?;/', $str, $goto);
foreach($goto[0] as $tiqu6){
$str = Trim(str_replace("@#@".$tiqu6,"","@#@".$str));
}
return $str;
}

//作用:按長度降序 替換 \開頭+數字字母的轉義符
function Trimziti($str,$stra){
$str = Trim($str);
preg_match_all('/(\\\[a-zA-Z0-9]{1,4})+/', $str, $ziti);
foreach($ziti[0] as $tiqu6){
$lans = strlen($tiqu6);
$liti[$tiqu6] = $lans;
}
arsort($liti);
$tiecho="";
$numberOfFiles = sizeOf($liti);
for($t=0;$t<$numberOfFiles;$t++){
$thisFile = each($liti);
$tiqu6 = $thisFile[0];
$tiqua = $thisFile[1];
eval("\$tsts = \"{$tiqu6}\";");
$tiqux = addslashes($tiqu6);
$str = str_replace($tiqux,$tsts,$str);
$str = str_replace($tiqu6,$tsts,$str);
}
return $str;
}

//去行首 多字母: ;
function Trimgete($str,$stra){
$str = Trim($str);
preg_match_all('/\w+:/', $str, $gete);
foreach($gete[0] as $tiqu6){
if(stristr("@#@".$str,"@#@".$tiqu6)){
$str = Trim(str_replace("@#@".$tiqu6,"","@#@".$str));
}
}
return $str;
}

$efile = "install.php"; //要解密的文件
$code = file_get_contents($efile);

if (strlen($code)>10){
    $code1 = $code;
//$code1 = Trimziti($code1,"");
$code1 =str_replace(array('<?php','?>'),"\r\n // ?php? \r\n",$code1);
$code1 =str_replace(array('goto '),"\r\ngoto ",$code1);
$codes = "";
$tat0=explode("\r\n",$code1);
foreach($tat0 as $tat1){
$tat1 = Trim($tat1);
if(strlen(Trim($tat1))>1 && stristr("@".$tat1,"@goto ")){
$codo1 = Trimgoto($tat1,$stra);
$codo1 = Trimgete($codo1,$stra);
$codo2 = "\$chalida .= '" . addslashes($codo1) ."';";
$codel = str_replace($codo1,$codo2,$tat1);
$codes .= $codel."\r\n";
}else{
$codes .= $tat1."\r\n";
}
}
eval($codes);
$chalide = $chalida;
$chalide = Trimziti($chalide,"");
$chalide = stripslashes($chalide);

//以下只是將解密格式化便於肉眼觀看
$chalide = str_replace(");",");\r\n",$chalide);
$chalide = str_replace("){","){\r\n",$chalide);
$chalide = str_replace(") {","){\r\n",$chalide); //;if
$chalide = str_replace(";if",";\r\nif",$chalide);
$chalide = str_replace("}function ","}\r\nfunction ",$chalide);
$chalide = str_replace(";function ",";\r\nfunction ",$chalide);
$chalide = str_replace("<","&lt;",$chalide);
$chalide = str_replace(">","&gt;",$chalide);


echo $chalide;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章