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

FAQ

Степан «Step» Ильин

Хакер, номер #103, стр. 126

(faq@real.xakep.ru)

Задавая вопрос, подумай! Не стоит мне посылать вопросы, так или иначе связанные с хаком/кряком/фриком, для этого есть Hack-Faq (hackfaq@real.xakep.ru); не стоит также задавать откровенно ламерские вопросы, ответ на которые ты при определенном желании можешь найти и сам. Я не телепат, поэтому конкретизируй вопрос, присылай как можно больше информации.

Q: Расскажите, что такое Google Gears? В последнее время разработка все чаще упоминается в новостях, но никто не может по-русски объяснить, что собой она представляет.

A: А мы объясним! Google Gears — это ранняя версия специального расширения для браузера, позволяющего веб-приложениям работать без выхода в интернет. Иначе говоря, имея в распоряжении браузер (Google Gears работает на Firefox 1.5+, MSIE 6+ и всех доступных платформах) и онлайн-приложения, адаптированные под Google Gears, ты легко сможешь использовать их полностью оффлайн. Пример тому — популярный сервис для составления списков дел (todo list) www.rememberthemilk.com. Быстро привыкнув к этому замечательному органайзеру, напоминающему мне о важных делах, я очень обламываюсь, когда не могу добавить новые контакты или задачи на день из-за отсутствия доступа в инет. Теперь же вполне реально пользоваться им даже без инета (причем для этого точно так же применяется обычный браузер — никаких внешних отличий нет). Внесенные изменения добавятся в базу онлайн-сервиса, как только появится инет.

Приятно, что Google Gears (http://code.google.com/apis/gears) — это приложение с полностью открытыми исподниками. Сказочный эффект достигается за счет трех компонентов: LocalServer (специализированный кэш, перехватывающий обращения оффлайн-приложения к интернету и доставляющий ему затребованное содержание с локального диска), Database Module (реляционная база данных на основе SQLite, хранящая пользовательские данные на локальном диске), WorkerPool (механизм исполнения сценариев в фоновом режиме, повышающий быстродействие пользовательского интерфейса web-приложения). Разработчик должен сам позаботиться, чтобы его приложение могло работать с Google Gears: подготовить js-файл-манифест и закачать его и еще три файла (два html и один js) на сервер. Подробно этот процесс описан в Google Gears API Developer's Guide (Beta).

Q: Подскажи простой способ сделать минусовку песни (убрать из композиции вокал, оставив только инструментальную составляющую)?

A: Полностью удалить вокал, не повлияв на инструментальную составляющую, реально только для стереотреков, но не всегда. В большинстве случаев на оба канала накладывается один и тот же семпл вокала, то есть вокальная составляющая у обоих каналов получается в точности одинаковая. В этом случае можно удалить вокал, просто «вычитая» один канал из другого. Это легко реализуемо в любом музыкальном редакторе, например в бесплатном Audacity (audacity.sourceforge.net):

1) импортируй нужную композицию;

2) зайди в меню трека (для этого надо кликнуть по стрелочке справа от названия композиции) и кликни на «Разделить стереодорожку»;

3) выбери правый канал (кликни по нижней дорожке) и инвертируй его через меню: «Эффекты -> Инвертировать»;

4) в меню трека для каждой дорожки выстави режим «Моно».

Ну и, в конце концов, наслаждайся результатом. Впрочем, даже если ничего из этого не получилось, расстраиваться рано. Для Audacity есть отличные плагины kn0ck0ut (www.freewebs.com/st3pan0va) и Voicetrap (www.cloneensemble.com/vt_main.htm), способные решить задачу с более сложными начальными условиями.

Q: Беспокоюсь за сохранность своих данных, когда работаю на чужом компьютере. Дома-то у меня и антивирус, и файрвол, и все обновления установлены, и браузер я по вашему совету выбрал самый безопасный. Совсем другое дело на компьютере у подружки или в университете — ничего подобного там и в помине нет. А ведь легко можно зайти на какой-нибудь сайт, подцепить трояна и распрощаться с аськой, профиль которой был на вставленной в компьютер флешке. Есть ли выход из этой ситуации? Как обезопасить серфинг в таком случае?

