понедельник, 8 августа 2011 г.

Mark's Blog. Решение проблем с "Sysinternals Administrator’s Reference"

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

Совершенно недавно я опубликовал анонс новой книги Марка Руссиновича - Руководство Windows Sysinternals администратора.

Теперь же публикую новый перевод из официального блога Марка. Он не много перекликается с анонсом книги - человека можно и нужно понять, книга - результат большой проделанной работы. Ну что же, на этом свой комментарий заканчиваю, оставляю Вас с постом Марка. Да прибудет с Вами сила. - ArkSmoke.

Наконец мы с Аароном Маргосисем рады анонсировать долгожданный и слегка занятный релиз официального «Руководства по использованию утилит Sysinternals»(). У меня всегда в глубине души сидела идея написать такое руководство, но эта идея оставалась идеей до тех пор, пока пару лет назад Дайв Соломон (мой соавтор по книге «Windodw изнутри») не предложил осуществить ее. После нескольких неудачных попыток начать писать книгу, я все же решил, что вместе с соавтором книга напишется быстрее, и обратился к Аарону, моему хорошему другу, который долгое время уже применяет программки в своей повседневной работе в Федеральном Отделе Консалтинговых Сервисов Microsoft’а. Это оказался превосходный выбор и отличный бред для книги.

Не важно, Вы только знакомитесь с нашими утилитами или уже работаете с ними с тех пор, как я и Брайс Когсвел (мой соучредитель по Sysinternals и Winternals Software, сейчас вышедший в отставку) выпустили NTFSDOS в 1996 году, будьте уверены, что в книги Вы найдете новые идеи, мысли, которые дадут Вам заметное превосходство при решении проблем с Вашей системой.

В книге описаны более 70 инструментов, с главами, подробно описывающими большие инструменты, такие как Process Explorer, Process Monitor, и Autoruns. В книге приведены подробные описания всех функций утилит, как ими пользова

ться с подробным описанием советов и технологий. Заключительная часть книги окажется знакомой всем, кто проглядывает мог блог или видел «Дело о неизведанном» в рамках конференций, потому что эта часть книги содержит 17 реальных случаев, которые иллюстрируют, как пользователи и администраторы, знающие ОС Windows, используя инструменты от Sysinternals решают задачи, в других случаях не решаемые.

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

Дело о таинственном звуке

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

На прошлой недели он увидел анонс книги Sysinternals. До этого он был обычным пользователем, знающим о существовании утилит Sysinternals, а тут подумал, что более глубокое понимание внутренних процессов системы позволит ему более грамотно управляться с вычислительными ресурсами на работе. Когда он добрался до главы, повествующей об Process Monitor, он прочитал, как много лет назад Дэйв Соломон обнаружив, что с помощью Process Monitor можно разрешить такой большой круг проблем, дал совет: «Когда сложно, запускай Process Monitor». Так как терять уже было нечего, он решился, следуя совету, погонять приведений в своей домашней системе.

Он настроил фильтр, чтобы тот отображал «.WAV», предположив, что призрачный звук будет храниться в общем формате. Он не знал, когда появится этот таинственный звук, поэтому ему пришлось оставить Process Monitor запущенным на несколько часов. Не зная, откуда появится звук: из виртуальной памяти или с диска, он использовал функцию drop filtered events (запоминать активные события) из записей активного фильтра. Оставив Process Monitor запущенным, он пошел прогуляться. Вернувшись с прогулки, он подошел к компьютеру, посмотреть какие же следы оставил преступник. С облегчением, он заметил, что восемь операций использовали активный фильтр:
Эти подсказки ясно показывали, что апплет беспроводного адаптера воспроизводил звуки. После всех этих манипуляций стало ясно, что компьютер большую часть времени находится в зоне действия базой точки, время от времени соединение будет пропадать. Пользователь предположил, что апплет просто информирует его о том, когда связь восстанавливается. Ожидая, что будет возможность отключения этих уведомлений, он нажал правой кнопкой мыши по трею. Ну конечно же, «Enable Internet Connected Notification» (включить уведомление о соединении с интернет) была активна:Со снятой «галочкой» компьютер перестал производить непонятные шумы, дело отправилось в архив. Как следствие: сон нашего пользователя снова стал нормальным, он смог вернуться к своим друзьям, а применение знаний, полученных из «Руководства по использованию утилит Sysinternals» сделало его настоящей звездой на работе.

