Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

интернациональное программирование

N|M{INT3 TEAM}{NIM@INT3.RU}

Спецвыпуск: Хакер, номер #065, стр. 065-032-6


Пространство имен System.Windows.Forms содержит классы для создания приложений Windows, которые получают преимущество при применении возможностей пользовательского интерфейса, доступных в операционной системе Microsoft Windows. Также это пространство имен содержит основные элементы управления, например Button, ListBox, Combobox, CheckBox, Textbox, etc. Пространство имен System.Resources предоставляет разработчику классы и интерфейсы для создания, сохранения и управления различными зависящими от культуры ресурсами, используемыми в приложении.

Из всех классов в пространстве имен System.Resources один из самых важных — класс ResourceManager. Он предоставляет пользователю доступ к ресурсам и управление ресурсами, содержащимися в главной сборке, так же, как и ресурсами сопутствующих сборок. Методы ResourceManager.GetObject и ResourceManager.GetString используются для получения объектов и строк, принятых в данной культуре. Пространство имен System.Data состоит в основном из классов, входящих в архитектуру ADO.NET (она позволяет выполнять сборку компонентов, эффективно работающих с данными из различных источников). В случае отключенного сценария (например Internet) ADO.NET предоставляет средства, позволяющие запрашивать, обновлять и согласовывать данные в многоуровневых системах. Архитектура ADO.NET также использована в приложениях клиента (таких как Windows Forms или страницы HTML), созданных ASP.NET.

System.Web осуществляет поддержку классов и интерфейсов, предназначенных для обеспечения взаимодействия между обозревателем и сервером. Пространство имен включает класс HttpRequest, предоставляющий развернутые сведения о текущем запросе HTTP, класс HttpResponse, управляющий выводом данных HTTP для клиента, и класс HttpServerUtility, с помощью которого можно получить доступ к программам и процедурам сервера. System.Web также включает классы для операций с файлами cookie, для передачи файлов, исключения сведений и управления выходными данными кеширования.

И это далеко не полный список!

[взломоустойчивость кода] .NET-программ довольно высокая. Разработчики больше не обязаны делать проверки на переполнение буфера. Недавно один мой знакомый спросил меня, как в .NET-программах подсчитывается длина (Length) строки (так же, как в программах С++) по 00-байту. Мой ответ был прост: длину строки определяет свойство Length, а не строка определяет его ;). Друг не обрадовался ответу :) — данное обстоятельство делает невозможным переполнение буфера, и в .NET под любую строку будет создан буфер, соответствующий любому размеру строки вне зависимости от ее содержания. Даже если кто-то найдет способ внедрить шелл-код, то потенциальных хакеров определенно будут ждать сложности. В .NET-программах запрещено выполнение кода в хипах (heaps) и в стеке, что обессмысливает саму возможность переполнения. Кроме того, есть дополнительные средства защиты (я уже упомянул их в начале статьи): атрибуты привилегий кода, с помощью которых программе запрещают выполнять потенциально опасные действия, например можно запретить доступ программы к реестру поставив атрибут:[System.Security.Permissions.RegistryPermission(System.Security.Permissions.SecurityAction.Deny)]. Если гипотетический шелл-код попробует обратиться к реестру в контексте данной программы, то возникнет исключение. Более того, запретив обращение к реестру во всей программе, можно определить атрибут для класса или метода, которым все же будет разрешен доступ к реестру, и то только к определенным ключам :), [RegistryPermissionAccess.Write Or RegistryPermissionAccess.Read, "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0")]

Назад на стр. 065-032-5  Содержание  Вперед на стр. 065-032-7