
Быстрый поиск
Введите фрагмент названия статьи для поиска

Flash Drive Protector 1.0
29.09.2009 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Flash Drive Protector
Flash Drive Protector - это программа для защиты флешек от вирусов. Сперва немного теории. Обычно вирусы распространяются через флешки, записывая на них свой главный исполняемый файл и специальный файл с именем autorun.inf. Если такую зараженную флешку подключить к компьютеру, где не отключен автозапуск, то система обработает файл autorun.inf и запустит вирус на выполнение. Для противодействия этому был придуман следующий хитрый трюк: на флешке создается каталог с именем "autorun.inf", и получается, что теперь на ней нельзя создать одноименный файл. Но вирусы научились обходить такую защиту, просто удаляя этот каталог со всеми вложенными файлами. Следующим витком противодействия вирусам стало создание внутри папки autorun.inf файлов со служебными именами типа CON, LPT3 и т.п., из-за этого каталог с такими "кривыми" файлами обычными средствами системы удалить не получится. Вирусы быстро научились обходить и эту защиту, просто переименовывая папку вместе со всем содержимым или удаляя ее через вспомогательный командный файл.
Я написал программу Flash Drive Protector, которая также создает на флешке каталог autorun.inf, но защищает его на уровне файловой системы. Теперь этот каталог невозможно удалить или переименовать всеми известными способами, а чтобы его стереть придется форматировать флешку или же записывать изменения напрямую на диск. Я сильно сомневаюсь, что вирусописатели в ближайшем будущем дорастут до такого уровня.
Читать статью целиком »
Просмотров: 33052 | Комментариев: 62

Защита файлов на сервере от прямых ссылок (antileech)
29.08.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Защита от скачивания файлов по прямым ссылкам, или как ее еще называют "антилич-защита" - задача не менее важная, чем защита остального контента сайта. Грамотно сделанная система защиты от прямых ссылок позволит разграничивать доступ к файлам разным категориям пользователей, вести подробную статистику скачиваний, скрывать истинное место размещения файлов, а также привлечет новых посетителей на ваш сайт. А то обычно получается так, что сторонние сайты публикуют прямую ссылку на файл, размещенный на вашем сервере, они получают посетителей, рейтинги, стригут купоны с рекламы, а вы получаете только счета за трафик. Справедливое разделение? Нет. В последнее время появилось огромное количество файлообменных сервисов, и на каждом из них используется своя система антилич-защиты, где-то более удачно реализованная, где-то менее. За счет этого они имеют возможность регулировать скорость отдачи файлов премиум-пользователям и халявщиками, определять лимит на скачивание по времени, поддерживать или не поддерживать докачку и т.д. В этой статье я расскажу о самом принципе построения антилич-системы, а также приведу пример простейшего, но вполне работоспособного скрипта.Сперва начнем с изучения предмета. Посмотрим лог работы какого-нибудь менеджера закачки, который скачивает обычный файл с обычного web-сервера. Конкретно нас интересуют служебные заголовки, которые сервер отдает менеджеру закачки или браузеру:
HTTP/1.1 200 OK
Date: Sat, 15 Aug 2009 17:24:40 GMT
Server: Apache/1.3.41 (Win32)
Connection: close
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: Attachment; filename=filename.rar
Content-Length: 2676708
В заголовках есть вся нужная информация: тип файла, его имя, размер файла. После этого идет непосредственно содержимое файла. Если сервер отдает такие заголовки, значит их точно так же может отдавать и наш PHP-скрипт через функцию header.
Читать статью целиком »
Просмотров: 32320 | Комментариев: 40

