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

FAQ

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

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

(faq@real.xakep.ru)

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

Q: Вот уж не думал, что когда-нибудь доведется поработать с Mac’ом. Ан нет, в университет привезли аж несколько штук. Теперь вот озадачен: то ли серфить инет в поисках варезного софта, то ли попробовать установить что-нибудь более родное, привычное. Ведь можно же как-нибудь запустить виндовые или хотя бы никсовые приложения под Mac OS X?

A: По всем видимости, тем же самым вопросом озадачилось и еще несколько людей, усилиями которых был воплощен в жизнь проект Fink (www.finkproject.org). Толковые разработчики взяли да и модифицировали известные программы для никсов таким образом, чтобы те могли компилироваться и работать в Mac OS X. А потом запихнули их в удобную оболочку, чтобы пользователю не нужно было ломать голову над компиляцией приложений. Всю грязную работу берет на себя автоматический сборщик, использующий dpkg и apt-get для эффективного управления бинарными пакетами. Закачать Fink ты можешь с официального сайта, но перед инсталляцией проверь, установлен ли в системе X11.

Вообще, Fink — это всего лишь опрятное окошко с огромным списком программ, любую из которых ты можешь установить, кликнув в меню «Binary –> Install». Тулза сама определит все зависимости и установит дополнительные библиотеки в случае необходимости. Теперь тебе остается только открыть терминал и набрать в консоли имя программы. И черт подери, оно действительно работает! Подробный мануал с картинками ты найдешь на сайте www.simplehelp.net.

С приложениями Windows дела обстоят намного хуже. Тут варианта два: либо использовать виртуальную машину (www.apple.com/macosx/applications/virtualpc), либо же - хитрую связку 2X ApplicationServer (www.2x.com), состоящую из сервера приложений (запущенного на Windows) и специального клиента (на Mac OS X).

Q: Каким образом в приложении, написанном на Flash, можно реализовать поддержку MySQL-базы данных? Нужно импортировать из базы некоторые данные.

