Владислав Кабак | Omegicus CIO

NebKa

Мой совет:

Блины будут более рыхлыми (но и более толстыми), если в тесто сначала положить желтки, а несколько позже добавить взбитые в пену белки.


читать далее »

Анекдот

На вопрос “Пользуетесь ли вы Интернетом?” утвердительно ответили 100% россиян. Таков результат опроса, проведенного недавно в Интернете.


читать далее »

Анекдот

Они были такие романтичные, что над их перепиской ВКонтакте плакало даже ФСБ


читать далее »

Как покрасить яйца к Пасхе


читать далее »

Плед из толстой пряжи (спицы)

В этот небольшой уютный вязаный плед так и хочется завернуться! Трудно представить, как же выше обходились без него. Этот плед связан из неровной толстой пряжи яркой расцветки. А по краю он обшит элегантной лентой подходящего цвета. ЧТОБЫ



читать далее »

Жакет -болеро спицами

 



читать далее »

Сериалы: Мир дикого запада

Вышла очередная серия отличного сериала "Мир дикого запада". В центре внимания сериала оказывается небольшой парк развлечений, который специализируется на показе крутых гаджетов, роботов и прочей техники, которая призвана помогать человечеству. В этом заведении андроиды работают как



читать далее »

Декор на входных дверях....

Купили квартиру,но ремонт пока начали с задних комнат,до комнаты дочки не дошли пока,а двери в её комнату,очень обыденно смотрятся(( Вот перерыла интернет и нашла котиков таких симпатюлей)) Так как дочке кошечки нравятся,вот и решила ей


читать далее »

Анекдот

Сегодня положил кому-то ошибочно 200 рублей на телефон, посмотрел на номер и, чтоб не обидно было, отправил вдогонку смс: "За шикарный секс!"


читать далее »

Человек

В состав человеческого организма входит всего 4 минерала: апатит, арагонит, кальцит и кристобалит.


читать далее »

Интересные идеи для декора одежды. Переделки.

Здравствуйте, милые дамы! Предлагаю Вам посмотреть всевозможные идеи по самодельному декору своего наряда, внесению в него стильной нотки и небольшие мастер-классы по созданию изящных аксессуаров :) При помощи молний можно создавать неповторимые броши, которые стильно пополнят



читать далее »

Анекдот

Народная мудрость: если вас топят соседи снизу, значит, у них там ващекапец!


читать далее »

Животные

Петух не может петь, если не вытянет шею.


читать далее »

Анекдот

Семидесятивосьмилетняя Клавдия Петровна прекрасно знала, что на нее никто не подумает, поэтому спокойно жгла кнопки в лифте.


читать далее »

Корзинки из картона от Тани Павловны. Мастер-класс

Очень понравились корзинки из картона, которые создает мастерица Таня Павловна. Хочется повторить, просто терпения нет, так хочется) Спасибо автору за мастер-класс! Текст автора: Начинаем изготовление корзинки с определения ее размеров. Я решила сделать ее 19 на 13



читать далее »

Человек

Самые короткоживущие клетки человеческого организма - клетки кишечного эпителия. Ежедневно погибает около 70 миллиардов этих клеток.


читать далее »

Браслет из старых джинс

Для изготовления джинсового браслета вам потребуется:   - джинсовая ткань;- игла + нить;- большие декоративные бусины желаемого цвета;- ножницы.   Браслет из старых джинс шаг за шагом:   Для начала нужно отрезать полосу от джинсовой ткани шириной приметно 3-4 см. Длину



читать далее »

Шраг спицами. Схема+ описание

Шраг связан спицами №10. Схема вязания     



читать далее »

Узор для юбки крючком. Схема



читать далее »

Наука

Арабские числа на самом деле не арабские, они были изобретены в Индии.


читать далее »

Как сделать пышный цветок канзаши

Мастер-класс Влады Звягиной. Сделать пышный цветок канзаши своими руками — легко и просто! В этом фото мастер-классе я с удовольствием покажу процесс изготовления. Фото 1. Материалы, которые понадобятся для изготовление пышного цветка канзаши. Ширина атласной ленты — по вашему желанию. Фото 2. Пышный цветок,



читать далее »

«РВАНАЯ » ЮБКА-ПОЯС БОХО СВОИМИ РУКАМИ

Как назвать эту ВЕЩЬ? Пояс? Юбка? И то и другое, смотря с чем носить — леггинсами, длинной юбкой или джинсами. Шьется просто, из всего, что есть в доме, главное, чтобы хаос не перешел в безвкусицу…   Источник: http://www.boholife.ru/rvanaya-yubka-poyas-svoimi-rukami/



