UNITSАнтон «ant» Жуковfaq@real.xakep.ruunitedQ: Крис Касперски в свое время приводилдельный способ урезать Windows — удалитьвсе файлы, у которых дата и время обращения кним не отличаются от даты установки системы.Я попытался написать прогу, которая делала быэто автоматически, но, как оказалось, извлечьMAC (Modified, Access, and Change) — не такаятривиальная задача. Обычные функции дляуправления файлами с этим справиться не могут.Как быть?A: Если тебя не переполняет желание ковырятьсяс таблицей MFT и ее структурами (атам есть подводные камни, поверь мне), толучше в качестве помощника использоватьутилиту mac-robber (www.sleuthkit.org).Тулза mac-robber четко занимается тем, чтосчитывает атрибут MAC для всех файлов всистеме. К тому же она написана автором известногонабора приложений The Sleuth Kit(TSK), предназначенных для самого подробногоизучения жесткого диска. Они тебе тожепригодятся: если все же захочешь поковырятьсяс MFT, то для лучшего понимания хорошобы сначала поработать со структурированнымиотчетами, который подготовят TSKи прога ProDiscover (www.techpathways.com/DesktopDefault.aspx?tabindex=3&tabid=12).Q: Как проще всего установить модуль кPython'у?A: Для того, чтобы скачать, собрать, установитьили обновить модули, есть специальныйинструмент setuptools. Необходимые инструкциии файлы-инсталляторы для разных ОС тывсегда найдешь на сайте pypi.python.org/pypi/setuptools. Под виндой подключения новогомодуля к интерпретатору выглядит следующимобразом:1. После установки setuptools в папке со сценариямиу тебя появляется скрипт easy_install,а также его скомпилированная версия в видеexe’шника. Название говорит само за себя —решение используется для простой инсталляцииновых модулей. Это как менеджер пакетовдля системы.2. С этого момента любой модуль устанавливаетсяпростой командой через консоль:easy_install [название модуля]. В этом случаевсе необходимые файлы закачиваются из репозитория.Помимо этого, можно указать ссылкуна архив и/или egg-пакет (специальный форматдля библиотек Python) с модулем:easy_install example.com/path/to/MyPackage-1.2.3.tgz.Q: Как проще всего определить, что PDF-файлзаражен, не заморачиваясь с хитрыми утилитами,которые не дают четкого ответа, а выплевываютпромежуточную информацию для анализаспециалистом. Хочу простого ответа — зараженфайл или нет.A: Самый простой инструмент в этом плане— утилита PDF Scanner (blogs.paretologic.com/malwarediaries/CL_PDF_Scanner.zip). Навход ей подается документ в формате PDF, а навыходе она выдает один из трех вердиктов:1. «nothing found» (файл чист);2. «potential risk — JavaScript code» (в файлеесть JS-вставки, которые могут быть опасны);3. «suspicious file» (файл содержит опасныевставки, используемые, как правило, малварью).Если есть желание поэкспериментировать,попробуй скормить программе пару «плохих»файлов с зараженных доменов из списка,140 XÀÊÅÐ 08 /139/ 10
обновляемого на сайтах malwaredomainlist.com и mdl.paretologic.com.Q: Говорят, в чате Skype есть команды а-ля IRC.Так ли это?A: На самом деле чат в Skype — это почти тот жесамый IRC-канал. Многие средства для управленияканалом реализованы в самом GUI-интерфейсе,но некоторые вещи можно сделатьтолько с помощью специальных команд. Ниже— наиболее важные из них:/add [username] — добавить пользователяusername к чату./leave — покинуть чат./topic [text] — установить топик канала./get guidelines — просмотр так называемыхguideline'ов, то есть правил чата/kick [username] — удаление пользователяиз чата./kickban [username] — собственно, kick ибан./set è /set banlist — управление спискомпользователей, которым запрещено присоединятьсяк чату./set è /get allowlist — управлениемсписком пользователей, которым разрешеноприсоединяться к чату./setrole [username] MASTER | USER |LISTENER — установка определенной роли дляпользователя.Последняя команда требует пояснения: что означаютроли в Skype? CREATOR и MASTER — это чтотовроде модераторов. USER — самый обычныйпользователь чата. LISTENER — юзер, которыйучаствует в чате в режиме «только чтение».Q: Во многих местах стал встречать векторныеграфики и рисунки, которые здорово выглядяти при этом созданы без применения Flash- иSilverlight-технологий. Все, что используется —JavaScript. Но неужели все это пишется с нуля?A: Специально для того, чтобы упростить работус векторной графикой, разработан приятныйфреймворк Raphael (raphaeljs.com). Разработкаучитывает рекомендации W3G по форматуSVG, а также использует стандартизированныйVector Markup Language (язык векторной разметки).Это означает, что любой графическийобъект, созданный с помощью Raphael, являетсяпривычным DOM-объектом. Ты можешьлегко обращаться к нему из любого JavaScriptсценария,назначать обработки событий —короче говоря, без проблем использовать его.Для примера создадим на странице окружностькрасного цвета:XÀÊÅÐ 08 /139/ 10Мощный инструмент для детально изучения информации на HDD// Ñîçäàåì ïîëîòíî äëÿ ðèñóíêà 320 x200 â íà÷àëüíîé òî÷êå ñ êîîðäèíàòàìè10, 50var paper = Raphael(10, 50, 320,200);// Ðèñóåì íà ïîëîòíå îêðóæíîñòü â x,y= (50, 40) è ðàäèóñîì = 10var circle = paper.circle(50, 40,10);// Çàëèâàåì îêðóæíîñòü êðàñíûì (öâåòîì#f00)circle.attr("fill", "#f00");Ни на грамм не сложнее создать с помощьюRaphael любую другую фигуру, а потом манипулироватьею. Столь простой подход позволяет,например, реализовать красивые динамическиеграфики и диаграммы, используя чистыйJavaScript в той области, где традиционноиспользовался Flash. Это общий тренд технологииHTML 5.Q: Можно ли по PCAP-дампу с отснифанным влокалке трафиком построить схему локальнойсети?A: Если речь идет о сложной сети, то, вероятнеевсего — нет. Но эти данные могут статьотличной отправной точкой для анализа.По крайней мере, они содержат данные овалидных диапазонах IP-адресов. Кстати, автоматизироватьсбор данных о локальной сети,имея дамп с трафиком, умеет перловый скриптnwmap (nwmap.sourceforge.net). Для работыему потребуется установленный сканер Nmap исниффер Tshark.Q: Дано: embedded-девайс, который надо перепрошить.По идее, можно кинуть на флешкуфайл с прошивкой и вставить его в USB-разъемустройства. Однако девайс ее почему-то не видит.Первая мысль — флешка на NTFS, поэтому,наверное, и не может прочитаться. Но, отформатировавв FAT с помощью винды, я так ничегоне добился. Есть идеи, как решить проблему?A: Скорее всего, девайс понимает только FAT/FAT32. Чтобы правильно отформатироватьфлешку, часто недостаточно встроенного ввинду. А вот кто точно справится — это утилитыHP USB Disk Storage Format Tool или PE2USB. Уних нет домашних страниц, но бинарники легкоищутся через Google.Q: Экспериментируя с малварью, уперся в тупик.Тело загрузчика определяет, что запущенов виртуальном окружении (я юзаю VMwareWorkstation) и не заражает систему. Меняинтересует методика. Хочу также использоватьподобные механизмы в своих разработках.Есть ли конкретные рецепты, как определитьприсутствие виртуалки?A: Многие загрузчики проверяют, выполняютсяли они в среде виртуальной машины, простосчитывая содержимое регистра LDTR. В немсодержится селектор сегмента, в котором располагаетсялокальная таблица дескрипторовсегмента, необходимая для вычисления линейногоадреса из пары «селектор сегмента — смещение».Сама Windows давно не используетлокальные таблицы дескрипторов сегментов,и поэтому заполняет регистр LDTR нулевымзначением. А вот виртуальные машины, в томчисле VMware — используют. Получается совсемпростая проверка: есть значение регистраLDTR, отличное от нуля, значит, выполнениепроцесса осуществляется в виртуальномокружении. К тому же для получения значениярегистра используется инструкция SLDT (StoreLocal Descriptor Table Register), которая неявляется привилегированной и поэтому можетбыть выполнена в ring-3 любым приложением.Резюме вышесказанного: для определениявиртуалки программе достаточно вызватьинструкцию SLDT и посмотреть, отличается липолученное значение от нуля.Q: Заметил следующий факт: многие самодельныеCAPTCHA совершенно нечитаемы. Абсолютнонепонятно, какой конкретно изображен141