Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

революционные шутки aol

WOLF D.A. AKA PAYHASH FROM

Спецвыпуск: Хакер, номер #065, стр. 065-008-2


int pos = 2;

int x;

strcpy(rp, "0x");

for (x = 0; (x < 150) && pass[x]; x++)

pos += sprintf(&rp[pos], "%02x", pass[x] ^ roast[x % strlen(roast)]);

rp[pos] = '\0';

return rp;

}

В этой функции нет ничего особенного, так как в ней происходит обычное побайтовое XOR'рирование.

разобрались!

Итак, мы расчленили и пощупали каждый байт в пакете toc_signon протокола TOC v.1. А теперь самое главное ;). В версии протокола TOC v.2 пакета с таким названием нет! Тогда для чего мы его разбирали? Дело в том, что в протоколе TOC v.2 существует такой же пакет, только с другим названием и с другим полем REVISION. Посмотрим на дамп №2 пакета toc_signon, который был описан выше, но теперь в измененном виде протокола TOC v.2.

Дамп пакета №2 — авторизация на сервере TOC (протокол v2)

2A 02 EE CA 00 8F 74 6F 63 32 5F 6C 6F 67 69 6E *.....toc2_login

20 6C 6F 67 69 6E 2E 6F 73 63 61 72 2E 61 6F 6C login.oscar.aol

2E 63 6F 6D 20 32 39 39 39 39 20 39 36 33 36 33 .com 29999 96363

32 20 30 78 31 63 35 64 35 35 37 66 36 36 32 37 2 0x1c5d557f6627

32 64 30 65 20 45 6E 67 6C 69 73 68 20 22 54 49 2d0e English "TI

43 3A 5C 24 52 65 76 69 73 69 6F 6E 3A 20 31 2E C:\$Revision: 1.

31 20 24 22 20 31 36 30 20 55 53 20 22 22 20 22 1 $" 160 US "" "

22 20 33 20 30 20 33 30 33 30 33 20 2D 6B 65 6E " 3 0 30303 -ken

74 75 63 6B 79 20 2D 75 74 66 38 20 33 31 35 38 tucky -utf8 3158

34 33 38 34 00 4384.

Что видим тут? В принципе, изменения не такие уж существенные. Только название пакета toc_signon переделано на toc2_login. Идем дальше. Сервер, порт (может быть любым), идентификатор и пароль остались неизменными (алгоритм кодирования пароля остался прежним). Также не тронуто поле «Язык». Второе, что изменилось, — поле REVISION. Оно стало более громоздким и более содержательным. Так как официального документа по TOC v.2. мы еще не видели (на момент сдачи номера), можно только догадываться, что означает это поле. Посмотрим на строку ниже:

"TIC:\$Revision: 1.1 $" 160 US "" "" 3 0 30303 -kentucky -utf8 31584384.

Представим ее в виде, показанном на таблице №2.

Итак, какие же изменении претерпит функция toc_signon, которая работала при TOC v.1? Думаю, стоит оставить прежнее название функции: нас интересует не то, как ее обозвали, а то, что она делает. Итак, сама функция:

ЛИСТИНГ

#define REVISION "\"TIC:\\$Revision: 1.1 $\" 160 US \"\" \"\" 3 0 30303 -kentucky -utf8 31584384"

static char *encode_toc_signon(char *buf,

const char *screenname, const char *password)

{

char *sflap; char *data;

data=(char *)malloc(256 * sizeof(char *));

memset(data, 0, 256);

buf=sflap=flap_begin(buf, TYPE_DATA);

/*

Here is TOC v1.0 but Blocked by AOL

sprintf(data, "toc_signon %s %d %s %s %s \"%s\"",AUTH_HOST, AUTH_PORT, screenname, roast_password(password), LANGUAGE, REVISION);

*/

// The TOC v2.0

sprintf(data, "toc2_login %s %d %s %s %s %s",AUTH_HOST, AUTH_PORT, screenname, roast_password(password), LANGUAGE, REVISION);

buf=writes(buf, data, strlen(data));

buf=writeb(buf, 0x00);

Назад на стр. 065-008-1  Содержание  Вперед на стр. 065-008-3