<?php
/*
	@Script Criado por Leandro Daldegam
	@16/12/2008 16:34 ;]

	@Configuração da conexão com o SQL.
*/
$SQL_CONNECT = "127.0.0.1";
$SQL_USERNAME = "sa";
$SQL_PASSWORD = "123123";
$SQL_DATABASE = "MuOnline";
$SQL_MD5 = TRUE;

/*
	@Configuração da conexão com o Joinserver.
*/
$JS_HOST = "127.0.0.1";
$JS_PORT = "55970";

/*
	@SqlInject.
*/
$List = array("'","\"","--",";;");
foreach($_POST as $Value)
foreach($List as $Word)
if(substr_count($Value, $Word) > 0) exit("Caracters incorretos");

/*
	@Conexão com o sql.
*/
$SQL_CON = @mssql_connect($SQL_CONNECT, $SQL_USERNAME, $SQL_PASSWORD) or die("Erro na conexão com o SQL;");
@mssql_select_db($SQL_DATABASE, $SQL_CON) or die("Erro na seleção do Bando de dados;");

	echo "<div align=\"center\">
			<form name=\"form_dcacc\" method=\"post\" action=\"DisconnectPlayer.php?Pack=Send\">
			 <table border=\"0\" cellpadding=\"2\" cellspacing=\"2\">
			  <tr><td colspan=\"2\" align=\"center\"><font color=red>Atenção!<br />Somente use essa opção caso sua conta tenha ficado presa no servidor e você não esteja conseguindo entrar no jogo!</font></td></tr>
			  <tr><td align=\"right\">Seu Login:</td><td><input type=\"text\" name=\"login\" size=\"12\" maxlength=\"10\" /></td></tr>
			  <tr><td align=\"right\">Sua Senha:</td><td><input type=\"password\" name=\"senha\" size=\"12\" maxlength=\"10\" /></td></tr>
			  <tr><td colspan=2 align=\"center\"><input type=\"submit\" value=\"Desconectar Conta\" /></td></tr>
			 </table>
			</form>
		   </div>"; 
	if($_GET['Pack'] == "Send") {
	
			$login = $_POST['login'];
			$senha = $_POST['senha'];
			
			function verify_pwd($login, $senha)
			{
				global $SQL_MD5;
				if($SQL_MD5 == FALSE)
				{
					$SQL_Q = mssql_query("SELECT 1 FROM MEMB_INFO WHERE memb___id = '". $login ."' AND memb__pwd = '". $senha ."'");
				}
				else
				{	
					@mssql_query("CREATE PROCEDURE [ChecaSenha] 
								@btInStr VARCHAR(10),
								@btInStrIndex VARCHAR(10)
								AS
								BEGIN 
								DECLARE @btOutVal BINARY(16)
								EXEC master..XP_MD5_EncodeKeyVal @btInStr, @btInStrIndex, @btOutVal OUT
								SELECT memb___id,memb__pwd FROM MEMB_INFO WHERE memb___id = @btInStrIndex AND memb__pwd = @btOutVal
								END
								GO");
					$SQL_Q = mssql_query('exec ChecaSenha "'.$senha.'", "'.$login.'"');
				}
				return mssql_num_rows($SQL_Q);				
			}
			
			$SQL_Q = mssql_query("SELECT IP from MEMB_STAT where memb___id='".$login."'");
			$SQL = mssql_fetch_object($SQL_Q);
	
			if($SQL->IP == $_SERVER['REMOTE_ADDR']) echo "<div class='qdestaques'>Atenção!<br />Para que Você possa utilizar essa opção do site você precisa alterar o Ip do seu computador!<br /><br />Para trocar seu IP você deve se desconectar da internet e conectar-se novamente!<br />Caso você use algum modem para se conectar (modem, hub, roteador e etc.) apenas o desligue por 10 segundos e o Ligue novamente, para se conectar com o novo IP na internet.<br />Essas medidas de segurança é de muita importância para o bem estar do servidor e de seu login!<br />No momento você esta usando o ip: ".$_SERVER['REMOTE_ADDR']."<br />Caso não consiga usar a opção mesmo assim envie um SMS para um Administrador do Mu para que possamos desconectar sua conta!<br />Obrigado!</div>";
			elseif(verify_pwd($login,$senha) == 0) echo "<script>alert('Login ou Senha incorretos.'); window.location='DisconnectPlayer.php'</script>";
			else {
				
				function ascii2hex($ascii) 
				{
					$hex = '';
					for ($i = 0; $i < strlen($ascii); $i++) {
						$byte = strtoupper(dechex(ord($ascii{$i})));
						$byte = str_repeat('0', 2 - strlen($byte)).$byte;
						$hex.=$byte." ";
					}
					$hex=str_replace(" ", "", $hex);
					return $hex;
				}
				function hex2ascii($hex)
				{
					$ascii='';
					$hex=str_replace(" ", "", $hex);
					for($i=0; $i<strlen($hex); $i=$i+2) $ascii.=chr(hexdec(substr($hex, $i, 2)));
					return($ascii);
				}
		
				function disconnect_account($ip,$porta,$login) 
				{
					$pacote = "C11C05"; 
					
					$conta_letras_login = strlen($login);
					$completar_ascii_n = 10-$conta_letras_login;
					
					$espaco_login = str_pad($login, 10, '4');
					$espaco_login = str_replace($login, '', $espaco_login);
					for($i=0; $i < strlen($espaco_login); $i++) $new_espaco_login .= "00";
					
					$pacote .= ascii2hex($login); 
					$pacote .= $new_espaco_login."0000000000000000000000001990011100"; 
				
					$pacote_final = hex2ascii($pacote);
				
					$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
					
					if(@socket_connect($socket, $ip, $porta) == false) echo "<script>alert('Erro de conexão com o Joinserver.'); window.location='DisconnectPlayer.php'; </script>";
					else 
					{
						socket_write($socket, $pacote_final , strlen($pacote_final)); 
						socket_close($socket); 
						echo "<script>alert('Conta desconectada com sucesso!'); window.location='DisconnectPlayer.php';</script>";
					}
				}

				$pingando = shell_exec("ping -n 2 ".$busca_ip[0]);
				if(ereg("Resposta de",$pingando)) echo "<script>alert('Atenção! Voce deve desconectar-se da internet para trocar o seu IP!'); window.location='DisconnectPlayer.php';</script>";
				elseif(ereg("Reply from",$pingando)) echo "<script>alert('Atenção! Voce deve desconectar-se da internet para trocar o seu IP!'); window.location='DisconnectPlayer.php';</script>";
				else disconnect_account($JS_HOST,$JS_PORT,$login);				
		  }
	}	
?>