A: Чтобы реализовать импорт данных из MySQL-базы данных обычными средствами Flash, потребовалась бы масса усилий. Однако сейчас уже есть готовые драйверы-насадки на Action Script, которые почти полностью выполняют работу за тебя. Я имел дело с asSQL (http://maclema.com/assql), но это не единственный вариант. Проблемы в реализации подобной штуковины две. Поскольку Flash-приложение выполняется на стороне клиента, то и запросы к базе данных будут поступать извне. Это значит, что сервер уже нельзя будет сделать исключительно локальным и спрятать за файрволом: его придется оставить открытым со всеми вытекающими последствиями. Второй вопрос заключается в том, где хранить адрес сервера, логины и пароли для доступа к БД? Хранить их в открытом виде в swf-файле – сумасшествие, поскольку его легко можно декомпилировать. К счастью, автор решил эту проблему с помощью механизма скремблирования.

Q: Объясните, пожалуйста, на пальцах смысл следующих понятий: динамическая библиотека, PE-файл, оверлей, таблица импорта, точка входа, RVA-адрес. Они встречаются у вас чуть ли не в каждой второй статье, но смысл их по-прежнему остается для меня загадкой.

A: PE – это, вообще, сокращение от Portable Executable, то есть PE-файл является портируемым и исполняемым. Тот, который запускается и исполняется, а это все exe- и dll-файлы в 32- и 64-битных редакциях Windows.

Динамическая библиотека — это тоже PE-файл, экспортирующий (то есть предоставляющий для наружного использования) функции, глобальные переменные и/или ресурсы (такие как, например, пиктограммы). Динамическая библиотека может быть загружена (и использована) программой сразу при старте или по мере необходимости (например, функции печати могут быть помещены в динамическую библиотеку, загружаемую только при печати документа и затем выгружаемую из памяти).

Оверлей применительно к PE-файлу – это та часть файла, которая находится на диске (не проецируется в память системным загрузчиком), но может считываться самой программой через обычные функции файлового ввода-вывода. Обычно в оверлей помещают отладочную информацию, различные сертификаты и т.д.

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

Точка входа — это смещение от начала исполняемого файла, с которого начинается его выполнение.

RVA-адрес – это относительный виртуальный адрес (Relative Virtual Address). Виртуальным адресом (Virtual Address) называется один из адресов внутри адресного пространства, выделенного системой процессу. Базовым адресом (Base Address) называется адрес, по которому exe-файл или динамическая библиотека загружены в виртуальное адресное пространство. Соответственно, относительным виртуальным адресом называется разница между виртуальным и базовым адресами.

Q: Подскажи, где найти portable-версию Skype, чтобы всегда носить с собой на USB-флешке?

A: Можно долго ругать разработчиков Skype за то, что программа генерит огромное количество трафика и что на сервер отправляется информация о железе, установленном на компьютере. Но зато первые версии Skype можно было легко портировать с помощью специальных ключей, изначально заложенных в программу. Порядок действий такой:

1. Качаем старую версию Skype 1.4 (ищем в Гугле).

2. Устанавливаем ее и копируем папку с программой на флешку.

3. В папке создаем новую директорию — data, в которой будут храниться всевозможные данные.

4. И далее запускаем Skype следующим образом:

skype.exe /datapath:"Data" /removable

С новыми версиями такой фокус уже не пройдет, хотя на portableapps.com иногда попадаются полуработающие варианты. А вообще, подумай, оно тебе надо? Ведь можно не париться со Skype и смело использовать онлайн-сервис www.jajah.com. Это настоящий убийца Skype, который работает на ура, требует только браузер и предлагает выгодные тарифы звонков на обычные телефоны.

Q: В последнее время всерьез взялся за раскрутку и оптимизацию сайтов (Search Engine Optimization, SEO). Сейчас легко поднимаю $300 в месяц, но хочется большего. Опыта пока мало, поэтому прошу подсказать, какие инструменты могут быть полезными в моей работе?

A: Поделюсь некоторыми мыслями. Многие поисковые серверы сейчас поддерживают так называемые карты сайтов (sitemap). Это небольшой файлик, в котором владелец ресурса указывает основные разделы сайта и ссылки на них. Во время кэширования поисковый робот скачивает его и далее использует во время выдачи результатов поиска. Выгода на лицо. Во-первых, вместо одной ссылки на твой сайт, в результатах будут отображаться сразу несколько, и пользователь сможет сразу перейти к нужному разделу. А во-вторых, грамотно составленный sitemap серьезно укрепляет позиции твоего ресурса и поднимает его в результатах поиска. Составить sitemap — дело на 15-20 минут, особенно если под рукой есть такой полезный инструмент, как www.xml-sitemaps.com.

Двигаемся дальше. Самый верный способ поднять позицию своего сайта в результатах поиска — оптимизировать его именно под те ключевые слова, по которым пользователи будут искать твой ресурс. Например, юзеры используют в качестве ключевого слова «автомобиль» намного чаще, чем «машина». Статистика запросов доступна в открытом виде на сайтах самих поисковых систем (у Яндекса это wordstat.yandex.ru), но просматривать ее придется вручную. Гораздо удобнее это делать с помощью специального плагина для Firefox — The SEO for Firefox Extension (http://tools.seobook.com/firefox/seo-for-firefox.html). Тем более что в его арсенале еще куча полезных инструментов.

Не надо объяснять, как важно владеть информацией. Вот лишь несколько вопросов, которые должен задавать себе грамотный SEO’шник. Какие поисковые слова задействовали пользователи при переходе на твой сайт? С каких ресурсов осуществлялся переход? Какие разделы чаще всего посещают? Ответы на эти вопросы могут дать многие вспомогательные инструменты. Особую популярность снискал сервис Google Analytics (www.google.com/analytics), который на днях претерпел серьезный апгрейд. Однако некоторые профи отдают предпочтение HitTail (www.hittail.com), выдающему результаты в реальном времени.

Содержание