читать далее »

Мастер-класс: Брошь цветок из фоамирана

Фоамиран очень податливый и легкий в работе материал. Сделать из него цветок сможет даже человек никогда до этого не державший этот материал в руках. Автор: Ирина Лысенко Нам понадобится: Фоам двух цветов (зеленый и любой другой цвет) Бульки (или крупные бусины



читать далее »

Декоративные пуговицы из соленого теста (мастер-класс)

Фигурки из соленого теста иногда имеют непривычный вид. Например, из этого материала можно сделать пуговицы. Научившись лепить пуговки из соленого теста, вы сможете интересно украсить ими любые вещи.   Для изготовления пуговок из соленого теста нам понадобятся: соленое



читать далее »

Природа

Один берег реки Урала находится в Европе, другой - в Азии.


читать далее »

Обвязка края изделия помпонами

Слова автора  Vesta Klyuchinskaya Здравствуйте Дорогие вязальщицы, это мой первый МК, поэтому я как говорится "волнуюсь", ну что ж долой волнение - приступаем!! :))) Сегодня я хочу поделиться одним очень интересным методом обвязывания края изделия, а точнее обвязка



читать далее »

ЛЕТНИЙ ЖАКЕТ КРЮЧКОМ. Схема и описание

Источник: http://barrellab.ru/letniy-zhaket-kryuchkom.html?scheme=true



читать далее »

Американцы придумали портативный боевой лазер

Исследователи в США разработали оригинальную схему, благодаря которой можно будет получать лазерный луч, достаточный для сжигания цели, от сравнительно небольшого и лёгкого устройства.Лазерное оружие Excalibur — это проект агентства по перспективным оборонным исследованиям Пентагона (DARPA). Инженеры намерены получить


читать далее »

Нарцисс в технике квиллинг. Мастер-класс

Для создания нарцисса в технике квиллинг вам потребуется:   - полосы шириной 3 мм и длиной 20 см; - полоса шириной около 7 мм; - проволока, клей.   Нарцисс в технике квиллинг шаг за шагом:   Начинайте с создания элементов в виде лепестков.



читать далее »

Анекдот

Девушки порой такие скрытные: Имя: ЕкатеринаФамилия: СКРЫТОДата рождения: СКРЫТОE-mail: ivanova1985@mail.ru


читать далее »

Домашний офис на 1 квадратном метре

Источник: http://shp.mirtesen.ru/blog/43438733667/Domashniy-ofis-na-1-kvadratnom-metre?utm_campaign=transit&utm_source=main&utm_medium=page_17&pad=1



читать далее »

Передвижной столик своими руками. Делаем мебель вместе с BOSCH

 



читать далее »

Гарантированное возмездие: как работает российская система "Периметр"

Главным сдерживающим фактором Третьей мировой войны является наличие у России системы, позволяющей нанести ответный ядерный удар даже при полном уничтожении командных пунктов и линий связи РВСН. Называется она "Периметр", в США ее прозвали "Dead hand"    "Периметр"


читать далее »

Делаем тычинки для бумажных цветов быстро и просто

Автор мастер-класса :  Осадча Наталья  В этом мастер классе я подробно расскажу и покажу один из способов создания тычинок для цветов. Для создания тычинок вам понадобятся: клей ПВА нитки типа "Ирис" крахмал любая рамка от фото ножницы Источник: http://www.livemaster.ru/topic/962635-delaem-tychinki-dlya-bumazhnyh-tsvetov-bystro-i-prosto?msec=57



читать далее »

Бохо стиль...

Бохо стиль в одежде – странный, загадочный, необычный, романтичный. Это прежде всего стиль для смелых, для тех кто любит смелые эксперименты и наделены отменным вкусом, потому что бохо стиль предполагает умение сочетать казалось бы совсем



читать далее »

Шьем юбку из банданы.

Здравствуйте, милые мастерицы ! Предлагаю Вам рассмотреть мастер-класс по пошиву юбочки из нескольких бандан.   Уже по радостному виду этой модницы понятно, что юбочка удалась :)) Так как банданы стоят мало, то можно сшить из них юбочки различных оттенков



читать далее »

Делаем подвеску в виде листика из меди в технике wire wrap

Автор мастер-класса:   Татьяна Малейчук ( Wire Wrap) Как напоминание о прекрасной осенней поре, предлагаю сегодня сделать вот такую вот подвеску в виде листика "Очарование осени" в технике wire wrap :) 1. Для работы нам понадобятся: - собственно медная проволока


читать далее »

