Что такое free версия программы

Содержание

Free Pascal, иначе называемый FPC (Free Pascal Compiler) — это 32х-разрядный, кросс­плат­фор­мен­ный компилятор языка Pascal. В настоящем обзоре я рассмотрю его основные ха­рак­те­рис­ти­ки и возможности. Free Pascal относится к категории сво­бод­но­го программного обес­пе­че­ния (free software) и распространяется по лицензии GNU.

Кроссплатформенность

Итак, что в данном случае понимается под кроссплатформеностью? Довольно-таки большое ко­ли­чес­тво платформ, однако. Во-первых, это два типа процессора:

  • i386 — процессоры Intel серии 80×86, начиная с 80386;
  • m68k — процессоры Motorola серии m68k, соответственно.

Для i386 поддерживаются следующие операционные системы:

  • BeOS
  • BSD Unix, а именно:
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Go32v1 — DJ Delorie DOS extender версии 1
  • Go32v2 — DJ Delorie DOS extender версии 2

Версия 1.1 (находящаяся в состоянии разработки нестабильная ветвь) также поддерживает:

CapCut для Windows и Mac. Лучшая бесплатная программа для монтажа видео.

  • OS/2 via EMX
  • Nowell Netware
  • MacOS
  • WDOSX DOS extender

Надо заметить, что поддержка некоторых целевых платформ в нестабильной версии на­хо­дит­ся в состоянии разработки и не впол­не пригодна для серьезной работы. Также в ветке 1.1 идет разработка компиляции для Linux и других ОС на отличных от i386 и m68k типах про­цес­со­ров, таких как PowerPC, Sparc и 64х-разрядные процессоры линии x86.

Непосредственно кросскомпиляция поддерживается, однако возникают серьезные про­бле­мы. Так, например, мне не удалось ском­пи­ли­ро­вать ассемблерные части RTL для Linux ис­поль­зуя версии binutils для DOS и Windows.

Возможности языка

В целом возможности языка ориентированы на развитые «промышленные стандарты», а не на ANSI-стандарт языка, как GNU Pascal. Промышленным же стандартом языка Pascal в нас­тоя­щее время является его диалект Object Pascal от фирмы Borland. Кро­ме того, Free Pascal под­дер­жи­ва­ет дополнительные расширения, нехарактерные для Borland Delphi.

Версия 1.0.10 поддерживает следующие возможности:

  • Object Pascal на уровне Delphi 3, и немного от Delphi 4:
  • Объектные типы, в том числе классы;
  • Длинные строки;
  • «Широкие» строки с поддержкой UNICODE. Впрочем, полной поддержки различных кодовых страниц на данный момент нет, т.е. автоматическое преобразование WideString -> AnsiString и наоборот корректно выполняется только для символов Latin-1;
  • Перегрузка (overloading) функций и процедур.
  • Перегрузка операторов сравнения ( , =, = ), арифметических ( +, -, *, /, **, div, mod ), и оператора присваивания ( := );
  • Поддержка inline- функций и процедур — в отличие от Borland Pascal, такие подпрограммы не требуется писать в машинных кодах;
  • Поддержка примитивных макросов;
  • Поддержка операторов присваивания с выполнением некоторого арифметического действия ( +=, -=, *=, /= ).

В версии 1.1 добавлены средства языка из старших версий Borland Delphi:

Вечный триал для любой программы

  • Динамические массивы;
  • Интерфейсы.

В настоящий момент все перечисленные средства языка работают удовлетворительно, хотя мож­но выделить пару проблем: во-пер­вых, незавершено автопреобразование строк UNICODE, и во-вторых, реализация интерфейсов допускает не­со­от­вет­ствие тре­бо­ва­ни­ям мо­де­ли COM — единственность ссылки на IUnknown должна отслеживаться разработчиком.

Компиляция