пятница, 5 августа 2011 г.

Для самых маленьких. Апплет


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

Только с опытом понимаешь, зачем это надо. Но как и во всем мире, в дословном знании определений встречаются свои минусы. Иногда, читая инструкции к работе с тем или иным модулем корпоративной программы, встаешь в ступор, не понимая, о чем-таки идет речь. Лично, я не могу понять смысл подмены одних определений другими, да, не спорю, «транзакция» звучит красивее (страшнее и умнее) «подпрограммы», но только обозначают они разные вещи.

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

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

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

Итак:

Программа — данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определённого алгоритма.

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

Эти определения взяты из ГОСТ 19781-90. Термины общепринятые – ГОСТ не отмененный. Вот только термина «апплет» в нем нет. Поэтому:

Апплет (англ. applet от application —- приложение и -let — уменьшительный суффикс) — это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения.

Или же: Элемент модульных диалоговых сред X Window System (GNOME, KDE, Xfce), Microsoft Windows, Apple Mac OS. Является приложением в машинном коде для соответствующей ОС, взаимодействует с основным приложением (менеджером окон) посредством стандартного API. Хотя обычно под апплетом подразумевают элемент, который может быть отдельно установлен, удалён или настроен пользователем, типичные примеры апплетов — часы-календарь и Языковая панель Windows, Панель управления и различные оснастки консоли MMC.

Получилось у меня пробудить Вас исследовательские жилки?

понедельник, 25 июля 2011 г.

Windows Sysinternals Administrator's Reference. Анонс

Лето - жаркая пора. Увлекся я немного летними заботами и, как следствие, сбился с переводами и обновлениями блога. Вот выдалась минутка и анонсирую новую книгу Марка Руссиновича, посвященную знакомым нам инструментам. Весь материал, как обычно, взят с официального сайта. Просто основные моменты переведены на русский язык для более комфортного чтения.
«Руководство Windows Sysinternals администратора» - официальное издание, посвященное утилитам Sysinternals, написанное разработчиком самих этих инструментов марком Руссиновичем и экспертом в по OS Windows Айроном Маргосисем. В книге описывается более 70 инструментов, целые главы посвящены большим программам таким как Process Explorer и Autoruns. В дополнении «tips and tricks» включены главы, содержащие 17 «Дел об неизведанном…» - примеры боевого использования описываемых инструментов при решении реально существующих проблем с системой.
заказать книгу можно здесь

воскресенье, 26 июня 2011 г.

Для самых маленьких. DoS-атака

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

Итак, автор ArkSmoke или А.Сергеев (кому как больше нравится – лично мне совершенно все равно), название «В атаке»:

Не надо пива и подружек,

И тренировка подождет –

И только мышке придется худо,

Она одна меня поймет.

Забита флэшка под завязку,

На кухне чай давно остыл,

А сервер держится проклятый –

Кто ж так защиту намудрил.

Машина пламенем объята –

Ну что же делать Боже мой –

Она ни в чем не виновата:

Пробьем и этот firewall!

А если тулзы не помогут,

Пойдем с другой мы стороны –

Загрузим Google окаянный:

В нем будут бреши все видны.

Ну что поделать, братья-сестры?

Как нам там Петр говорил –

Окно мы в сервер все ж прорубим,

Пусть ddos-атаку замутим.

И полетят тут мегабайты,

Круша все на своем пути,

И на развалинах системы

Админку надо будет лишь найти.

Теперь и можно взять и пива,

Сказать: «Админчик не дурак»:

Он сделал все в полнее красиво,

И не его вина, что сервер все-таки обмяк.

Теперь пару слов в рубрику «Реальный пример» и определение «Для самых маленьких».

Совершенно верно, что в шутке только лишь доля шутки, о ролях шуток в истории и биографиях замечательных людей можно говорить долго, пошутить мы уже пошутили, а вот теперь пример из жизни: совершенно недавно наблюдал картинку падения серверов достаточно крупной организации. Все бы было ничего, если бы это не была планомерная акция самой организации – надо только додуматься издать распоряжение на одновременное подключение к одному ресурсу, почти всей вычислительной мощи организации (несколько областей центрального региона). Вот сервер и не выдержал. Менеджеры опять доставили кучу работы АйТишникам, а так как многие из этих АйТишников от слова Ай, то систему еще не в полном объеме восстановили, вот Вам живой пример DdOS атаки и грамотности управленческого персонала.