Из картона. Подставка для охлаждения ноутбука. Своими руками

"Ноутбук на базе процессора AMD Turion, когда купил, говорили, что это глючная серия и предлагали сдать. Теперь мучаюсь - старый-старый уже ноут, и греется. Один из вариантов - купить подставку для охлаждения ноутбука, но нет



читать далее »

Мой совет:

Только что выглаженные вещи не следует сразу класть в шкаф. Нужно дать им остыть, иначе они помнутся и потеряют форму.


читать далее »

Контейнер из пластиковых бутылок

Такой самодельный контейнер из пластиковых бутылок будет отличном местом хранения любой вещицы в вашем доме. Для изготовление такого контейнера нам потребуется: пластиковая бутылка; ножницы; нитки; ткань на ваше усмотрение; тесьма для декора; шило или толстая игла; шнуры для завязок; зажигалка или спички. Разрезаем ровно нашу


читать далее »

Сумки вязаные крючком. Идеи

Много очень красивых и модных аксессуаров представлены разными именитыми домами мод и модельерами,сумки LANVIN Bottega Veneta, Dior, Alexander McQueen, Salvatore Ferragamo, Louis Vuitton, Prada, Roberto Cavalli, HERMES Birkin, Celine, знамениты на весь мир. Но если вы



читать далее »

Необычные люстры своими руками (идеи)

Сегодня многие дизайнеры создают светильники и люстры. Это не случайно. Тёплый свет лампы или люстры дарит уют, незабываемую атмосферу, которая присуща только вашему дому. Но светильники можно сделать и своими руками из всего, что найдётся



читать далее »

Мой совет:

Увядшую зелень можно освежить, положив ее на час в слегка подкисленную уксусом холодную воду.


читать далее »

Природа

Мировой океан содержит 328 000 000 кубических миль морской воды.


читать далее »

Животные

Есть только два животных, которые могут видеть позади себя, не поворачивая головы, - кролик и попугай.


читать далее »

Браслет - вяжем крючком из бисера, мастер класс в картинках

Для тех, кто вяжет крючком — мастеркласс в картинках, как связать браслет с бисером. Потребуется:— нитки вискоза— бисер — тонкий металлический браслет— крючокАвтор мастер-класса Ксения Шакирова (ksuntavrik)



читать далее »

Абажур из газетных трубочек