Компиляция происходит весьма быстро, поскольку, как и положено компилятору Pascal, Free Pascal работает в один проход. Так, на­при­мер, полная сборка самого компилятора на моем ком­пью­те­ре (Celeron 600) занимает около полутора минут.

Для сборки объектных файлов, получающихся в результате компиляции, вызывается внеш­ний компоновщик — GNU ld (или ldw для Windows-платформы). Вообще, дистрибутив Free Pascal попросту включает в себя пакет GNU BinUtils, частью которого яв­ля­ет­ся ld. Также дан­ный пакет включает в себя кроссплатформенный ассемблер as (asw), GNU make, ком­пи­ля­тор ресурсов для Win32 — windres и другие программы.

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

Компилятор командной строки для платформ i386 называется ppc386 (ppc386.exe для DOS и Windows). В дистрибутив входит так­же «загрузчик» (loader) компилятора, называемый, для лю­бо­го процессора, fpc (fpc.exe). Таким образом, на любой платформе мож­но использовать в ко­манд­ной строке fpc .

Компилятор Free Pascal использует оптимизацию. Хотя она и уступает интеллектуальной оп­ти­ми­за­ции компилятора того же Delphi, од­на­ко рутинную, формальную оптимизацию FPC та­ки выполняет. В частности, можно указать целевой процессор, чтобы ис­поль­зо­вать рас­ши­рен­ный набор команд, отсутствующих в i386, например, команды Pentium II. Для вычислений мож­но задействовать на­бор команд MMX или XMM.

Стандартные модули

В состав дистрибутива входят модули, реализующие основную функциональность. Кон­крет­ный состав модулей зависит от плат­фор­мы. Кроме ядра RTL, дистрибутив включает в себя до­пол­ни­тель­ные модули, на­зы­ва­емые «пакетами» (packages), со­дер­жа­щие, на­при­мер, ин­тер­фейс к API SQL-сервера InterBase (пакет ibase ), или функции работы с регулярными вы­ра­же­ни­ями (пакет regexpr ).

Также наличествует некоторый аналог VCL, точнее ее ядра — основных классов и модулей биб­лио­те­ки. Библиотека на­зы­ва­ет­ся FCL — Free Component Library. Содержит как от­но­си­тель­но примитивные классы, a-la TStringList , так и классы для ра­бо­ты с ба­за­ми данных. Впро­чем, модули FCL в настоящее время явно недоработаны — содержат пробелы в функ­цио­наль­нос­ти и не­ко­то­рые баги.

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

В целом, Free Pascal весьма хорошо документирован.

Документация к версии 1.0.10 состоит из шести частей и распространяется в различных фор­ма­тах, в том числе — исходники LaTeX. В состав дистрибутива входит документация в виде PDF и HTML. Ниже — описание частей документации.

Free Pascal : Reference guide

Справочное руководство. Содержит описание языка и модуля System . Также описывается модуль ObjPas , автоматически под­гру­жа­емый (аналогично System ) при выборе режима ком­пи­ля­ции Delphi , или ObjFPC .

Читайте также:
В какой программе написать прайс для инстаграм

Free Pascal : Users’ manual

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

Free Pascal : Programmers’ manual

Руководство программиста. Описываются режимы компиляции, директивы компилятора, во­про­сы распределения памяти, ком­по­нов­ки, использования ассемблера и так далее.

Free Pascal supplied units : Reference guide

Справочное руководство по стандартным модулям. Довольно подробно описываюся модули RTL, за исключением тех, которые яв­ля­ют­ся интерфейсами к API операционных систем и их ком­по­нент.

Free Component Library (FCL) : Reference guide

Справочное руководство по FCL. В настоящий момент содержит описание классов модуля Classes . По всей видимости, в даль­ней­шем будет расти вместе с доработкой самой FCL. По край­ней мере, я на это надеюсь.

FPDoc : Free Pascal code documenter : Reference manual

Руководство по использованию утилиты для автодокументации fpcdoc, входящей в состав дист­ри­бу­ти­ва.

