Архив за месяц: Январь 2011

>Обзор блога за январь 2011

>

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

  • Как поменять атрибут в AD: варианты №2
  • Как по быстрому создать графическую утилиту для изменения атрибута пользовательской учетной записи. Ну или какого-нибудь другого объекта.

  • Секреты %SystemRoot%System32
  • А что у нас находится в папке system32? Сдается мне, там много вкусного =)

  • Создание самоподписанного сертификата для подписи кода
  • Что делать, если нужен сертификат для подписи кода, но только “для себя”. А денег платить не хочется.

  • Live Writer Wrap Up Tool: моя версия
  • Я сделал свое первое приложение на C#! Поздравляю меня. оно содержит кое-какие ошибки, но именно с его помощью я только что создал это сообщение ;)

  • Русинович пишет детектив, MS OneNote доступен к скачиванию для iPhone
  • Спешите видеть, спешите слышать – мир сошел с ума, но мне это даже нравится =)

  • Секреты %SystemRoot%System32: Schtasks
  • Продолжение серии про System32.

  • Секреты %SystemRoot%System32: Auditpol

    Еще одно продолжение той же серии.

  • Реклама

    >Секреты %SystemRoot%System32: Auditpol

    >

    CLIА вот эта команда очень даже полезна в случае, если Вам нужно тонко настроить аудит. Например, Вы не сможете только с помощью GUI установить “Audit directory service changes” не установив “Audit directory service replication” и еще парочку, потому что “Средства с интерфейсом Windows, позволяющего просматривать или задавать подкатегории политики аудита, в Windows Server 2008 нет”. Так что Вы крайне нуждаетесь в этой утилите, если есть нужда в настройке подкатегорий аудита. Так же она Вам нужна для создания скриптов, изменяющих или анализирующих SACL. А еще она пригодится для резервного копирования и восстановления политик аудита (скажем, Вам нужно на время поиска решения проблемы включить расширенный аудит, а потом выключитьт его). А еще она может полностью или частично сбросить политики аудита.

    Обалдеть! Пишу вот это и преисполняюсь благоговения. Мне следовало лучше использовать этот инструмемнт Winking smileСинтаксис весьма обширен, так что читайте сами, а я приведу здесь лишь самый простой пример использования утилиты:

    image

    Have fun! =)

    >Секреты %SystemRoot%System32: Schtasks

    >

    CLIПосле моего предыдущего поста из этой серии о команде AT я получил некий фидбек от людей, очевидно, не любящих читать до конца Winking smile Впрочем, они вполне справедливо указали мне на то, что AT устарела и хорошо бы использовать schtasks. Они знали! =)

    Несмотря на все мои ужимки, schtasks и впрямь значительно более мощная утилита и, раз уж она так всем нравится, я решил посвятить следующее сообщение серии ей, а не auditpol, которая следует за AT в моем списке. Приступим.

    Schtasks

    По сравнению с AT данная команда является большим шагом вперед. Правда, посмотрите только на ее подкоманды: create, change, run, end, delete, query. Собственно, этот инструмент позволяет делать абсолютно все, что Вы можете сделать с помощью консоли Scheduled Tasks в панели управления. А так как это утилита командной строки, то все это еще можно и заскриптовать. Как обычно, впрочем, такая мощь имеет свою обратную сторону: описание ее синтаксиса состоит из 33 страниц в MS Word шрифтом размера 8,5. 33 страницы! И все же рекомендую переключаться на нее, потому что, буду честным, если Вам хочется хоть чуть-чуть большего, чем может Вам предоставить команда AT, то особых вариантов у Вас нет. Кроме того, если лениться чуть меньше и освоить ее синтаксис, то результат может приятно удивить:

    schtasks /create /tn “Shutdown Friends Machine” /tr “shutdown /s /f /t 0” /sc minute /mo 5 /s friend

    Эта команда заменяет все строки из моего примера в статье про AT.

    >Русинович пишет детектив, MS OneNote доступен к скачиванию для iPhone

    >

    Вот такой вот сумасшедший мир нас окружает. А новости правдивые:

    Новая книга Марка Русиновича

    Этот товарищ, более известный нам по всяким утилитам и Windows Internals внезапно разродился детективом-триллером Zero Day. Что-то там о кибер-преступности, кибер-атаках и всяком таком. Я дежа не буду читать отрывок, а просто куплю ее, когда она станет доступна (March 2011). Пред3@к@3 уже д0ступен. Winking smile

    OneNote доступен на iPhone/iPod/iPad.

    И даже работает, хотя я еще не до конца синхронизировал его из моего SkyDrive хранилища. Процесс продолжается, а Вы пока качайте с Apple Store.Продукт бесплатен “ограниченное время”

    >Live Writer Wrap Up Tool: моя версия

    >

    Как я уже говорил когда-то, парень по имени Simon May создал небольшую программку, которая позволяет Вам создать с помощью Live Writer сообщение, состоящее из перечисления Ваших же (или чужих – смотря на чью RSS-ленту натравить приложение) сообщений в блоге. Забавное и полезное приложение – ежемесячно экономит мне какое-то время. Однако я решил:

    1) адаптировать ее слегка под собственные нужды

    2) Написать, наконец, мое первое приложение с… Черт, я не писал ничего серьезнее скриптов уже лет 15. =)

    Так что парень с больше, чем одним блогом и навыками программирования на уровне BASIC’овского (даже не VB) “Здравствуй, Мир” закрыл глаза, скачал Visual C# 2010 Express и начал разрабатывать свое собственное приложение. Ну ладно, глаза пришлось открыть еще на стадии скачивания VS. Потом я взял Саймоновские объяснения его процесса создания программы, потратил 10-15 (да, я знаю, у матерых программеров это заняло бы от силы пару часов, включая поиск иконок Winking smile ) часов в поисках решений возникавших передо мной проблем на MSDN и других ресурсах Интернет и… 

    image

    Да, моя программа далеко не так хорошо выглядит, как хотелось бы (я даже скачал Expressions, но кривым рукам он не поможет, увы =) ), однозначно более сложная, чем ее исходный вариант и содержит орфографические ошибки (будет исправлено в следующем “релизе”. Ага, я теперь могу делать “релизы”. Прям как настоящий сварщик программист =) )

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

    /// Ну и расскажите мне на милость, что я тут только что сделал? Я так понял, это LINQ?
    OrderedFeed = feed.Items.OrderBy(i => i.PublishDate);

    Но эта штука РАБОТАЕТ! По крайней мере, в моих сценариях.

    Я заменил календарь, который был в версии от Саймона на выбор дат, добавил возможность выбора двух предопределенных интервалов времени, возможность запоминать больше одной RSS-ленты и сортировку списка сообщений блога по времени. 

    Какова мораль истории? Вы можете создавать свои программы, даже если Вы не профи в этом. С помощью Visual Studio это и впрямь легко. Так что если Вам нужно что-то маленькое, но Вы не можете найти программы, которая это делает – напишите ее.

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

    1) Процесс был развлечением для меня. Программа была создана для меня. Я обещаю Вам, что не планировал никаких вредоносных функций для программы, однако, с какой стати Вы должны мне верить? Я уже не говорю о том, что она лежит на бесплатном хостинге, и никто не знает, что с ней там может случиться. В любом случае – я не несу никакой ответственности за ее использование и результаты оного. Разве что только за хорошие =)

    2) Программа будет искать обновления при старте. Если Вам нужна версия, которая не делает этого – напишите ее сами. Мне так удобнее =) 

    3) Если у Вас есть идеи по улучшению программы: напишите мне и я обдумаю Ваше предложение. Я не обещаю реализации Вашей идеи, и работа над программой вряд ли станет когда-нибудь высокоприоритетной задачей для меня, но иногда я буду заниматься и этим, почему нет?

    4) Если Вам нужны исходники… Не проблема, но:

    • Если Вы новичок в программировании вообще или в C# в частности, то я рекомендовал бы написать ее с нуля. Так будет и веселее, и больше пользы, чем в случае, если Вы просто скачаете и скомпилируете мои исходники. 

    • Если Вы профи, то я дам Вам исходники только если после того, как Вы над ними отсмеетесь, Вы объясните мне как мне исправить или улучшить сотворенное =)

    5) Программа создает в реестре ключ HKEY_CURRENT_USERSoftwareWLWWrapupper, который не удаляется при деинсталляции программы. Удалите его вручную, если он Вас раздражает.

    Ну и если Вас не напугали все мои предостережения, то устанавливайте ее  отсюда.

    >Создание самоподписанного сертификата для подписи кода

    >

    imageПросто на тот случай, если Вам лень погуглить, или Вы не любите решений длиннее двух строк, ну и для себя – чтобы ближе тянуться в следующий раз.

    Иногда хочется быть уверенным хоть в какой-то степени, что скрипт, или код, который Вы вот-вот запустите, является тем самым, который Вы написали черт знает когда. Одним из путей достижения этого состояния просветления является закрытие флешки с кодом в сейфе. Второй вариант – подписать код. Вторая возможность обычно считается, да и является более удобной, однако требует специального сертификата. Причем покупка такового в общем-то не самое дешевое удовольствие: минимум, который мне удалось найти это 99 долларов за год. С одной стороны, не такая уж огромная сумма, с другой, есть ли смысл платить, когда единственная цель – убедить себя, что это Ваш собственный код? Может быть да, может быть – нет (это тема отдельного далеко не однозначного разговора), и если Ваш ответ “нет”, то Вы можете без излишних трат создать Ваш собственный сертификат, который будет не хуже, чем у Verysign до тех пор, пока Вы не попытаетесь убедить кого-либо еще, что это именно Ваш сертификат и что ему можно верить =) 

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

    1) Скачиваем Windows SDK (нам в любом случае нужно это сделать, даже по тем двум рецептам, поскольку именно там располагается makecert), устанавливаемего и следуем в его папку.

    2) makecert.exe -cy end -pe -r -n «CN=Имя Вашего Супер-Сертификата» -sky Signature –sv path_tokey.pvk path_tokey.cer

    3) pvk2pfx.exe -pvk path_tokey.pvk -spc path_tokey.cer -pfx path_tokey.pfx

    4) Импортируем ключ key.pfx в Ваше хранилище сертификатов. Или на Вашу смарткарту .

    Используете его там, где Вам необходимо. Заметьте, что выделенные части нужно на что-то заменить.

    Надеюсь, для Вас это сработает как и для меня.

    Описания для makecert и pvk2pfx здесь и здесь.

    >Секреты %SystemRoot%System32

    >

    Помните мою серию “старая добрая командная строка? Подчиняясь наказу Васи Гусева я продолжаю. Но теперь я буду брать интересные команды не с какого-то там сайта, а из недр своей собственной Windows 7. Начнем с папки, указанной в теме. Обычно это c:windowssystem32, но кто знает, что Вы могли сотворить со своей невинной системой?

    Что же, начнем, пожалуй. И первым участником шоу становится:

    at.exe

    Ну, ну, ну… Только посмотрите, кто нарисовался. Эта команда эпизодически считается устаревшей кем ни попадя начиная с Windows 2003 RTM, но все еще включена в состав W7. В то время, как мы имеем значительно более мощную schtasks (будет освещена в одном из следующих выпусков), мы все еще можем использовать старичка для создания простых задач или что-то подобное заскриптовать. Почему ее использовать ее, а не более “навороченный” schtasks? Ну, например, можно это делать если Вы, подобно мне, достаточно стары, чтобы помнить синтаксис at (который еще и проще, кстати) и достаточно ленивы, чтобы не помнить синтаксис schtasks. =) Почему я все еще помню как использовать at? Черт, это же было так весело лет так 10 назад сделать такие задачи, чтобы компьютер друга выключался каждые пять минут… Winking smile

    Наверное, это было что-то такое:

    at \friend 00:00 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    at \friend 00:05 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    at \friend 00:10 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    ………………………………………………………………..

    at \friend 23:55 /every:M,T,W,Th,F,S,Su “shutdown /s /f /t 0”

    (Как видите, тогда я не был еще таким ленивым. А еще у нас не было AD и были одинаковые пароли)

    Ну или что-то похожее, я не стал проверять прямо сейчас то, что написал. =)

    Синтаксис тут, ничего не поменялось с пор Win2000.