Материалы Старые газеты, тонкая спица, клей ПВА, каркас для абажура, белая акриловая краска, акриловый прозрачный лак, трехслойные салфетки с рисунком Способ изготовления Нарезать полоски газет, наискосок накрутить на спицу, конец заклеить клеем ПВА.У меня получилось 82 трубочки, понадобилось 81(как



читать далее »

Мой совет:

Щетка, смоченная в соленой воде, поможет восстановить золотистый цвет изделиям из соломы.


читать далее »

Космос

Если опустить Сатурн в воду, он будет плавать на поверхности. Средняя плотность вещества Сатурна почти в 2 раза меньше плотности воды.


читать далее »

Сакура из полимерной глины. Мастер класс.

Представляю вам фото мастер класс по лепке сакуры из полимерной глины.      Материалы:  Полимерная глина Стеки Проволока 24x12 Маленькие прямые ножницы  Плоскогубцы, кусачки и плоскогубцы острые  Желтые тычинки Латексный клей Флористическая пена Тейп лента Пленка прозрачная Палитра



читать далее »

Космос

Если собрать в один сферический монолит все вещество колец Сатурна, диаметр этого монолита не превысит 100 километров.


читать далее »

Крокусы из фоамирана, фома мастер класс

Крокусы одни из самых красивых первоцветов и благодаря своей яркой окраски они привлекают к себе внимание. Сегодня мы рассмотрим с вами мастер класс по изготовлению крокусов из фоамирана. Фоамиран или его еще называют фом или пластичная замша,



читать далее »

Животные

Скорпион может иметь до 12 глаз.


читать далее »

НАВОДИМ ПОРЯДОК: ВЫКРОЙКА ПОДВЕСНОЙ ПОЛКИ

http://vykrojka.ru/drugie-vykrojki/216-vykrojka-podvesnoj-polki-iz-tkani.html  Удобная подвесная полка из тканиВам потребуется: 3 м прочной декоративной или джинсовой ткани шириной 140 см; 3 пуговицы диаметром 2,5 см; 2 листа клееной фанеры толщиной 4 мм по 49x30 см; портновский мелок. Описание работыРаскрой



читать далее »

Анекдот

На мой вполне резонный вопрос, почему он утром, позавтракав, не вытирает стол от крошек, муж ответил, что боится нас разбудить и поэтому не хочет... греметь тряпкой!


читать далее »

Анекдот

Звонок в квартиру. Трубку поднимает злой мужик. - Алло,здравствуйте, а Васю можно. - Пошёл на хуй. - Да?... и когда вернется?


читать далее »

Анекдот

Омский шинный завод выиграл тендер на поставку автошин для Формулы-1 в количестве 5000 штук.... для ограждения трассы.


читать далее »

Анекдот

У одного парня жила игуана, ну или какая-то, наподобие, тварюга. Как-то он с ней решил поиграть, ну она его и цапнула за палец. Вроде не больно, а все равно неприятно. Короче вставил ей люлей. На


читать далее »

Сумки с настроением....идеи

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.  



читать далее »

Анекдот

Любимый мужчина - это тот, который видел вас пьяной, голой,без макияжа, ревущей, говорящей всякую херню, и как не странно до сих пор с вами.


читать далее »

Мастер-класс. Астра из корейского фоамирана

Автор: Авелли  Вот такую прекрасную астру из корейского фоамирана мы будем сегодня делать. Нам понадобится: фоамиран клематисовый, сиреневый, травяной зеленый Каттеры тонких лепестков, 4 размера; супер-клей, ножницы, пинцет, утюг, масляная краска: кадмий желтый, охра, зеленый хром, пурпурный; проволока для



читать далее »

География

В городе Томбсоун мужчинам и женщинам старше 18-ти лет запрещено улыбаться, если у них отсутствует более 1 переднего зуба.


читать далее »

Анекдот

Собираются выпить грузин русский и еврей . Разговаривают кто что принесет. Грузин-я мясо принесу шашлык пожарим. Русский- ну я тогда водки. Еврей - а я брата приведу он столько анекдотов знает.


читать далее »

Как я распечатываю на салфетках на принтере

Занимаясь декупажем, многие сталкиваются с необходимостью распечатать нужный фрагмент декора на принтере. Конечно, у каждого мастера есть свои приемы, которые помогают ему достичь желаемого результата, но не всегда они доступны и понятны сразу. Многое приходит



читать далее »
Здесь пока пусто

Unauthorized.

Грабим данные с flash-модулей и CD/DVD

2011.10.08

Грабим данные с flash-модулей и CD/DVD

Автор: (c)Крис Касперски ака мыщъх

Как сграбить содержимое флешек и CD/DVD-носителей (включая удаленные файлы!), не нарушив ни один пункт закона и оставшись при этом непойманным, неразоблаченным и непобитым? Мыщъх, покурив хорошей травы, разработал специальную технологию, описание которой и предлагает всем желающим (а также нежелающим, но просто интересующимся).

Скажите, а в Пизе ничего не пропадало?
народное

Введение

Ходят тут всякие! Спать, понимаешь, мешают. Зашел ко мне давеча в нору один такой тип. Флеш припер. Сует ее в разъем. Скопировать последний альбом Independent у меня хочет. А там у него на флешке сорцы интересные, конфиденциальная документация и фотки пикантные интимного характера с его пассией в главной роли. Знакомая ситуация не так ли? И вот этот кадр думает, что если ни на секунду не выпускать свою кровную малышку из рук, то у него никто ничего не сопрет. Наивный! Мыщъх озаботился этой проблемой еще со времен MS-DOS, когда программистам приходилось таскать за собой потрепанную папочку с дискетами пятидюймового форм-фактора, что придавало им сходство с инженерами (которыми они, по сути, и являлись, ибо "пользователей" тогда еще не существовало).

С тех пор многое что изменилось. Народ перешел на ZIP'ы, CD/DVD, флешки и прочие носители, вмещающие гигабайты полезных данных, которыми некоторые скряги упорно не хотят делиться, забыв главный девиз хакера, что код и данные - общенародное достяние. Ну, не хотят делиться и хрен с ними! Мы и сами возьмем! По этому поводу мыщъх говорит так - что на мой компьютер попало, то пропало. Хочешь сохранить свои данные в тайне - так не суй флеш куда попало!

Недетский грабеж съемных носителей

Рисунок 1. Недетский грабеж съемных носителей.

Обзор существующих утилит или как палятся хакеры

Беглый поиск по Интернету выявил множество программ, предназначенных для скрытного копирования данных со съемных носителей - от готовых к применению приложений, до исходных текстов, реализующих ядерные функции, легко встраиваемые в ваши собственные проекты.

К сожалению, практически все они неработоспособны. Причем речь идет не о мелких ошибках реализации, а о глобальных конструктивных просчетах. Начнем с того, что многие граберы ныкают свои процессы от "диспетчера задач" и других утилит подобного типа, перехватывая ряд системных функций и не вполне корректно их обрабатывая, что приводит к многочисленным конфликтам и сбоям операционной системы. Зачем прятать процессы на своей собственной машине - мне в упор непонятно. Если грабер устанавливается сознательно (а это как раз и есть та ситуация, о которой мы говорим) - пусть он хоть как заныкается, я все равно знаю, что он есть. Посторонним же пользователям список процессов на моем компьютере ровным счетом ни о чем не говорит, да и не позволю я им ковыряться в недрах моей машины!

Но это все ладно! Прячут процессы - ну и хрен с ними! В конце концов, это никому не мешает (то есть, еще как мешает - антивирусы ругаются так, что уши вянут и приходится отключать кучу проактивных технологий и эвристических анализаторов, рискуя подцепить заразу).

Хуже всего, что некоторые (самые простые) граберы начинают стягивать данные сразу же после установки флешки и/или лазерного диска. Если флешка оснащена индикатором, то при обращении к ней он начинает зловеще мигать, а лазерные диски не только мигают, но еще и шумят, вызывая у жертвы вполне очевидные подозрения и незадачливый хакер тут же получает по башке (так что все деструктивные предметы лучше заблаговременно убрать за пределы видимости).

Достаточно многие флешки оснащены индикатором

Рисунок 2. Достаточно многие флешки оснащены индикатором, препятствующему незаметному сливу данных.

Граберы классом повыше отслеживают момент первого обращения к съемному носителю и стягивают данные только во время "легальных" операций чтения/записи. Очевидным минусом этой технологии становится резко возросшая сложность реализации, требующая перехвата системных функций, который в Висте и 64-битных версиях XP не то, чтобы совсем невозможен, но существенно затруднен. Опять-таки - антивирусы, глюки и прочие никому не нужные прелести. До сих пор мне не встречался ни один добротный перехватчик, корректно работающий на многоЦПшных машинах (включая HT и многоядерные процессоры, которых с каждым днем становится все больше и больше).

Недостаток номер два (самый главный) - емкость флешки (CD/DVD-дисков), как правило, намного больше размера легально копируемых файлов и утянуть их содержимое просто так не получится. Времени уйдет целая куча. Даже если флешка не оснащена индикатором, будет мигать индикатор жесткого диска (а куда еще складывать такое количество награбленных данных?! Не в память же! Хм... Ну, вообще-то можно и в память, только памяти должно быть много). Но сложности на этом не заканчиваются. При попытке отключения USB-устройства штатными средствами Windows, та просто откажется демонтировать флешку, пока с ней работает хотя бы одна программа. Следовательно, грабер должен отслеживать отключение USB-устройств, прекращая грабеж в аварийном порядке. Короче, весьма нехилый проект у нас получается. Реализовать его очень сложно. Отладить - еще сложнее, а утащить информацию, не вызывая подозрений у ее владельца, вообще невозможно.

По этому поводу говорят, что если нельзя, но очень сильно хочется, то все-таки можно! И сейчас мыщъх поделится рецептом программы, которую можно состряпать за пару вечеров и которая работает на любой, абсолютно любой, операционной системе - 9x, NT, W2K, XP, Висте и... даже Linux/BSD, поддерживает все типы сменных носителей, не вызывает конфликтов и, самое главное - распознать факт грабежа не сможет даже продвинутый пользователь, а грабить мы будем его подчистую - от первого до последнего байта, включая данные, принадлежащие удаленным файлам.

Грабеж по мыщъх'иному

Рисунок 3. Грабеж по мыщъх'иному - то есть внаглую.

Основные идеи и концепции

Как известно из канонов разведки, лучше всех ныкается тот, кто не прячась, играет в открытую. Применительно к данной ситуации - не пытайтесь скрыть факт грабежа данных, а сделайте его явным.

Между прочим, это была не шутка. Труднее всего обнаружить то, что находится у нас под глазами. Берем флеш (или CD/DVD), вставляем. Тут же всплывает "антивирус", имитирующий проверку файлов, а в действительности сливающий их на жесткий диск в какую-нибудь глубоко вложенную папку, такую, которая гарантированно не попадется жертве на глаза. Необходимость отслеживать обращения к съемным устройствам тут же отпадает. Мы и без всякой маскировки так замаскировались, что у жертвы и тени подозрений не возникает!

Поскольку обычные антивирусы так себя не ведут, то от копирования их интерфейса лучше воздержаться, иначе можно быстро погореть. Пусть это будет что-то совершенно никому неизвестное. Например, суперкрутой антивирус под названием "Selena Enterprise Edition". Чисто теоретически жертва может попросить нас прервать проверку флешки (CD/DVD), но тут ее легко обломать встречным вопросом: "с какого это такого перепугу мы должны чего-то прерывать?! уж не вируса, ты, милый человек, занести нам хочешь?!"

Разработка грабера

Рисунок 4. Разработка грабера, замаскированного под антивирус, в Microsoft Visual Studio 6.0.

Кстати говоря, с юридической точки зрения мы не совершаем никакого преступления, так как вправе копировать содержимое сменного носителя, добровольно вставленного в наш компьютер его правообладателем. Зачем копировать?! Ну... например, в целях кэширования, скажем. Другой вопрос, что распространять полученную таким путем информацию без согласия правообладателя как бы нельзя. "Как бы" потому, что факт несанкционированного распространения еще необходимо доказать. Если речь не идет о документах, представляющих коммерческую или государственную тайну, с убытками в особо крупных размерах, никакой суд заниматься подобными мелочами просто не будет. Такие дела недоказуемы в принципе! Вот упрется хакер рогом и будет гнуть линию, что согласие (устное) на дистрибуцию он получил. Кто не согласен - пускай докажет, что его (согласия) не было с учетом презумпции невиновности, которую еще никто не отменял.

Впрочем, мы ушли в перпендикуляр. Возвращаясь к смысловую плоскость обсуждаемой темы, обратим внимание на замечательное обстоятельство, что сами по себе граберы не могут быть законными или незаконными. Даже если они умышленно имитируют работу антивируса - ну и что с того?! Кого они этим вводят в заблуждение? Пользователя грабера?! Так ведь, нифига подобного (ибо в прилагаемой к ним документации все сказано). Владельца флешки или CD/DVD?! Ну... так это он сам себя обманул. Мало ли, что ему там почудилось на экране. Selena - это вполне нормальный антивирус, точнее часть антивирусного комплекса, копирующего данные с внешних носителей в специальную папку, чтобы при обнаружении заразы было можно установить ее источник.

Мыщъх повторяет еще раз: написание и использование граберов - не преступление. Преступление наступает в тот момент, когда мы начинаем распространять награбленное добро без ведома и против воли его правообладателя. На этой возвышенной ноте мы закончим с отвлеченными концепциями и перейдем к насущным проблемам, которых будет много.

Хакеру нужны не только мозги

Рисунок 5. Хакеру нужны не только мозги, но и длинные ноги, чтобы успеть смотаться пока его не защемили.

Технические детали реализации

В состав Win32 API входит любопытная функция FindFirstChangeNotification, генерирующая уведомления при изменении содержимого заданной директории. Достаточно передать ей букву оптического привода, и можно отслеживать вставку новых CD/DVD дисков. Если у нас имеется более одного привода, функция FindFirstChangeNotification должна вызываться "персонально" для каждого из них.

// передаем функции имя буквы привода оптических дисков
// (в данном случае, это диск "G:\\")

HANDLE cnh = FindFirstChangeNotification("G:\\", FALSE,
                        FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME);

// отслеживаем изменения в бесконечном цикле
// тут необходимо добавить код для выхода из цикла по или другой hotkey

while (1)
{
        // ждем изменений в файловой системе заданного диска
        // или более конкретно - вставки [нового] диска в привод

        DWORD wr = WaitForSingleObject(cnh, INFINITE);

        // если мы находимся здесь,
        // в привод вставлен новый диск
        // и самое время его ограбить

}

// после выхода из цикла сообщаем системе,
// что мы больше не хотим получать никаких уведомлений

FindCloseChangeNotification(cnh);

Листинг 1. Пример использования функции FindFirstChangeNotification для отслеживания вставки новых оптических дисков в привод.

Получать уведомления о вставке флешек, автоматически монтирующих себя на новые диски, несколько сложнее и мыщъх'у так и не удалось найти элегантный и документированный способ, поддерживаемый всеми системами семейства Windows, да он к этому, по правде сказать, не особенно стремился, ограничившись периодическим (раз в несколько секунд) вызовом API-функции QueryDosDevice, возвращающий список имеющихся дисков (или GetLogicalDrives, которая работает быстрее и реализована на всех платформах, а не только на линейке NT, но вместо букв возвращает битовую маску, с которой еще предстоит разобраться).

Сделать это можно, например, так:

// получаем битовую маску с перечнем дисков,
// смонтированных на соответствующую им букву

DWORD dwLogicalDrives = GetLogicalDrives();

// разбираем все биты один за другим
for (nDrive = 0; nDrive < 32; nDrive++)
{
        // такой диск существует?
        if (dwLogicalDrives & (1 << nDrive))
        {
                 // определяем характеристики диска
                uType = GetDriveType(szBuffer);
                if ((uType == DRIVE_REMOVABLE) || (uType == DRIVE_CDROM))
                {
                        // это наш клиент!!!
                        // грабим его по полной программе
                }
        }
}

Листинг 2. Пример использования функции GetLogicalDrives.

Падение производительности настолько несущественно, что о нем не стоит и говорить. В принципе, в W2K (и более поздних версиях) существует возможность насильственного монтирования флешки не на диск, а в поддиректорию, которую уже можно "скормить" функции FindFirstChangeNotification, но это уже никому не нужное извращение.

Грабить файлы лучше всего не блочно (функциями ReadFile/WriteFile), а через CopyFileEx - это проще и более производительно. В остальном грабеж реализуется вполне стандартно и не должен вызывать сложностей даже у начинающих программистов, терзающих Visual Basic или DELPHI.

Грабим удаленные файлы

Флешки, используемые для обмена данными между компьютерами, несут на своем борту много интересного. Конечно, с течением времени шансы на восстановление удаленного файла стремительно уменьшаются и в какой-то момент он оказывается полностью перезаписан свежими данными, однако если флешка была заполнена до отказа, а затем отформатирована, то вновь записываемые файлы затрут старые очень нескоро (особенно, если объем флешки измеряется гигабайтами). В общем, покопавшись в мусорной куче гниющих останков, мы с ненулевой вероятностью найдем что-то очень интересное - такое, чего другим путем раздобыть просто нельзя. Ну, так чего же мы ждем, почему стоим?! То есть, сидим. А нужно открывать документацию и кодить, кодить, кодить...

Естественно, стратегию грабежа придется радикально изменить, развернув концепцию на 360 градусов. Передаем API-функции CreateFile имя диска в виде "\\\\.\\R:" (где "R" - буква, ассоциированная с флешкой) и читаем содержимое устройства функцией ReadFile блоками, кратными размеру сектора, например, по 2048 байт (внимание: процесс-грабер должен в обязательном порядке обладать правами администратора, которые ему можно делегировать, например, через штатную утилиту runas, иначе ничего не получится).

Минимально работающий листинг, реализующий эту затею, выглядит так:

main(int argc, char **argv)
{
        int a; FILE *f; HANDLE h; char *buf; DWORD x_read; char buf_n[1024];
        buf = malloc(2048); // выделяем память

        // открываем устройство
        // (в данном случае - диск G:)

        h = CreateFile("\\\\.\\G:", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);

        // позиционируем указатель на первый читаемый блок
        SetFilePointer(h, 0, NULL, FILE_BEGIN);

        // читаем блоки c нулевого по 666
        for (a = 0; a <= 666; a++)
        {
                // читаем очередной блок
                if (ReadFile(h, buf, 2048, &x_read, NULL) && x_read)
                {
                        // записываем только что считанный блок в файл C:\grab.dat
                        sprintf(buf_n, "%s[%04d].dat", "C:\\grab.dat", a);
                        if (f = fopen(buf_n, "wb"))
                                { fwrite(buf, 1, x_read, f); fclose(f); }
        }
}

Листинг 3. Фрагмент программы, читающей образы флешек и CD/DVD дисков (полный исходный текст можно найти в книге "Техника защиты CD от копирования).

Полученный образ флешки можно впоследствии "залить" на свою собственную флешку, заменив функцию ReadFile на WriteFile, после чего натравить на нее любую из многочисленных утилит предназначенных для восстановления удаленных файлов или (если флешки такого объема у нас нет) запустить Linux/BSD, смонтировать образ как "настоящий" диск и восстановить файлы вручную с помощью hex-редактора.

Техника восстановления подробно описана в моей книге "Data Recovery - tips and solutions", русская редакция которой лежит на http://nezumi.org.ru/, а недавно по просьбе читателей выложен архив прилагаемого к ней лазерного диска со всеми исходными текстами простейший программ для восстановления.

Утянуть удаленное содержимое с CD/DVD-R/RW носителей на порядок сложнее и чтобы добраться до "захороненных" данных, необходимо спуститься на один уровень вглубь, получив прямой доступ к приводу через интерфейс ASPI или SPTI. Оба подробно описаны в "Технике защиты компакт-дисков от копирования", там же рассказывается как самостоятельно восстановить данные после быстрой очистки. Полная очистка, увы, гробит содержимое CD/DVD-RW безвозвратно, однако она используется лишь некоторыми пользователями.

Удаленные файлы тоже можно грабить

Рисунок 6. Удаленные файлы тоже можно грабить!

Как не ограбить самого себя

Чтобы не вызывать у жертвы никаких подозрений, грабер следует держать на своем компьютере постоянно запущенным (например, закинутым в автозагрузку или в один из многочисленных ключей автозапуска, находящийся в системном реестре). Любые дополнительные действия, выполняемые нами перед вставкой чужой флешки или лазерного диска выглядят довольно странными и не вполне адекватными (ну вообще-то, можно, конечно прикинуться параноиком, типа вот меня давеча поимели, так что сейчас любой носитель в обязательном порядке проходит жесткий бактериологический контроль "антивирусом", но если жертва думает головой, она быстро раскусит что это за контроль такой и начнет щемить хакера по полной программе, особенно после обнаружения интимных фотографий своей пассии на диких просторах Интернета).

Короче, лучше держать "антивирус" постоянно активным. Только это же ведь напряг сплошной!!! Не успел еще вставить новый диск (свой диск, а не чужой!!!) и уже во всю пошел грабеж, отнимающий время и убивающий нервные клетки. Значит, будем хитрить (тем более, что нам это не впервой).

"Антивирус" должен позволять быстро отменять проверку текущего диска нажатием , или любой другой привычной комбинации, запоминая его серийный номер в скрытом конфигурационном файле, и никогда больше его не проверять. Другими словами, необходимо добавить в грабер поддержку "белого" списка своих дисков, опознаваемых по серийному номеру или метке тома. Однако, метка - довольно ненадежное средство. Например, Nero по умолчанию метит все прожигаемые им диски ключевым словом "NEW", а при форматировании флешек и ZIP'ов метка обычно вообще не назначается.

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

За чтение серийного номера отвечает API-функция GetFileInformationByHandle, возвращающая его в следующей структуре:

typedef struct _BY_HANDLE_FILE_INFORMATION {
        DWORD dwFileAttributes;
        FILETIME ftCreationTime;
        FILETIME ftLastAccessTime;
        FILETIME ftLastWriteTime;
        DWORD dwVolumeSerialNumber;
        DWORD nFileSizeHigh;
        DWORD nFileSizeLow;
        DWORD nNumberOfLinks;
        DWORD nFileIndexHigh;
        DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION;

Листинг 4. Серийный номер диска (выделен полужирным), возвращаемый функцией GetFileInformationByHandle.

Также следует предусмотреть комбинацию горячих клавиш, блокирующую запуск грабера при вставке носителя (типа Shift'a, отключающего автозапуск). Впрочем, это уже детали, допускающие бесчисленные вариации. Лично мыщъх поступил так - если в момент вставки нового диска на переднем плане находится FAR, то грабер не запускается. Если же FAR отсутствует или вращается в бэкграунде, а работа со сменными носителями осуществляется через "Проводника" - это расценивается как сигнал к атаке. Внешне выглядит вполне невинно и никаких подозрений не вызывает.

Замечания по реализации грабера под Linux/BSD

Linux/BSD встречаются на десктопных системах не то, чтобы часто, но ведь и экзотикой их уже не назовешь. Они также поддерживают флешки вместе с лазерными дисками и другими съемными носителями, только вот готовых утилит грабежа под них что-то не наблюдается. Ну, совсем никаких - даже самых примитивных и захудалых.

Механизм уведомлений об изменениях в файловой системе в UNIX-клонах реализован сильно по-разному и написать переносимый грабер просто так не получится. Впрочем, ловить уведомления совершенно необязательно. Достаточно написать свою обертку вокруг штатной утилиты mount (по типу вируса-спутника), которая при попытке монтирования съемных носителей, передает управление настоящему mount'у и тут же запускает грабер, замаскированный под антивирус. Как говориться, дешево и сердито. Зато системно-независимо и надежно (кстати, описанный прием распространяется в том числе и на auto-mount).

Грабеж образов с носителей осуществляется путем открытия соответствующих устройств (перечисленных в каталоге /dev) системным вызовом open с последующим чтением их содержимого системным вызовом read.

В общем, написать приличный UNIX-грабер (даже не будучи гуру) совсем несложно.

Заключение

Грабеж - не такое уж сложное дело, если к реализации грабера подойти с головой. Не нужно использовать готовые шпионские утилиты - все они барахло! Лучше всегда написать свое, заточенное строго под самого себя (любимого), чем брать чужой глюкодром.

https://nebka.ru/?uid=1&post=20956