IDE и утилиты

Вместе с компилятором распространяется IDE (интегрированная среда разработки — In­te­gra­ted Development Environment) тек­сто­во­го режима, похожее на IDE Turbo/Borland Pascal. В нас­тоя­щее время, стабильные версии IDE, насколько мне известно, су­щес­тву­ют только для DOS и Win32, работа над вариантами для других платформ еще не закончена. IDE содержит встро­ен­ную систему отладки — если я не ошибаюсь, с использованием отладчика GNU GDB, — и встроенную справку.

О стабильности IDE, к сожалению, приходится говорить с некоторой натяжкой — проблемы су­щест­ву­ют. Однако, в целом поль­зо­вать­ся можно.

Также в состав дистрибутива входят следующие утилиты:

  • data2inc — преобразует произвольный файл во включаемый файл ( .inc ) для FPC, где соответсвующие данные представлены в виде константы-массива.
  • delp — очищает каталог от «временных» файлов, возникающих при компиляции, таких как объектные файлы модулей и .ppu .
  • fpcmake — используется для подготовки make-файлов для GNU make.
  • fpdoc — генерирует документацию из модулей Free Pascal в форматах HTML и LaTeX.
  • fpmc — компилятор msg-файлов.
  • fprcp — pascal-препроцессор для windres.
  • h2pas и h2paspp — транслятор заголовочных файлов C и C++ в модули Pascal.
  • makeskel — утилита для подготовки скелета xml-описания для fpdoc.
  • ppdep — позволяет получить список модулей, от которых зависит некий данный.
  • ppudump — извлекает информацию из .ppu- файлов.
  • ppufiles — то же, что ppdep, но не для исходных модулей, как тот, а для .ppu- файлов.
  • ppumove — позволяет собирать библиотеки из .ppu .
  • ptop — форматирование исходников.
  • rstconv — конвертирует файлы .rst , создаваемые компилятором для строк, описанных как resourcestring , в формат GNU gettext .po .

Кроме вышеперечисленных, относящихся собственно к Free Pascal, утилит, в дистрибутив вхо­дит, как уже упоминалось, пакет GNU BinUtils.

В настоящий момент находится в процессе разработки RAD для Free Pascal — IDE Lazarus. Су­щест­ву­ет рабочая версия для Linux. Версия для Win32 пока не работает.

Лицензия

Free Pascal распространяется под лицензией GNU GPL (GNU General Public License), вхо­дя­щие в состав дистрибутива биб­ли­о­те­ки модулей — под лиценизией GNU LGPL (GNU Lesser Public License). Таким образом, программы, написанные на Free Pascal, мо­гут рас­про­стра­нять­ся каким угодно образом, в том числе — и закрытым, а исходники самого компилятора дос­туп­ны для из­ме­не­ния и использования с сохранением условий GNU GPL.

Источники в InterNet

Основной источник информации — официальный сайт Free Pascal — www.freepascal.org, а так­же его зеркала, в том числе — на­хо­дя­ще­е­ся в России — www.ru.freepascal.org. On-line до­ку­мен­та­ция находится по адресу www.freepascal.org/docs.html.

Информацию о лицензиях и идеологии GNU следует искать на официальном сайте GNU Project — www.gnu.org.

Дистрибутивы и/или исходники рекомендую скачивать с ftp-зеркала в Черноголовке — ftp.chg.org/pub/lang/pascal/fpc.

Официальный сайт проекта Lazarus — lazarus.freepascal.org

Источник: www.freepascal.ru

что такое free doc на компьютере

Операционная система DOS (Free DOS) на ноутбуке: что это такое

operacionnaya sistema dos free dos na noutbuke

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

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

Что такое операционная система DOS

Аббревиатура DOS расшифровывается как Disk Operating System и обозначает операционную систему, ориентированную на работу с дисковыми накопителями, например, с дискетами или жесткими дисками.