Сейчас самым маленьким читателям поясню, о чем идет речь:

DoS-атака (от англ. Denial of Service, отказ в обслуживании) — атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам (серверам), либо этот доступ затруднён. Отказ «вражеской» системы может быть как самоцелью (например, сделать недоступным популярный сайт), так и одним из шагов к овладению системой (если во внештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т. д.).

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

четверг, 2 июня 2011 г.

Где одни в поле...

Пролистал (прочитать не хватило нервов) новостную ленту, которую однажды озаглавил «Информбезопасность». Лента сама по себе скучная. Но вот общая картина, которую она нарисовала, получилась удручающая: Англия и Китай готовятся к кибер войне, при этот Китай обороняется, Англия нападает, защита Китая уже отразила несколько атак, США приравнивают хакеров к мафиози и во всех бедах и коллапсах винят Китайских хакеров (благо Бена Ладена уничтожили). Что происходит в России? А в России принимается закон о минимальной заработной плате – меньше пяти тысяч. И что же получается: когда весь цивилизованный мир готовится к информационным войнам, мы думаем, как до получки дотянуть? Вообще говоря, правильный подход – нечего народу голову забивать какой-то там безопасностью, пусть про экономику думают – благо есть кому: экономистов и юристов пруд пруди, а инженеров днем с огнем, что говорится. Но суть не в этом, суть в подходе к решению системных проблем. Проще говоря, этого подхода нет совсем: все, что мы знаем про информ безопасность, собрано по крупицам энтузиастами – и этот энтузиаст может сразиться с целой армией, и не будет понятно кто кого. Вот где одни в поле воин – на поле информационных воин. =)

четверг, 19 мая 2011 г.

Для самых маленьких. Точка входа


Продолжая переводить пост Марка Руссиновича, столкнулся с еще одним термином – Точка Входа. Заостряю Ваше внимание на терминологии. Если есть желание стать профессионалом в той или иной области, то надо начинать с грамотного и точного употребления терминологии – ну путайте, пожалуйста, терминологию со сленгом. Употребления сленга (профессионализмов – как принято говорить) не показывает, что человек профессионал в этой области, это быстрее показывает на то, что человек не владеет терминологией. Имейте это ввиду. Итак,

Точка входа — адрес в оперативной памяти, с которого начинается выполнение программы. Другими словами — адрес, по которому хранится первая команда программы. Однако не надо путать ее с «первыми командами» программы на языке высокого уровня. Например программа на C++ начинает выполнение с функции «main()», на самом деле, программа в памяти начинается далеко не с первой команды функции «main()».

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

Это все, что надо знать про точку входа, для чтения поста Марка Руссинович. Да прибудет с Вами сила!

воскресенье, 8 мая 2011 г.

Для самых маленьких. Реверс-инжиниринг


Работа над очередным переводом поста Марка Руссиновича обозначила необходимость создания нового поста в рубрику «Для самых маленьких». Лично я очень люблю эту рубрику: зачастую мы мало времени уделяем основам, а потом, как результат, говорим на разных языках, вкладывая в одни и те же термины совершенно разные значения. А знание терминов, я отношу к базовым знаниям предметной области.

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

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

Итак, сегодня у нас на повестке дне вопросы, связанные с обратной инженерией. Интересно? Тогда – поехали:

Обра́тная разрабо́тка (обратный инжиниринг, реверс-инжиниринг; англ. reverse engineering) — исследование некоторого устройства или программы, а также документации на него с целью понять принцип его работы и, чаще всего, воспроизвести устройство, программу или иной объект с аналогичными функциями, но без копирования как такового.

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

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

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

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


Дизассемблер
— транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера.

Что делать с листингом на ассемблере? – изучать, и понимать, что делает каждый программный модуль. Страшно? А кто говорил, что будет легко.




  • Автоматические
  • Интерактивные

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

Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ.

Прозвучал термин «транслятор». В данном посте определим его просто: транслятор – программное средство, позволяющее переводить код программы, написанной на более высоком уровне, в код более низкого уровня. И так по цепочке, до машинного кода.

Теория трансляторов и компиляторов достаточно интересна, базируется на теории алгоритмов, и требует отдельного разговора.