Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #71, НОЯБРЬ 2004 г.

Бойцовский кодинг

Александр Шарахов младший

Хакер, номер #071, стр. 071-112-3


<script language="javascript">

alert("Скоро мы завоюем мир!");

</script>

Сохраняем этот файл (C:\Xakep\xakep.htm). Теперь обеспечим запуск этой программы. Для этого откроем в редакторе реестра раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt. Если его нет, создаем. В нем заводи подраздел с названием «Журнал Хакер» (это название появится в Internet Explorer как пункт контекстного меню).

Теперь откроем свежесозданный раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Журнал Хакер, дважды щелкнем на строковом параметре Default и присвоим ему значение C:\Xakep\xakep.htm.

К сожалению, из контекстного меню можно запускать только скрипты JavaScript и VBScript. Наш скрипт имеет доступ к объекту window (окно приложения Internet Explorer, в котором выполняется скрипт) через свойство menuArguments объекта external. Т.е. теоретически наша программа, написанная на языке яваскрипт, может получить все ссылки из окна Бойцовского клуба с помощью вот такой команды:

var links = external.menuArguments.document.links;

Однако просто получить ссылки мало, надо еще и отфильтровать их от всяческого мусора - линков на изображения, счетчики и прочий бред. Первое, что приходит в голову, - это пробежаться по всем линкам в цикле, найти ссылку на подбор вещи и нажать ее. Напрягать мышцы руки для подбора нам не придется, за нас будет работать техника - браузер сам пошлет серверу Бойцовского клуба HTTP-запрос. Отправлять HTTP-запросы с помощью JavaScript не просто, а очень просто:

Отправлялка HTTP запросов

var xmlHTTP;

xmlHTTP = new ActiveXObject("microsoft.xmlhttp");

xmlHTTP.open("GET", links(i).href, false); // links(i).href - это i-я ссылка из верхнего фрейма игры.

xmlHTTP.Send();

Осталось узнать, как же выглядят столь нужные нам линки на предметы. Правой кнопкой мышки щелкаем в верхнюю часть (которая над чатом) Бойцовского клуба и выбираем «Просмотр HTML-кода».

Здесь мы видим, что все ссылки на вещи в Башне имеют вид dtower.pl?get="название вещи", т.е. строка фильтрации может выглядеть, например, так: cheklink=links(i).href.indexOf("r.pl?get="); - и весь скрипт перепишется следующим образом:

Код собиралки вещей в Башне смерти

var cheklink = 0; //если ссылка нужная, то этот параметр больше нуля, инициализация переменной

var links = external.menuArguments.document.links; // выцепляем все ссылки из верхнего фрейма БК

for (i = 0; i < links.length; i++){ // по всем ссылкам из окна БК

cheklink=links(i).href.indexOf("r.pl?get="); //проверяем на полезность

if (cheklink > 0) { //если ссылка на вещь в БК

var xmlHTTP;

xmlHTTP = new ActiveXObject("microsoft.xmlhttp");

xmlHTTP.open("GET", links(i).href, false); // то мы ее забираем

xmlHTTP.Send();

cheklink = 0; //заново обнуляем переменную

}

}

Чтобы скрипт заработал, сохраняй его как C:\Xakep\xakep.htm. Теперь, зайдя в Башню смерти, ты можешь собрать все вещи в комнате, просто кликнув правой кнопкой мышки в верхнем фрейме (где лежат вещи) и выбрав «Журнал Хакер». Все вещи в комнате будут сразу положены тебе в рюкзак. После этого надо зайти в инвентарь, надеть на себя все что можно и перейти в следующую комнату.

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