operacionnaya sistema dos free dos na noutbuke chto jeto takoe 1

Логотип Free DOS — самой популярной операционной системы DOS на данный момент.

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

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

Первые дисковые операционные системы появились в начале 60-х годов и активно использовались до конца 80-х. За это время появилось множество разных операционных систем, которые подпадают под определение термина DOS. Наиболее известными из них являются:

В современных условиях операционные системы семейства DOS безнадежно устарели и полностью вытеснены такими графическими операционными системами как Windows, Linux, MacOS и другими.

Операционная система Free DOS и ноутбуки

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

operacionnaya sistema dos free dos na noutbuke chto jeto takoe 2

Интерфейс операционной системы Free DOS. Примерно это вы увидите при первом включении ноутбука с операционной системой DOS.

Еще одна сфера применения FreeDOS – это готовые компьютеры и ноутбуки, на которые Free DOS устанавливается с завода в качестве стандартной операционной системы. Это делается для того, чтобы не устанавливать на компьютер операционную систему Windows.

Отказ от использования Windows позволяет производителю немного сэкономить и снизить цену на данное устройство. Такой подход используют многие производители ноутбуков и готовых компьютеров, например, Dell, Asus, HP, Samsung и Lenovo. Кроме Free DOS в качестве стандартной операционной системы для ноутбука также может использоваться какой-нибудь Linux. В данном случае цель такая же – не использовать Windows и таким образом снизить цену.

Читайте также:
Какая статья уголовного кодекса грозит создателям вредоносных программ для эвм

Для покупателя ноутбука операционная система DOS означает только одно – установкой Windows придется заниматься самостоятельно, поскольку пользоваться компьютером с ОС DOS в современных условиях не реально. Поэтому, если вы умеете устанавливать Windows, то можете не переживать и смело покупать ноутбук с Free DOS. Если же вы хотите получить устройство, которое будет готово к работе сразу из коробки то стоит выбрать модель с предустановленной Windows, ну или хотя-бы Linux.

Первые шаги после покупки нового ноутбука/ПК — Операционная Система (кратко)

Как установить ОС Windows 7 на ноут с ОС FreeDOS?

FreeDOS: что это такое, зачем его приносит ноутбук и как его удалить

20201117 5fb3fedfab707

Что такое FreeDOS: немного истории

FreeDOS

Хотя это не та операционная система, которую мы собираемся использовать в повседневной жизни, почему она установлена ​​по умолчанию на некоторых ноутбуках? Что мы можем с этим сделать?

Почему на ноутбуке установлена ​​FreeDOS?

Основная цель включения этой операционной системы заключается в том, чтобы, когда пользователь включает ноутбук, он может выполнять некоторые основные задачи вместо того, чтобы входить в BIOS или просматривать ОС не найдена ошибка. Поскольку современные ноутбуки не имеют дисковода для гибких дисков, и в большинстве из них даже нет DVD-плеера, эта система готова позволить нам загружать любой контент с USB. Но, как мы говорим, очень ограниченно.

Действительно ли экономия того стоит?

Конечно, мы должны очень хорошо сравнивать цены на ноутбуки. Существуют модели, в которых компьютер с FreeDOS стоит столько же или больше, чем модель с Windows 10. Также может случиться так, что модели без операционной системы имеют другое оборудование, чем Модели Windows (например, больше Оперативная память или другой CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР). Это связано с тем, что, хотя мы сохраняем лицензию Windows, ноутбук не имеет амортизированных затрат на программное обеспечение, которое по умолчанию установлено в операционной системе Microsoft. Таким образом, здесь не так много места для маневра, чтобы сэкономить, и вам нужно найти способ скорректировать цену.

В лучшем из теоретических случаев разница между ноутбуком с Windows 10 и ноутбуком без операционной системы должна составлять около 150 евро. Но на практике, как мы увидим, особой разницы нет.

