Blog. Just Blog
Быстрый поиск
Введите фрагмент названия статьи для поиска
Color Dropper 1.1
11.03.2010 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Color Dropper
Небольшая программа-помощник для web-мастеров, показывающая цвет точки под курсором. По нажатию комбинации клавиш Ctrl+Alt+C в буфер обмена копируется HTML-значение цвета. По нажатию комбинации Ctrl+Alt+(1..6) цвет копируется в один из шести "карманов". Левый клик на любом "кармане" - скопировать HTML-значение цвета в буфер, правый клик - открыть стандартный диалог выбора цвета, клик колесиком - очистить.
Читать статью целиком »
Просмотров: 664 | Комментариев: 20
Поздравляю с Международным женским днем!
08.03.2010 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Международным женским днем!
Милые женщины! От всей души я поздравляю вас с праздником весны, праздником любви, Международным женским днем 8 марта. Желаю вам оставаться всегда красивыми и желанными, мира и любви, счастья и радости, цветов и улыбок! Ну а задача настоящих мужчин - сделать для вас праздником не только сегодняшний, но и все остальные дни в году.
С любовью и наилучшими пожеланиями, -
ManHunter / PCL
Просмотров: 43 | Комментариев: 2
Выставка "Первый зимний фестиваль орхидей"
07.03.2010 | Категория: Жизнь в оффлайне | Автор: ManHunter

Выставка "Первый зимний фестиваль орхидей"
В Ботаническом саду МГУ проходит выставка цветущих орхидей, я решил сходить на нее как раз перед Международным женским днем. Очень хочется чего-нибудь красивого, чтобы отдохнуть от надоевшего снега и зимних морозов. Экспозиция живых орхидей, более трехсот экземпляров, а также других цветущих тропических растений, расположена в старинной Пальмовой оранжерее.
Читать статью целиком »
Просмотров: 112 | Комментариев: 7
Прямой доступ к диску для записи в Windows 7
05.03.2010 | Категория: Темная сторона Силы | Автор: ManHunter

Прямой доступ к диску для записи в Windows 7
При разработке программы для защиты флешек от вирусов возникла необходимость записи секторов напрямую на диск. Прямой доступ к диску осуществлялся через функцию CreateFile. Под Windows XP все работало нормально, а под Windows 7 при попытке записи сектора возвращалась ошибка Access Denied, при том, что при открытии диска на запись никаких ошибок не возникало. После длительных поисков причины было выяснено следующее: еще в самом начале разработки в Windows 7 была обнаружена критическая уязвимость. Если не вдаваться в нудные технические подробности, то смысл ее заключался в том, что злоумышленник мог открыть системный диск напрямую для записи и поместить любой злонамеренный код в файл подкачки. В Microsoft решили проблему с присущей им дубовой прямолинейностью - просто взяли и запретили прямую запись на диски. Но поскольку нельзя, но было очень нужно, то способ обхода защиты нашелся очень быстро. Оказывается, что запись на диски запрещена не полностью, система разрешает записывать данные в нулевую дорожку диска и в неразмеченные области. Такое поведение вполне объяснимо: надо же как-то форматировать диски штатными средствами без дополнительных танцев с бубнами. Значит для того, чтобы система разрешила запись в произвольное место диска, она сперва должна определить его как неразмеченный. А это достигается уничтожением нулевого сектора диска перед записью. Естественно, что перед уничтожением надо сохранить все данные из нулевого сектора в сухом прохладном месте, а потом вернуть их обратно.
Порядок действий следующий: открыть диск для чтения-записи, попробовать записать нужный сектор. Если произошла ошибка Access Denied, то надо прочитать нулевой сектор, записать вместо него нули, после этого обязательно закрыть диск. Это нужно, чтобы система при повторном обращении посчитала диск неразмеченным и разрешила запись в любой сектор. Затем снова открываем диск для чтения-записи. После записи нужных данных восстанавливаем нулевой сектор и закрываем диск. Все, наша задача выполнена, данные записаны, система спокойна. У этого способа есть и минусы. Так, если работа вашей программы по какой-то причине завершилась аварийно до момента, когда она восстановила нулевую дорожку, то данные на диске могут стать недоступны или вообще потеряться. Способ проверен и хорошо работает на съемных дисках с файловой системой FAT/FAT32, на стационарных жестких дисках и других файловых системах я его не проверял.
Читать статью целиком »
Просмотров: 256 | Комментариев: 5
Восстановление иконки в трее после сбоя системы
02.03.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
Если ваше приложение создает и использует свою иконку в трее, то в обязательном порядке надо обрабатывать ситуацию, когда по какой-либо причине произошел сбой и перезапуск Explorer'а. В этом случае перерисовывается панель задач, рабочий стол, системный трей со значками и т.д., и если вы не вернете свою иконку в трей, то она "потеряется". При аварийном перезапуске Explorer'а всем окнам (HWND_BROADCAST) системой отсылается сообщение TaskbarCreated. Особенность этого сообщения в том, что оно не имеет постоянного значения идентификатора, и его значение должно быть получено функцией RegisterWindowMessage. В описаниях этой функции сказано, что она используется для регистрации уникального системного сообщения, но почему-то нигде не указано, что если такое сообщение уже зарегистрировано в системе, то функцией возвращается его существующий идентификатор. Это полезное свойство мы и будем использовать.Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- ...
- szTBC db 'TaskbarCreated',0 ; Имя сообщения
- restore_msg dd ? ; Идентификатор сообщения TaskbarCreated
- ...
Code (Assembler) : Убрать нумерацию
- ; Сегмент кода
- ...
- ; Зарегистрировать сообщение TaskbarCreated
- invoke RegisterWindowMessage,szTBC
- mov [restore_msg],eax
- ...
Code (Assembler) : Убрать нумерацию
- ...
- ; Сообщение TaskbarCreated?
- mov eax,[msg]
- cmp eax,[restore_msg]
- je .wmrestore
- ...
- .wmrestore:
- ; Восстановить иконку в трее
- invoke Shell_NotifyIcon, NIM_ADD, node
- jmp .processed
- ...
Читать статью целиком »
Просмотров: 128 | Комментариев: 3
