Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   -= Perl+ПодделываниеПакетов+tcp =- (https://forum.antichat.xyz/showthread.php?t=85967)

KENNY_McCORMICK 24.09.2008 12:48

-= Perl+ПодделываниеПакетов+tcp =-
 
Возникли трудности при подделывание пакета )
need HELP

Дано:
Есть программа garena.exe которая использует TCP/IP коннект к серверу
Задача:
Написать свой клиент для этого сервера
Решение:
1) я сосниффил пакеты, которые програма отправляет серверу и получает от него... вот часть:

*.exe отправляет серверу:
Код:

00000000  01 00 00 00 6A                                    ....j
Ответ сервера:
Код:

00000000  06 00 00 00 6A C5 20 40  40 01                    ....j. @ @.
2) я написал маленькую программку на PERL'e
Код:

#!/usr/bin/perl
use Socket;
$host="us4.auth.garena.com";        #tipa host
$port="7456";        #port
$packet = pack ("H*", '01 00 00 00 6A'); #Формируем пакет

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);        # Получаем IP (67.228.162.187)
#$iaddr = 67.228.162.187; # это если знаем IP
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send (SOCK, $packet, 0); #отправляем пакет
while (){
        recv (SOCKET, $buf, 1514, 0);                  #считываем пакет
        print unpack ("H*", $buf), "\n\n";        #вывод в hex
}
close(SOCK);

Пакет отправляется, но ответа НЕТ(
Сниффер так же ответа не увидел...
в чём трабл?

Digimortal 24.09.2008 13:47

Там цикл while не нужен, ты посылаешь пакет в хэндл 'SOCK', а читаешь из 'SOCKET' (use warnings!), читать надо 10 байт, а не 1514. Кстати, заместо Socket удобней использовать IO::Socket::INET.

svesve 24.09.2008 13:58

Tc а что планируешь написать? =)

KENNY_McCORMICK 24.09.2008 14:01

дык Я читаю сниффером... while вообще убрал!
ответа всё равно нет!

Разницы же нет, что use socket, что use IO::Socket::INET.... ответа тутю(

Почему сервак не отвечает на мой пакет?

KENNY_McCORMICK 24.09.2008 14:05

Цитата:

Сообщение от svesve
Tc а что планируешь написать? =)

garena.com и его клиент GGC(garena)
GGC = софтинка для игры в wc3, CS, StarCraft...
При ping ~ 0
Хочу написать свой клиент вместо garena.exe , чтоб использовать его в целях Liga_BOT, Room Moderator.

Digimortal 24.09.2008 14:29

>> Почему сервак не отвечает на мой пакет?

А пакет, передаваемый скриптом полностью аналогичен тому, что передает клиент?

Кстати говоря:
>> отправляет серверу и получает от него... вот часть

Надеюсь, это самая начальная часть лога? )

p.s. А еще:

$packet = pack ("H*", '010000006A'); #Формируем пакет без пробелов!

KENNY_McCORMICK 24.09.2008 14:38

1) Да

2) Да самое начало

KENNY_McCORMICK 24.09.2008 14:50

Цитата:

Сообщение от Digimortal
p.s. А еще:

$packet = pack ("H*", '010000006A'); #Формируем пакет без пробелов!

ААААААААА!! СПАСИБО!
РЕСПЕКТ!
ДВА дня мучался! оказалось это из-за пробелов!!!
ЛОВИ +


Время: 09:08