Как сменить операционную систему

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

Большинство этих компьютеров настроены на автоматическую загрузку с порта USB, если он подключен. Но если нет, мы можем зайти в BIOS или UEFI и измените порядок загрузки так, чтобы он сначала загружал этот диск. Более того, если у нас достаточно знаний, мы даже можем запустить установщик из самой FreeDOS, хотя делать это не рекомендуется.

Particiones instalar Windows 10

С Windows или без Windows, что лучше?

Если у нас будет достаточно знаний, чтобы самостоятельно установить операционную систему с нуля, мы можем сэкономить на разнице, купив модель с FreeDOS. Мы можем даже выберите модель с превосходным оборудованием по той же цене. Однако, если у нас недостаточно знаний для установки Windows или Linux с нуля, и мы хотим открыть коробку, включить ее и начать использовать, то вариант с FreeDOS не для нас; Лучше выбирать ноутбук с установленной Windows и соответствующей ей лицензией.

FreeDOS

dl 260dl 210dl 220

Разработчик: FreeDOS Project
Лицензия: Бесплатно
Версия: 1.2 Final / 1.3 RC4
Обновлено: 2021-07-22
Архитектура: x86
Интерфейс: Русский / Английский
Рейтинг: 3
Ваша оценка:

О системе

Что нового

Новое в FreeDOS 1.3 RC4 (30.04.2021):

Новое в FreeDOS 1.2 Final (25.11.2016):

Источник: doma35.ru

Тест бесплатных проактивок: Проверяем free-версии Avast, Avira, AVG, Comodo, ClamAV

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

Этим отличия от прошлого теста не ограничатся — мы будем тестировать не эвристику, а проактивную защиту. А что же такое проактивная защита? Разные компании используют различные названия: реальная защита, защита в реальном времени и так далее, но суть одна: проверка файла на вредоносность осуществляется в процессе его работы.

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

В качестве испытуемых были выбраны пять антивирусов. В этом краштесте я буду пытаться обойти AV-продукты от Avast, Avira, AVG, Comodo, ClamAV. А теперь — немного конкретики о версии каждой программы и ее настройках.

Avira AntiVir Personal

Первый в списке тестируемых антивирусов: Avira AntiVir Personal — Free Antivirus. Версия 9.0.0.13. В этом продукте присутствует один модуль, который, похоже, выполняет роль проактивной защиты — AntiVir Guard. Его я, естественно, включил. Опции довольно скудные, помимо настройки «агрессивности» анализа я больше ничего из того, что могло бы повлиять на качество защиты в реальном времени, не обнаружил.

avast! FREE Antivirus

Следующий подопытный — avast! FREE Antivirus, версия 110319-1. У аваста, в отличие от авиры, есть целая секция «Экраны в реальном времени». Я убедился, что все модули (а особенно «Экран поведения» — видимо, у аваста проактивная защита именуется именно так), входящие в эту секцию, включены.

AVG Anti-Virus Free Edition

Последний антивирус в нашем тесте, который начинается на букву «a» — AVG. Я тестировал AVG Anti-Virus Free Edition, версия 10.0.1204. Этот антивирус не отличается большим количеством настроек. Насколько я понял, проактивная защита представлена в компонентах Resident Shield, Anti-Rootkit, Anti-Virus и Identity Protection.

ClamAV

Продукт Immunitet 3.0 от ClamAV довольно прост в использовании. Большинство настроек представлено radiobutton’ами — «да» или «нет». Защиту в реальном времени здесь обеспечивает компонент Monitor Program Start. Я дополнительно включил детектирующий движок ClamAV, который был по умолчанию отключен. Отмечу, что при установке я выбрал версию Free (Cloud + AV), а не Trial, которая значительно превосходит бесплатный аналог по функциональности.
Тестировался продукт версии 3.0.0.18.

Читайте также:
Качество связи программа Андроид

Comodo Antivirus Free

Последний исследуемый антивирусный продукт — Comodo Antivirus Free, версии 5.3.181415.1237. В Comodo, в отличие от предыдущих антивирусов, присутствуют очень богатые настройки — интерфейс предлагает нашему вниманию огромное количество галочек и ползунков. Проактивная защита обеспечивается компонентой Defense+, которая также гибко настраивается. Я выбрал максимальный уровень защиты, установив Paranoid Mode, который, правда, практически не отличается от Safe Mode.

Сама методика тестирования очень простая: каждый тестовый файл запускается, а затем я фиксирую (или не фиксирую) предупреждение от антивируса.
А теперь к самому интересному — тестовые файлы.

Тест первый: прописываемся в автозапуск

Простейший вариант — просто чтобы проверить, работает ли проактивная защита вообще. Итак, первый тестовый образец всего лишь прописывает сам себя в «святая святых» Windows — автозапуск по ключу реестра hklmsoftwarewindowscurrentversionrun. Часть исходного кода:

wchar_t szFullPath[MAX_PATH] = ;
GetModuleFileNameW(0, szFullPath, MAX_PATH);
HKEY hKey = 0;
RegOpenKeyW(HKEY_LOCAL_MACHINE, L»SoftwareMicrosoft WindowsCurrentVersion un»,
UINT ExitCode = RegSetKeyValueW(hKey, 0, L»MalwareAutorun», REG_SZ, szFullPath, lstrlenW(szFullPath) + 1);

Алгоритм работы этой программы очевиден — получение полного пути самого себя и последующая запись в автозагрузку в реестре. Это один из самых популярных у зловредов вариантов добавления программы в автозапуск. И каковы результаты? Довольно странно, но самый примитивный способ закрепления зловреда в системе был обнаружен только двумя антивирусами: Avast и Comodo обнаружили угрозу, остальные же не помешали записи в авторан.

Тест второй: получаем права отладчика

Следующий образец я создал, чтобы проверить, как исследуемые антивирусы работают с Token’ами (цифровыми ключами доступа). С этой целью я накидал простую программу, которая выставляет себе права отладчика. Фрагмент исходника:

HANDLE hToken = 0;
UINT nReturnCode = 0;
LUID UID = ;
TOKEN_PRIVILEGES TokenPrivileges = ;
nReturnCode = OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS,
nReturnCode = LookupPrivilegeValueW(0, SE_DEBUG_NAME,
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Luid = UID;
TokenPrivileges.Privileges[0].Attributes = 0;
nReturnCode = AdjustTokenPrivileges(hToken, false,

Код довольно примитивен — получаем токен текущего процесса, а затем ему назначаются привилегии отладчика с помощью функции AdjustTokenPrivileges. И что же? Снова Comodo и Avast справились с этой «угрозой», остальные спокойно промолчали. Ситуация весьма удручающая.

Тест третий: инжект в память чужого процесса

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

UINT nReturnCode = 0;
HANDLE hExplorerProcess = 0,
hSnapshot = 0, hRemoteThread = 0;
PROCESSENTRY32W pe32 = ;
UINT ExplorerID = 0;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize = sizeof(PROCESSENTRY32);
Process32FirstW(hSnapshot,
if(!lstrcmpiW(pe32.szExeFile, L»explorer.exe»))
ExplorerID = pe32.th32ProcessID;
else
for( ; nReturnCode = Process32NextW(hSnapshot, )
if(!lstrcmpiW(pe32.szExeFile, L»iexplore.exe»))
ExplorerID = pe32.th32ProcessID;
break;
>
>
>
if(!ExplorerID)
return 0;
CloseHandle(hSnapshot);
hExplorerProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, ExplorerID);
PVOID pExplorerMemory = VirtualAllocEx( hExplorerProcess, 0, 0x3000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
nReturnCode = WriteProcessMemory (hExplorerProcess, pExplorerMemory, ThreadFunc, 0x1000 ,0);
hRemoteThread = CreateRemoteThread(hExplorerProcess, 0, 0, (LPTHREAD_START_ROUTINE) pExplorerMemory,

Здесь с помощью функций Process32First/Process32Next я ищу необходимый мне процесс iexplore.exe. Далее, когда он найден, я получаю ID процесса, хэндл процесса и выделяю в адресном пространстве последнего регион памяти с помощью VirtualAllocEx. После этого я записываю в выделенную память код моего потока ThreadFunc:

static DWORD ThreadFunc(LPVOID lpThreadParameter)
return 0;
>

Завершающий этап — запуск удаленного потока — выполняется с помощью функции CreateRemoteThread. И как справились с этим антивирусы? Да абсолютно аналогично: Avast и Comodo обнаружили «угрозу», а остальные — нет. Хотя антивирус AVG и выдал предупреждение о неизвестной угрозе, но сделал он это только после того, как удаленный поток стартовал. Кроме того, Anti-Virus Free Edition выдавал предупреждения через раз, поэтому я поставил ему +/- за этот файл.

Тест четвертый: глобальные хуки

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

Фрагмент кода основного файла:

HMODULE hDll = LoadLibraryW(L»DLL.dll»);
PVOID pHookProc = (PVOID)GetProcAddress(hDll, «HookProc»);
HHOOK hHook = SetWindowsHookExW(WH_KEYBOARD, (HOOKPROC)pHookProc, hDll, 0);
Фрагмент кода DLL:
EXTERN_C __declspec(dllexport) DWORD HookProc( int code, WPARAM wParam, LPARAM lParam)
return CallNextHookEx(0, code, wParam, lParam);
>

Чтобы перехватывающая функция обрабатывала все события в системе, она должна быть помещена в DLL в виде экспортируемой функции. Поэтому вначале я получаю базовый адрес вспомогательной библиотеки с помощью LoadLibrary, а затем адрес экспортируемой функции HookProc из последней библиотеки. Далее API’шка SetWindowsHookEx устанавливает хук на клавиатуру.

Код экспортируемой функции в DLL вполне тривиален. Как на это отреагировали испытываемые антивирусы? Внедрение библиотеки обнаружил только Comodo. Даже Avast, который успешно отбивал «атаки» трех предыдущих поделок, сдал. О других антивирусах я вообще молчу — они также ничего не выдали.

Тест пятый: модификация hosts

Ну и напоследок я решил проверить, как же антивирусы реагируют на модификацию системного файла hosts, который отвечает за привязку определенных доменных имен к IP-адресам. Фрагмент кода, ответственного за правку hosts:

HANDLE hFile = CreateFileW(L»C:windowssystem32driversetchosts», GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
HANDLE hMapping = CreateFileMappingW(hFile, 0, PAGE_READWRITE, 0, 0, 0);
PVOID pHosts = MapViewOfFile(hMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
memcpy(pHosts, MalwareHost, lstrlenA(MalwareHost));
memcpy((char*)pHosts + lstrlenA(MalwareHost), EndingBytes, sizeof(EndingBytes));

Код не должен вызывать вопросов — все просто и очевидно. Я решил использовать не связку ReadFile/WriteFile, а маппирование файлов с помощью MapViewOfFile, исключительно для удобства. С этим заданием справились опять же только продукты от Avast и Comodo, что, в общем-то, было уже ожидаемо.

Заключение

Бесплатные версии продуктов показали себя не с лучшей стороны — их проактивка не мониторит даже совершенно стандартную вирусную активность. Может быть, платные версии справились бы лучше? Как знать, как знать. С другой стороны, во всем можно найти положительные стороны — помнишь нашу статью про тест халявных антивирусов и защиту от drive-by угроз (xakep.ru/post/54161/default.asp)? Вроде бы, в нем они неплохо себя показали.

Источник: xakep.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru