Блог

Управление DACL

Когда-то я уже описывал примеры работы с DACL и данная информация попала в книгу Delphi глазами хакера 2-е издание и появиться во втором издании C++ глазами хакера, которая сейчас находиться на этапе редактирования. Сегодня я нашел интересный пример, простой, но очень интересный, в котором с помощью таблицы DACL вы можете управлять процессом, например, запретить закрытие программы. Не нужно ничего придумывать и реализовывать собственные системы защиты, когда можно использовать DACL.

Данный проект позволяет вам заменить существующую таблицу DACL (Discretionary Access Control List) на собственную. Когда вы сделаете это, вы получите возможность ограничить возможности такие как завершение процесса, получения указателя процесса, чтение памяти, и т.д.

Резиновая Зина или рамка для выделения в .NET Framework

Существует множество различных типов приложений, где используется резиновая прямоугольная рамка для выделения, которая рисуется, пока мы тянем мышкой, удерживая нажатой клавишу. Такое часто можно увидеть в графических приложениях, при выделении областей, при рисовании прямоугольников/кругов или других фигур, а так же при перемещении каких-то объектов или изменении их размеров. Как можно реализовать это в своих приложениях? В этой статье я покажу современный метод.

Для рисования рамки можно использовать старые функции с операциями растеризации, такие как XOR. Растеризация специфична для старого графического интерфейса GDI и отсутствует в новой реализации GDI+. Раньше, мы должны были рисовать прямоугольник, используя включенный режим растеризации ROP2_XORPEN. Чтобы стереть рамку, не нужно перерисовывать всю сцену, достаточно еще раз нарисовать рамку, и она исчезнет.

Этот смешной мир

Я на ASP.NET никогда еще не программировал и даже не пытался изучать. Но тут пришла необходимость разработать сайт на платформе Windows и я решил выбрать ASP.NET. Я понимаю, что Internet Information Server (IIS) может выполнять сценарии на PHP без каких-либо проблем, но я не люблю забивать гвозди плоскогубцами. Раз передо мной платформа Windows, то вполне логично будет писать на более заточенном под платформу языке ASP.NET, заодно разберусь в ASP и посмотрю, что там такого интересного.

Ну что можно сказать по первым ощущениям. Язык, конечно же, будет мощным, потому что там используется C# (можно юзать и VB.NET) и он другим просто не может быть. Хотя тут не столько зависит от языка, сколько от самой платформы. В .NET Framework все равно на каком языке ты пишешь, возможности одни и те же, поэтому с тем же успехом можно было бы использовать VB.NET. У меня на VB аллергия уже давно, но есть любовь к C#, поэтому с языком пока не возникло особого недопонимания.

Будущее Delphi 2009 глазами старого программера

Недавно меня тут спрашивали о будущем среды разработки Delphi. C одной стороны, оно туманно, но с другой стороны, прекрасно. Сегодня я опубликовал статью, которую написал еще летом, но в интернете еще не светил.

Сегодня ко мне обратился мой друг (по совместительству редактор кодинга) с просьбой поделиться мнением по поводу будущего среды разработки Delphi. Не могу отказать, тем более, что тема очень волнует меня самого и многих программистов, которые пишут на Delphi. В нашей стране таких людей тысячи, нет, десятки тысяч. Одна только Библия Delphi разошлась тиражом более 20 тыс. экземпляров, а сколько любителей этой среды разработки не купило книгу? :). И все они волнуются за свое будущее и будущее своей любимой среды разработки.

Когда компания Borland выпустила первый релиз среды разработки Delphi, это был невероятный прорыв. Таких визуальных средств мир еще не видел. Те, кто не любит заниматься кодингом визуального интерфейса, а любит тратить время на более интересные занятия, восприняли новинку с большим энтузиазмом. Среди таких "энтузиастов" оказался и ваш покорный слуга. А что делать? Ну не люблю я ставить кнопочки вручную, а предпочитаю перетаскивать их с панели инструментов визуально на визуальную форму.

Поддержка Unicode, безопасность и переполнение буфера

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

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

Почему нельзя просто поменять функции работы с однобайтными строками на двубайтные? Вот тут я могу сказать, что такое делать никогда нельзя, потому что это безопасность. Что будет, если вы просто поменяете функцию копирования строки с однобайтной, на двубайтный? Если функция принимает количество копируемых символов, то вы получите классическое переполнение буфера. Старая функция при копировании 10 символов, копировала 10 байт, а новая будет копировать 20 байт.

Multi-touch технология с помощью Touchless SDK

Не смог удержаться и решил опубликовать эту новость и на блоге. На сайте Codeplex появился Touchless SDK, который позволяет разработчикам создавать и использовать multi-touch приложения. Данный проект был создан Mike Wasserman-ом как проект в университете Columbia University.

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

Читать полную новость Touchless SDK

Разные подходы и языки программирования

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

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

Как я отношусь к .NET

Когда .NET только анонсировали, то многие считали, что Microsoft просто придумывает альтернативу Java и хочет задавить конкурента непонятно зачем и почему. Я не увидел в этой разработки ничего гениального и удобного с точки разработки программ. Код, созданный в Visual Studio .NET выглядел не эстетично, и главной причиной было то, что все находилось в одном файле – сгенерированный дизайнером код и написанный программистом. Это было ужасно.

Первая версия .NET действительна была похожа на то, что ее делают ради кроссплатформы и Джоел на своем блоге даже написал знаменитую заметку о том, что Microsoft теряет контроль над самым главным своим состоянием – над API. В интернете быстро появился открытый проект Mono, который реализовал .NET для Linux. Если я не ошибаюсь, то первую версию он реализовал полностью. Сейчас я могу сказать, что Microsoft не потеряла контроля над API, а постепенно получает над ним контроль и компания не создала конкурента для Java, она создала хорошего помощника для неуправляемого кода, написанного на C++ или Delphi.

Новый компонент файлового навигатора для .NET

Вчера на сайте Heapar Software я выложил новый компонент для .NET программистов, и для работы с файловой системой: File Explorer Control .NET. Компонент позволяет просматривать файловую систему, ее директории и файлы, а так же запускать нужный файл.

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

Для России и стран СНГ данный продукт будет распространяться совместно с Essential Library .NET, поэтому ссылки на регистрацию у обоих продуктов на один и тот же сайт. Купив Essential Library .NET, ты получаешь File Explorer Control .NET и наоборот. Это так сказать цена на рекламный период. В будущем я возможно разделю проекты в регистрации и каждый из пакетов придется регистрировать по отдельности.

Случайное везение из-за оптимизатора Delphi

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

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

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне