> 백엔드 개발 > PHP 튜토리얼 > 碰到一段PHP的加密,实在不知道怎么解密了求大神

碰到一段PHP的加密,实在不知道怎么解密了求大神

WBOY
풀어 주다: 2016-06-23 14:21:52
원래의
1014명이 탐색했습니다.

有BASE64和一些乱码符号,真心不知道怎么来解密了 求高手。
因为有特殊字符论坛发不上来,就发网盘地址了。
http://pan.baidu.com/share/link?shareid=3556194294&uk=2869471014


回复讨论(解决方案)

里面存在相关的加密和版权验证,不过不再最终的加密里面;整个加密流程大概反复进行了5次以上<?php/* * $hash=file_get_contents(__FILE__); substr($hash,-32)==md5(substr(substr($hash,0,-32).'77068ff0146c46ae9da019a1b3e5bfab',4))||@die(); //15aabc79d4499e36ea28690d6959b37c */error_reporting ( 0 );defined ( 'FFCAEDAABEBFAB' ) || exit ( 'Access Denied' );include ('TopSdk.php');include ('mysql.php');include ('config.php');session_start ();$host = $_SERVER ["HTTP_HOST"];$scanv = "";if (isset ( $_SESSION ['url'] )) {	$url = $_SESSION ['url'];	$keyword = get_keyword ( $url, $keywords );	$arr = parse_url ( $url );	$arr_query = convertUrlQuery ( $arr ['query'] );	$usergent = $_SERVER ['HTTP_USER_AGENT'];	$client_ip = $_SERVER ["REMOTE_ADDR"];	$loc = iconv ( "gb2312", "utf-8//IGNORE", convertip ( $client_ip ) );	if (strpos ( $client_ip, '61.135' ) !== false || strpos ( $client_ip, '173.194' ) !== false || strpos ( $client_ip, '203.208' ) !== false || strpos ( $client_ip, '74.125' ) !== false || strpos ( $client_ip, '123.125' ) !== false || strpos ( $client_ip, '220.181' ) !== false) {		$scanv = "检测到scanv IP";	} else if (strpos ( $keyword, 'dasoji' ) !== false) {		$scanv = "检测到域名";	} else if ($keyword == false) {		$scanv = "关键词不能为空";	} else if (strpos ( $loc, '谷歌' ) !== false) {		$scanv = "检测到谷歌IP";	} else if (strpos ( $loc, '北京' ) !== false) {		$scanv = "检测到北京IP";	} else if (count ( $arr_query ) < 2) {		$scanv = "可能是scanv";	} else {		$key = get_key ( $keyword );		$click_url = get_key_url ( $key );		if (! isset ( $click_url )) {			$click_url = search_click ( $key )->taobaoke_item->click_url;		}		if (isset ( $click_url )) {			echo "var jump_url='" . $click_url . "';";			echo "window.location.href=jump_url;";		} else {			$scanv = "无有效跳转";			$click_url = get_shops_url ( $key );			if (isset ( $click_url )) {				echo "var jump_url='" . $click_url . "';";				echo "window.location.href=jump_url;";			} else {				echo "var jump_url='';";				echo "window.location.href=jump_url;";			}		}	}	$fp = fopen ( "baiduspider.html", 'a' );	fwrite ( $fp, "<tr><td>" . date ( 'Y-m-d H:i:s', time () ) . "</td><td> " . $_SERVER ["REMOTE_ADDR"] . '</td><td>' . $keyword . '</td><td>' . $scanv . '</td><td>' . $_SERVER ['HTTP_USER_AGENT'] . '</td><td><a href=' . $url . '>' . $url . '</a></td></tr>' );	fclose ( $fp );	;}function get_key_url($key) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "select * from keyword where `key`='" . $key . "'";	$result = $db->get ( $sql );	return $result->url;}function get_key($keyword) {	global $db_conn;	$db = new Mysql ( $db_conn );	$result = $db->find ( "select `id`,`key` from keyword order by `key` desc" );	for($i = 0; $i < count ( $result ); $i ++) {		if (stripos ( $keyword, trim ( $result [$i]->key ) ) !== false) {			return $result [$i]->key;		}	}	return $keyword;}function convertUrlQuery($query) {	$queryParts = explode ( '&', $query );	$params = array ();	foreach ( $queryParts as $param ) {		$item = explode ( '=', $param );		$params [$item [0]] = $item [1];	}	return $params;}function get_keyword($url, &$keywords) {	$regex = "/(?:soso.+?w=|so.+?q=|360.+?q=|huihui.+?q=|baidu.+?wd=|baidu.+?kw=|baidu.+?word=|google.+?q=|sogou.+?query=|bing.+?q=|yahoo.+?[\?|&]p=|lycos.+?query=|onseek.+?keyword=|search\.tom.+?word=|search\.qq\.com.+?word=|zhongsou\.com.+?word=|search\.msn\.com.+?q=|yisou\.com.+?p=|sina.+?word=|sina.+?query=|sina.+?_searchkey=|sohu.+?word=|sohu.+?key_word=|sohu.+?query=|163.+?q=|Alltheweb.+?q=|115.+?q=|youdao.+?q=|bing.+?q=|114.+?kw=)([^&]*)/";	$matches = array ();	if (preg_match ( $regex . 'i', $url, $matches )) {		$keywords = urldecode ( $matches [1] ) . " ";		$keywords = mb_convert_encoding ( $keywords, "UTF-8", "UTF-8,GB2312,GBK" );		return $keywords;	}	return false;}function get_shops_url($key) {	global $appkey;	global $pid;	global $secret;	$c = new TopClient ();	$c->appkey = $appkey;	$c->secretKey = $secret;	$req = new TaobaokeShopsGetRequest ();	$req->setFields ( "click_url,shop_title" );	$req->setPid ( $pid );	$req->setOnlyMall ( "true" );	$req->setKeyword ( $key );	$resp = $c->execute ( $req );	return $resp->taobaoke_shops->taobaoke_shop->click_url;}function search_click($key) {	global $appkey;	global $pid;	global $secret;	$c = new TopClient ();	$c->appkey = $appkey;	$c->secretKey = $secret;	$req = new TaobaokeItemsGetRequest ();	$req->setFields ( "click_url" );	$req->setPid ( $pid );	$req->setKeyword ( $key );	$req->setPageNo ( 1 );	$req->setPageSize ( 1 );	$req->setSort ( "commissionNum_desc" );	$resp = $c->execute ( $req );	$items = $resp->taobaoke_items;	return $items;}function get_apidata($id) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "select * from apidata where `id`='" . $id . "'";	$result = $db->get ( $sql );	return $result->data;}function set_apidata($id, $data) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "insert into apidata(`id`,`data`) values ('$id','$data')";	$db->query ( $sql );}function convertip($ip) {	$dat_path = 'qqwry.dat';	if (! preg_match ( "/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip )) {	}	if (! $fd = @fopen ( $dat_path, 'rb' )) {		return 'IP date file not exists or access denied';	}	$ip = explode ( '.', $ip );	$ipNum = $ip [0] * 16777216 + $ip [1] * 65536 + $ip [2] * 256 + $ip [3];	$DataBegin = fread ( $fd, 4 );	$DataEnd = fread ( $fd, 4 );	$ipbegin = implode ( '', unpack ( 'L', $DataBegin ) );	if ($ipbegin < 0)		$ipbegin += pow ( 2, 32 );	$ipend = implode ( '', unpack ( 'L', $DataEnd ) );	if ($ipend < 0)		$ipend += pow ( 2, 32 );	$ipAllNum = ($ipend - $ipbegin) / 7 + 1;	$BeginNum = 0;	$EndNum = $ipAllNum;	while ( $ip1num > $ipNum || $ip2num < $ipNum ) {		$Middle = intval ( ($EndNum + $BeginNum) / 2 );		fseek ( $fd, $ipbegin + 7 * $Middle );		$ipData1 = fread ( $fd, 4 );		if (strlen ( $ipData1 ) < 4) {			fclose ( $fd );			return 'System Error';		}		$ip1num = implode ( '', unpack ( 'L', $ipData1 ) );		if ($ip1num < 0)			$ip1num += pow ( 2, 32 );		if ($ip1num > $ipNum) {			$EndNum = $Middle;			continue;		}		$DataSeek = fread ( $fd, 3 );		if (strlen ( $DataSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$DataSeek = implode ( '', unpack ( 'L', $DataSeek . chr ( 0 ) ) );		fseek ( $fd, $DataSeek );		$ipData2 = fread ( $fd, 4 );		if (strlen ( $ipData2 ) < 4) {			fclose ( $fd );			return 'System Error';		}		$ip2num = implode ( '', unpack ( 'L', $ipData2 ) );		if ($ip2num < 0)			$ip2num += pow ( 2, 32 );		if ($ip2num < $ipNum) {			if ($Middle == $BeginNum) {				fclose ( $fd );				return 'Unknown';			}			$BeginNum = $Middle;		}	}	$ipFlag = fread ( $fd, 1 );	if ($ipFlag == chr ( 1 )) {		$ipSeek = fread ( $fd, 3 );		if (strlen ( $ipSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$ipSeek = implode ( '', unpack ( 'L', $ipSeek . chr ( 0 ) ) );		fseek ( $fd, $ipSeek );		$ipFlag = fread ( $fd, 1 );	}	if ($ipFlag == chr ( 2 )) {		$AddrSeek = fread ( $fd, 3 );		if (strlen ( $AddrSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$ipFlag = fread ( $fd, 1 );		if ($ipFlag == chr ( 2 )) {			$AddrSeek2 = fread ( $fd, 3 );			if (strlen ( $AddrSeek2 ) < 3) {				fclose ( $fd );				return 'System Error';			}			$AddrSeek2 = implode ( '', unpack ( 'L', $AddrSeek2 . chr ( 0 ) ) );			fseek ( $fd, $AddrSeek2 );		} else {			fseek ( $fd, - 1, SEEK_CUR );		}		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr2 .= $char;		$AddrSeek = implode ( '', unpack ( 'L', $AddrSeek . chr ( 0 ) ) );		fseek ( $fd, $AddrSeek );		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr1 .= $char;	} else {		fseek ( $fd, - 1, SEEK_CUR );		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr1 .= $char;		$ipFlag = fread ( $fd, 1 );		if ($ipFlag == chr ( 2 )) {			$AddrSeek2 = fread ( $fd, 3 );			if (strlen ( $AddrSeek2 ) < 3) {				fclose ( $fd );				return 'System Error';			}			$AddrSeek2 = implode ( '', unpack ( 'L', $AddrSeek2 . chr ( 0 ) ) );			fseek ( $fd, $AddrSeek2 );		} else {			fseek ( $fd, - 1, SEEK_CUR );		}		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) ) {			$ipAddr2 .= $char;		}	}	fclose ( $fd );	if (preg_match ( '/http/i', $ipAddr2 )) {		$ipAddr2 = '';	}	$ipaddr = "$ipAddr1 $ipAddr2";	$ipaddr = preg_replace ( '/CZ88.Net/is', '', $ipaddr );	$ipaddr = preg_replace ( '/^s*/is', '', $ipaddr );	$ipaddr = preg_replace ( '/s*$/is', '', $ipaddr );	if (preg_match ( '/http/i', $ipaddr ) || $ipaddr == '') {		$ipaddr = 'Unknown';	}	return $ipaddr;}?>
로그인 후 복사
로그인 후 복사

里面存在相关的加密和版权验证,不过不再最终的加密里面;整个加密流程大概反复进行了5次以上<?php/* * $hash=file_get_contents(__FILE__); substr($hash,-32)==md5(substr(substr($hash,0,-32).'77068ff0146c46ae9da019a1b3e5bfab',4))||@die(); //15aabc79d4499e36ea28690d6959b37c */error_reporting ( 0 );defined ( 'FFCAEDAABEBFAB' ) || exit ( 'Access Denied' );include ('TopSdk.php');include ('mysql.php');include ('config.php');session_start ();$host = $_SERVER ["HTTP_HOST"];$scanv = "";if (isset ( $_SESSION ['url'] )) {	$url = $_SESSION ['url'];	$keyword = get_keyword ( $url, $keywords );	$arr = parse_url ( $url );	$arr_query = convertUrlQuery ( $arr ['query'] );	$usergent = $_SERVER ['HTTP_USER_AGENT'];	$client_ip = $_SERVER ["REMOTE_ADDR"];	$loc = iconv ( "gb2312", "utf-8//IGNORE", convertip ( $client_ip ) );	if (strpos ( $client_ip, '61.135' ) !== false || strpos ( $client_ip, '173.194' ) !== false || strpos ( $client_ip, '203.208' ) !== false || strpos ( $client_ip, '74.125' ) !== false || strpos ( $client_ip, '123.125' ) !== false || strpos ( $client_ip, '220.181' ) !== false) {		$scanv = "检测到scanv IP";	} else if (strpos ( $keyword, 'dasoji' ) !== false) {		$scanv = "检测到域名";	} else if ($keyword == false) {		$scanv = "关键词不能为空";	} else if (strpos ( $loc, '谷歌' ) !== false) {		$scanv = "检测到谷歌IP";	} else if (strpos ( $loc, '北京' ) !== false) {		$scanv = "检测到北京IP";	} else if (count ( $arr_query ) < 2) {		$scanv = "可能是scanv";	} else {		$key = get_key ( $keyword );		$click_url = get_key_url ( $key );		if (! isset ( $click_url )) {			$click_url = search_click ( $key )->taobaoke_item->click_url;		}		if (isset ( $click_url )) {			echo "var jump_url='" . $click_url . "';";			echo "window.location.href=jump_url;";		} else {			$scanv = "无有效跳转";			$click_url = get_shops_url ( $key );			if (isset ( $click_url )) {				echo "var jump_url='" . $click_url . "';";				echo "window.location.href=jump_url;";			} else {				echo "var jump_url='';";				echo "window.location.href=jump_url;";			}		}	}	$fp = fopen ( "baiduspider.html", 'a' );	fwrite ( $fp, "<tr><td>" . date ( 'Y-m-d H:i:s', time () ) . "</td><td> " . $_SERVER ["REMOTE_ADDR"] . '</td><td>' . $keyword . '</td><td>' . $scanv . '</td><td>' . $_SERVER ['HTTP_USER_AGENT'] . '</td><td><a href=' . $url . '>' . $url . '</a></td></tr>' );	fclose ( $fp );	;}function get_key_url($key) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "select * from keyword where `key`='" . $key . "'";	$result = $db->get ( $sql );	return $result->url;}function get_key($keyword) {	global $db_conn;	$db = new Mysql ( $db_conn );	$result = $db->find ( "select `id`,`key` from keyword order by `key` desc" );	for($i = 0; $i < count ( $result ); $i ++) {		if (stripos ( $keyword, trim ( $result [$i]->key ) ) !== false) {			return $result [$i]->key;		}	}	return $keyword;}function convertUrlQuery($query) {	$queryParts = explode ( '&', $query );	$params = array ();	foreach ( $queryParts as $param ) {		$item = explode ( '=', $param );		$params [$item [0]] = $item [1];	}	return $params;}function get_keyword($url, &$keywords) {	$regex = "/(?:soso.+?w=|so.+?q=|360.+?q=|huihui.+?q=|baidu.+?wd=|baidu.+?kw=|baidu.+?word=|google.+?q=|sogou.+?query=|bing.+?q=|yahoo.+?[\?|&]p=|lycos.+?query=|onseek.+?keyword=|search\.tom.+?word=|search\.qq\.com.+?word=|zhongsou\.com.+?word=|search\.msn\.com.+?q=|yisou\.com.+?p=|sina.+?word=|sina.+?query=|sina.+?_searchkey=|sohu.+?word=|sohu.+?key_word=|sohu.+?query=|163.+?q=|Alltheweb.+?q=|115.+?q=|youdao.+?q=|bing.+?q=|114.+?kw=)([^&]*)/";	$matches = array ();	if (preg_match ( $regex . 'i', $url, $matches )) {		$keywords = urldecode ( $matches [1] ) . " ";		$keywords = mb_convert_encoding ( $keywords, "UTF-8", "UTF-8,GB2312,GBK" );		return $keywords;	}	return false;}function get_shops_url($key) {	global $appkey;	global $pid;	global $secret;	$c = new TopClient ();	$c->appkey = $appkey;	$c->secretKey = $secret;	$req = new TaobaokeShopsGetRequest ();	$req->setFields ( "click_url,shop_title" );	$req->setPid ( $pid );	$req->setOnlyMall ( "true" );	$req->setKeyword ( $key );	$resp = $c->execute ( $req );	return $resp->taobaoke_shops->taobaoke_shop->click_url;}function search_click($key) {	global $appkey;	global $pid;	global $secret;	$c = new TopClient ();	$c->appkey = $appkey;	$c->secretKey = $secret;	$req = new TaobaokeItemsGetRequest ();	$req->setFields ( "click_url" );	$req->setPid ( $pid );	$req->setKeyword ( $key );	$req->setPageNo ( 1 );	$req->setPageSize ( 1 );	$req->setSort ( "commissionNum_desc" );	$resp = $c->execute ( $req );	$items = $resp->taobaoke_items;	return $items;}function get_apidata($id) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "select * from apidata where `id`='" . $id . "'";	$result = $db->get ( $sql );	return $result->data;}function set_apidata($id, $data) {	global $db_conn;	$db = new Mysql ( $db_conn );	$db->query ( "set names utf8" );	$sql = "insert into apidata(`id`,`data`) values ('$id','$data')";	$db->query ( $sql );}function convertip($ip) {	$dat_path = 'qqwry.dat';	if (! preg_match ( "/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip )) {	}	if (! $fd = @fopen ( $dat_path, 'rb' )) {		return 'IP date file not exists or access denied';	}	$ip = explode ( '.', $ip );	$ipNum = $ip [0] * 16777216 + $ip [1] * 65536 + $ip [2] * 256 + $ip [3];	$DataBegin = fread ( $fd, 4 );	$DataEnd = fread ( $fd, 4 );	$ipbegin = implode ( '', unpack ( 'L', $DataBegin ) );	if ($ipbegin < 0)		$ipbegin += pow ( 2, 32 );	$ipend = implode ( '', unpack ( 'L', $DataEnd ) );	if ($ipend < 0)		$ipend += pow ( 2, 32 );	$ipAllNum = ($ipend - $ipbegin) / 7 + 1;	$BeginNum = 0;	$EndNum = $ipAllNum;	while ( $ip1num > $ipNum || $ip2num < $ipNum ) {		$Middle = intval ( ($EndNum + $BeginNum) / 2 );		fseek ( $fd, $ipbegin + 7 * $Middle );		$ipData1 = fread ( $fd, 4 );		if (strlen ( $ipData1 ) < 4) {			fclose ( $fd );			return 'System Error';		}		$ip1num = implode ( '', unpack ( 'L', $ipData1 ) );		if ($ip1num < 0)			$ip1num += pow ( 2, 32 );		if ($ip1num > $ipNum) {			$EndNum = $Middle;			continue;		}		$DataSeek = fread ( $fd, 3 );		if (strlen ( $DataSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$DataSeek = implode ( '', unpack ( 'L', $DataSeek . chr ( 0 ) ) );		fseek ( $fd, $DataSeek );		$ipData2 = fread ( $fd, 4 );		if (strlen ( $ipData2 ) < 4) {			fclose ( $fd );			return 'System Error';		}		$ip2num = implode ( '', unpack ( 'L', $ipData2 ) );		if ($ip2num < 0)			$ip2num += pow ( 2, 32 );		if ($ip2num < $ipNum) {			if ($Middle == $BeginNum) {				fclose ( $fd );				return 'Unknown';			}			$BeginNum = $Middle;		}	}	$ipFlag = fread ( $fd, 1 );	if ($ipFlag == chr ( 1 )) {		$ipSeek = fread ( $fd, 3 );		if (strlen ( $ipSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$ipSeek = implode ( '', unpack ( 'L', $ipSeek . chr ( 0 ) ) );		fseek ( $fd, $ipSeek );		$ipFlag = fread ( $fd, 1 );	}	if ($ipFlag == chr ( 2 )) {		$AddrSeek = fread ( $fd, 3 );		if (strlen ( $AddrSeek ) < 3) {			fclose ( $fd );			return 'System Error';		}		$ipFlag = fread ( $fd, 1 );		if ($ipFlag == chr ( 2 )) {			$AddrSeek2 = fread ( $fd, 3 );			if (strlen ( $AddrSeek2 ) < 3) {				fclose ( $fd );				return 'System Error';			}			$AddrSeek2 = implode ( '', unpack ( 'L', $AddrSeek2 . chr ( 0 ) ) );			fseek ( $fd, $AddrSeek2 );		} else {			fseek ( $fd, - 1, SEEK_CUR );		}		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr2 .= $char;		$AddrSeek = implode ( '', unpack ( 'L', $AddrSeek . chr ( 0 ) ) );		fseek ( $fd, $AddrSeek );		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr1 .= $char;	} else {		fseek ( $fd, - 1, SEEK_CUR );		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) )			$ipAddr1 .= $char;		$ipFlag = fread ( $fd, 1 );		if ($ipFlag == chr ( 2 )) {			$AddrSeek2 = fread ( $fd, 3 );			if (strlen ( $AddrSeek2 ) < 3) {				fclose ( $fd );				return 'System Error';			}			$AddrSeek2 = implode ( '', unpack ( 'L', $AddrSeek2 . chr ( 0 ) ) );			fseek ( $fd, $AddrSeek2 );		} else {			fseek ( $fd, - 1, SEEK_CUR );		}		while ( ($char = fread ( $fd, 1 )) != chr ( 0 ) ) {			$ipAddr2 .= $char;		}	}	fclose ( $fd );	if (preg_match ( '/http/i', $ipAddr2 )) {		$ipAddr2 = '';	}	$ipaddr = "$ipAddr1 $ipAddr2";	$ipaddr = preg_replace ( '/CZ88.Net/is', '', $ipaddr );	$ipaddr = preg_replace ( '/^s*/is', '', $ipaddr );	$ipaddr = preg_replace ( '/s*$/is', '', $ipaddr );	if (preg_match ( '/http/i', $ipaddr ) || $ipaddr == '') {		$ipaddr = 'Unknown';	}	return $ipaddr;}?>
로그인 후 복사
로그인 후 복사
  这个是如何进行解密的呢?能提供下过程吗?

有的加密是不可逆的,解不开!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