Защита контента сайта при помощи CSS
27.06.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Так уж получается, что старая пословица "Один с сошкой - семеро с ложкой" актуальна и в наше время. Только звучит немного иначе: "Один пишет - семеро копипастят", да и коэффициент 7 явно занижен. Я ничего не имею против, когда копируют статью и указывают прямую ссылку на сайт-первоисточник, это уважение к труду автора статьи и обычная практика в цивилизованном интернете. Но находятся безмозглые ублюдки, для которых размещение ссылки на сайт автора, у которого они скопипастили статью, является чем-то из области фантастики. В результате кто-то стрижет купоны за счет вашего труда, а вам от этого не перепадает ничего, даже новых посетителей. Активная защита, как правило, является пустой тратой времени (ну кроме, пожалуй, физического устранения, только УК РФ еще не отменили), письма админам и хостерам находят отклик и понимание лишь в единичных случаях. Полное запрещение копирования средствами скриптов и другие подобные меры во-первых бесполезны, а во-вторых будут только мешать нормальным посетителям пользоваться плодами вашего труда. Значит надо придумать какой-нибудь способ, который будет абсолютно прозрачным для обычных посетителей, но при этом статьи будут содержать информацию о том, откуда они были скопированы. Как ни странно, в этом могут помочь каскадные таблицы стилей CSS. А именно стиль display со значением none. При его применении к любому html-элементу, элемент визуально полностью исчезает со страницы, но при этом фактически продолжает на ней находиться. И, что самое важное для нас, содержимое скрытых элементов будет попадать в буфер при копировании. Простой пример, возьмем какой-нибудь оригинальный текст и добавим в него наш собственный, заключив его в теги span со стилем display:none.
Читать статью целиком »
Просмотров: 9378 | Комментариев: 26

Расчет CRC32 на Ассемблере
27.04.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм вычисления контрольной суммы (CRC, англ. cyclic redundancy code, циклический избыточный код) - способ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения ее циклического избыточного кода. Алгоритм CRC32 основан на примитивном полиноме 0EDB88320h и применяется в архиваторах, системах шифрования, протекторах исполняемых файлов и многих других программах. Он прост в реализации и с большой вероятностью может подтверждать неизменность данных, причем чем меньше размер контролируемой информации, тем выше эта вероятность. Для расчета CRC32 требуется сперва подготовить так называемую таблицу инициализации. В сегменте данных таблица резервируется как 256 двойных слов, по одному dword на каждый возможный байт:Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- ; Таблица инициализации для расчета CRC32
- crc32table rd 256
Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция создания таблицы инициализации для расчета CRC32
- ;-----------------------------------------------------------------------
- proc init_CRC32
- push eax ebx ecx edi
- mov edi,crc32table ; Указатель на выделенную под таблицу память
- xor ebx,ebx ; Расчитать значения для всех 256 байт
- calc_crc32table:
- mov eax,ebx
- mov ecx,8
- do_polynom:
- shr eax,1 ; Проверить четность байта
- jnc @f ; XOR выполняется только если байт нечетный
- xor eax,0EDB88320h
- @@:
- loop do_polynom ; Следующий бит
- stosd ; Записать полученный dword в таблицу
- inc ebx
- cmp ebx,256
- jb calc_crc32table ; Следующий байт
- pop edi ecx ebx eax
- ret
- endp
Читать статью целиком »
Просмотров: 12499 | Комментариев: 9

Обход эвристики Avira AntiVir в JavaScript
08.01.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Последние несколько дней посетители сайта стали жаловаться, что их антивирус эвристически определяет в HTML-коде страниц сайта вредоносный код. Их объединяло одно: они все пользовались "антивирусом" (в кавычках) под гордым названием Avira AntiVir. После недолгого расследования и тестирования было выяснено, что эта недоделка ругается на скрипт добавления страницы в закладки, а конкретно на его часть, отвечающую за работу в Internet Explorer:Code (JavaScript) : Убрать нумерацию
- // Internet Explorer
- window.external.AddFavorite(url, title);
Code (JavaScript) : Убрать нумерацию
- // Internet Explorer
- eval("window.external.AddFa-vorite(url, title)".replace(/-/g,''));
Просмотров: 9447 | Комментариев: 16