A: Ну что же ты, приятель, такой эгоистичный. Настроил бы подруге компьютер как надо - может быть, и у нее никакие аськи не увели бы. А если серьезно, то в твоем случае можно порекомендовать специальные онлайн-антивирусы. Они работают по принципу промежуточного прокси и тщательно проверяют весь запрошенный тобой трафик. В случае обнаружения малвари, они тут же реагируют, вырезают опасный кусок кода из страницы и возвращают тебе ее уже обезвреженной, выдав соответствующее предупреждение. Подобную заботу проявляет, например, бесплатное решение SpyBye (www.spybye.org). От тебя требуется только прописать в настройках браузера прокси-сервер с нужным портом: www.spybye.org:8080. В базе программы собрано очень много кода, способного навредить твоему компьютеру. Более того, программа снабжена эвристическими механизмами и интегрируется с авторитетным сканером ClamAV. Само собой, от всех бед она не спасет, но то, что она способна обезопасить серфинг, где бы ты ни был, — это точно!

Q: Подскажите, как подключить плагин CommandBar в OllyDbg? Августовский номер журнала за 2005 год (статья «Крякинг — это просто»): на диске прогу нашел, но как подключить плагин, не понял.

A: Легче всего просто распаковать DLL-библиотеку из архива с плагином в папку с OllyDbg. Но когда плагинов становится много, эта груда библиотек начинает напрягать, поэтому рекомендую предупредить беспорядок и создать для расширений отдельную директорию. Скинув туда файлы плагинов, останется только прописать ее в настройках отладчика: «Options -> Appearance -> Directories -> Plugin path». Напомню, что с помощью этого плагина пользователь получает в распоряжение консоль для быстрого ввода команд. Правда само расширение, доступное на официальном сайте, уже устарело. Намного более симпатично смотрится ее улучшенная версия — Modified CmdLine. Среди новых команд — очень полезная LOADDLL, которая оперативно загружает динамическую библиотеку в контекст отладчика. Не могу не упомянуть несколько других, менее известных, но очень полезных плагинов:

Conditional Branch Logger — расширение, которое создает логи, отображающие последовательность выполнения программы, причем особенный акцент делается на инструкции условного перехода. Очень удобная штука для анализа того, как меняется логика работы приложения в зависимости от изменения входных параметров и условий.

StollyStructs — вспомогательный плагин, который наглядно покажет любую структуру данных. В базе по умолчанию забито около 1200 стандартных виндовых структур данных.

Uhooker — универсальный перехватчик. Позволяет перехватить обращения к API-функциям, причем не только внутри программы, а еще и внутри подгружаемых DLL-библиотек.

Все эти и множество других плагинов доступны для закачки на сайте www.woodmann.com/ollystuph. Они же будут на диске.

A: Каким образом отлаживают сценарии JavaScript?

A: Утилит и средств разработки для отладки довольно много. Причем существуют инструменты, поддерживающие отладку как на стороне сервера, так и на стороне клиента. Если речь идет о простом AJAX-проекте, то разумнее всего просто использовать возможности браузера.

Firefox, Mozilla и Netscape имеют встроенный отладчик Venkman, который можно вполне эффективно использовать. Но по возможностям этот дебаггер и рядом не стоит с тем, что предлагает FireBug (www.getfirebug.com). Расширение для Mozilla Firefox предоставляет удобную среду для пошагового выполнения скриптов, справочную информацию для AJAX-кодера, браузер DOM и возможность посмотреть HTTP-запросы и ответы (естественно, включая XMLHttpRequest).

Safari также имеет встроенный отладчик, правда его предварительно нужно активировать. Инструкцию к действию ты найдешь в Safari FAQ (developer.apple.com/internet/safari/faq.html).

Для старого доброго Internet Explorer существует специальный тулбар Internet Explorer Developer Toolbar (www.microsoft.com).

В случае если отлаживаемый скрипт очень простой и нет времени на установку всех этих приблуд, поможет дедовский прием, основанный на использовании функции alert(). Вставь ее в нужные места, а в параметрах укажи переменные, которые необходимо отслеживать, и все. Теперь их значения будут отображаться в виде всплывающих окошек прямо в ходе выполнения скрипта в любом браузере!

Содержание