Для того, чтобы файл .bash_aliases начал обрабатываться, нужно раскомментировать следующие строки в файле ~/.bashrc:
#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases
#fi
IT-Блог о программировании и операционных системах
VR-Online (29) Декабрь 2010 |
Здравствуйте читатели!
Буквально на днях, мы (Delphi-блоггеры) обсуждали идею создания нового журнала о Delphi. После достаточно продолжительного общения на IRC-канале, было решено, что нужно узнать мнение общественности.
GunSmoker составил анкету, которую предлагается заполнить каждому заинтересованному в Delphi. Заполнив анкету, вы очень поможете в формировании общего представления о том, какой должен быть журнал о Delphi, как лучше преподнести информацию, стоит ли делать журнал платным и т.д.
Ваше мнение очень важно для нас. Если у вас есть несколько минут свободного времени, то пожалуйста, ответьте на вопросы следующей анкеты: Анкета. Опрос полностью анонимный.
После заполнения анкеты, пожалуйста, помогите распространить эту новость среди русского Delphi-сообщества: отправьте её своим коллегам, на форумы, где вы обычно проводите время и т.п. Только, пожалуйста, без спама.
Искренне надеемся на вашу помощь. Спасибо.
Логические ошибки – это ошибки в самой логике выполнения программы. Примером логической ошибки в программе может служить например ситуация, когда программа учёта разрешает приходовать один и тот же товар дважды. Логическая ошибка как правило не вызывает сбоя работы программы, но заставляет ее работать не так, как этого задумывал программист.
Динамические ошибки – это ошибки, которые всплывают на этапе выполнения программы. Примером может служить ситуация, когда в переменную типа byte программа будет пытаться положить значение большее, чем этот тип сможет в себе содержать. Например, число 3000.
Вот уж действительно не думал, как говорится, не гадал… Можете поздравить меня, Влада, ГанСмокера и Алексея Тимохина! Все мы получили очень хороший подарок от разработчиков компании RDX Software, а именно систему CodeMerger! Мне действительно очень приятно! Я ещё никогда ничего не выигрывал в Интернете, а тут бац!… такой презент! Я искренне желаю компании RDX всех благ и процветания, успешных продаж и доброжелательных пользователей. Молодцы мужики!
Напомню, что получили мы этот драгоценный приз за то, что просто высказали свои пожелания насчёт дальнейшего развития Delphi!
До скорых встреч, уважаемые посетители и подписчики блога Delphi Day!
Всё, что требуется сделать, для получения бесплатного рекламного места в сайдбаре блога FreeVCL – это:
• Написать у себя на блоге мини-обзор (хотя можно просто постовой, одно или два предложения) для FreeVCL, указав прямую, интерактивную ссылку.
• Залить своё изображение размера 125x125 себе на хостинг (можете прислать мне)
• Написать мне письмом, или в ICQ, указав ссылку на пост
• Я размещу ваш баннер на месяц или полтора.
Хоть FreeVCL и молодой блог, но его посещает уже более 100 человек в день. Вообщем, выгодно и нам и вам :) Спасибо, что откликнулись. С уважением, Егор.
В этой части рассмотрим ещё одну технику защиты приложений, а именно мы рассмотрим некоторые навесные защиты.
Навесная защита – это некая программа, при помощи которой можно модифицировать свой исполняемый модуль так, чтобы затруднить непосредственно взлом своего программного обеспечения. Эта программа может сжать секцию данных и кода, уменьшив тем самым размер исполняемого файла, но основной функцией протектора является как раз не сжатие (чем занимаются упаковщики), а защита программного кода.
Что означает “защита программного кода”? Это просто комплекс мер, призванный для того, чтобы вашу программу было труднее взломать. Например, это может быть подмена устойчивой сигнатуры, при помощи которой программы – анализаторы (типа PEiD, DiE) узнают, чем защищена программа или на чём она написана. Большое число антиотладочных приёмов и хитростей.
Продвинутый протектор может например зашифровать секции, или поубивать процессы известных крякерских инструментов. Вообщем, цель протектора – сделать всё и как можно больше, для того, чтобы по максимуму затруднить взлом.
Themida - это мощная система защиты программного обеспечения для разработчиков, которые хотят защитить свои приложения от взлома. Themida использует систему защиты SecureEngine, что делает ее почти неуязвимой к традиционным и новейшим инструментам для взлома ПО.
Themida была разработана, чтобы полностью отсеять новичков, а также опытных крекеров от взлома ваших программ, что позволяет избежать значительных потерь доходов от распространения кряков и кейгенов.
Некоторые полезные возможности данного протектора:
Наиболее интересные опции защиты:
Anti-debugger detection. Данная опция включает обнаружение отладчика в системе. Отладчик уровня ядра или пользователя – неважно! Примечание: если опция в положении Ultra, может вызывать некоторые проблемы, особенно если файл заражён вирусом, также, эта опция может быть несовместима с платформами отличными от Windows.
Anti-dumpers. Как вы знаете, одним из самых опасных инструментов против защищённой (запакованной) программы является дампер памяти. Взломщик может скинуть в файл распакованный код и данные, а затем попытаться восстановить его в первоначальный вид (до расспаковки). SecureEngine предлагает много техник защиты от сдампливания. Эта опция включает наиболее действенные техники нацеленные против дампа памяти в файл на диск.
Resources Encryption. Шифрование ресурсов программы. Если включить эту опцию, то движок SecureEngine зашифрует все ресурсы так, чтобы взломщик не смог проанализировать и\или изменить их. Распаковка ресурсов происходит тогда, когда этого потребует ваше приложение.
VMWare / Virtual PC. Опция позволяет предотвратить запуск вашего приложения на общеизвесных эмуляторах, таких как VMWare, Virtual PC, Virtual Box или Microsoft VM.
Advance API-Wrapping. Эта опция позволяет включить упаковку API, что не позволит взломщику идентифицировать используемые в приложении функции. Можно выбирать уровень упаковки. Имейте ввиду, что чем выше уровень упаковки, тем большее процессорное время затрачивается для оной! Например, использование этой функции с уровнем “2” может в несколько раз уменьшить время запуска вашего приложения!
Anti-Patching. Предотвращает попытки запуска измененной копии программы. То есть, если например файл заражён вирусом, или его изменил взломщик, Themida это распознает и покажет окно (которое кстати тоже можно настроить), что мол файл изменён и всё такое, а затем завершит выполнение.
Metamorph Security. Эта опция позволяет изменить все инструкции защитного кода на другие, но одинаковые по действию. Это затрудняет взломщику процесс распознания устойчивых кусков кода защиты.
Delphi/BCB form protection. Защита форм приложений, которые скомпилированы в Делфи или Билдере. Взломщик не сможет извлечь информацию о формах с помощью специальных инструментов.
Themida поддерживает ещё достаточное количество приёмов и функций, о которых можно узнать обратившись к справочной системе. Themida по праву считается одним из самых сильных протекторов, который способен помочь вам защитить ваши продукты от взлома. К сожалению, на тематических форумах появляется всё больше и больше сообщений о том, что фемида взломана. Появляются статьи и видео, которые показывают нам, как ее снять. Но нужно отдать должное – продукт развивается, в отличии например от Armadillo, которая по словам крекеров, умерла.
Замечание: Themida не поддерживает упаковку динамических библиотек, которые статически прилинкованы к проекту. Придётся использовать динамическое связывание.
Отечественная разработка от компании VMPSoft. Как видно из названия, главной (но далеко не единственной) фишкой данного протектора является выполнение кусков кода на виртуальной машине. Как утверждает описание продукта, архитектура виртуальной машины кардинально отличается от обычных процессоров, что делает использование большинства крэкерских инструментов совершенно бессмысленным.
Хорошей особенностью является то, что в VMProtect встроена своя система лицензирования, которая позволяет генерировать и проверять серийные номера.
VMProtect можно совместно использовать с другим протектором или упаковщиком. Эта возможность помогает ещё сильнее защитить Ваше приложение.
Некоторые возможности VMProtect
Виртуализация кода. В отличии от большинства защит, которые шифруют исполняемый код программы, а потом, перед исполнением основного кода расшифровывают его, VMProtect никогда не расшифровывает код программы. VMProtect переводит исполняемый код программы в код, который работает только на виртуальной машине. Набор команд этого процессора не имеет ничего общего с системой команд x86 & x64 и может меняться с каждой защитой программы.
Форматы файлов. Данный протектор позволяет защищать как исполняемые модули, так и динамические библиотеки (DLL, OCX, BPL), а также драйверы (SYS).
Поддержка 64-битных платформ.
Система лицензирования. Как я говорил, VMProtect позволяет генерировать и проверять серийные номера. Серийные номера могут ограничиваться по сроку действия, могут привязываться к железу. Также интересной особенностью VMProtect является то, что он может сделать физически невозможным запуск программы в отсутствии серийного номера.
К сожалению, уже даже к последней версии этого протектора китайцы написали автораспаковщик (в лице скрипта для олли). Но кто сказал что это идеальная защита? Протектор реально помогает только тогда, когда и код программной защиты (Ваш) написан грамотно.
Вердикт: Достаточно хороший протектор исполняемых файлов, который в состоянии дать отпор взломщику начального и среднего уровня.
Приложение 1
Статья, которая обьясняет некоторые приёмы использования VMProtect для защиты делфи-приложения. Тыц.
Ещё парочку приличных протекторов мы рассмотрим в следующей части.
Итак, в прошлой статье (ссылка) мы рассмотрели, какие инструменты может использовать крэкер для взлома нашего программного обеспечения. В этой статье давайте поговорим о том, какие методы защиты мы можем предложить на пробу взломщику.
Все они достаточно разные. У каждой есть свои сильные и слабые стороны. Какие-то отламываются быстрее быстрого, а над какими-то нужно посидеть несколько больше. А какие-то в принципе не отламываются (да, есть такая).
Итак, давайте рассмотрим самые распространённые из них и поговорим об их сильных и слабых сторонах. Но для начала, чтобы развеять все ваши грёзы, запомните одно очень сильное и основное правило: