Получение списка файловых дескрипторов процесса

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

Сообщения передаются через так называемые каналы, создаваемые серверным приложением с помощью системного вызова ChannelCreate(). После того, как канал создан, к нему могут подключаться клиентские приложения с помощью вызова ConnectAttach(). ConnectAttach() возвращает клиенту идентификатор, который тот потом использует для отправки сообщений серверному приложению с помощью MsgSend(). Все это может происходить совершенно неявно для разработчика, скрываясь под такими библиотечными вызовами стандарта POSIX, как open(), read(), close()… Читать далее «Получение списка файловых дескрипторов процесса»

Скрипт Channel Control Script

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

Текущие команды, поддерживаемые скриптом: kick, ban, unban, banlist, op, deop, voice, devoice, rehash, restart, rejoin, set, adduser, chattr, whois, bots, topic, addtopic, help и конечно же ботнет авторитизация. Если вы хотите увидеть в этом списке какие-то дополнительно команды, которые будут полезны не только вам, то пишите в форум. Читать далее «Скрипт Channel Control Script»

Работа защищенной программы

Как влияют файловые вирусы на работу защищенной программы?
Если при защите программы не использовалась опция /V (обнаружение и уничтожение файловых вирусов), то в случае заражения она может работать некорректно или вообще не работать. При этом может выдаваться сообщение «This is a Protected Program!» в DOS или «System Error» в Windows. Сообщение может отличаться от указанного в зависимости от того, как оно было определено разработчиком в файле сообщений *.MSG для утилиты автоматической защиты. DOS программа также указывает в сообщении длину вируса и предлагает его уничтожить. Включенные периферийные устройства, в том числе и принтеры, нельзя подсоединять к включенному компьютеру как через электронный ключ, так и без него. Читать далее «Работа защищенной программы»

Технология Stealth

В Stealth-ключе используется уникальная гибкая система энергопотребления, определяющая уровень его «прозрачности». Помимо двух стандартных состояний — ожидания или «сна» (когда через ключ не передаются никакие данные) и активной работы (когда ключ обрабатывает данные, предназначенные ему самому) — Stealth-ключ имеет и промежуточное состояние, которое характеризуется очень низким уровнем энергопотребления. В это состояние Stealth-ключ переходит в случае, если на  его вход приходят данные для подключенного через него периферийного  устройства. Появление нового состояния стало возможным благодаря микроконтроллеру Stealth-ключа. Когда на вход ключа приходят данные, предназначенные для периферийного устройства, микроконтроллер начинает работать с очень низкой тактовой частой, пропуская эти данные напрямую через ключ. Сам же он — как раз вследствие малой тактовой частоты микроконтроллера — в этот момент практически не потребляет энергии. Это и есть промежуточное состояние Stealth-ключа. Когда же на его вход приходят данные, предназначенные ему самому, микроконтроллер включает свой «турбо-режим», переводя ключ в состояние активной работы. Читать далее «Технология Stealth»

Для чего используется утилита WIZARD.EXE?

При помощи AutoProtection WIZARD (WIZARD.EXE) Вы сможете быстро научиться особенностям работы с утилитами автоматической защиты. Для того, чтобы защитить любое приложение в любом из доступных режимов, Вам достаточно запустить WIZARD.EXE и ответить на несколько элементарных вопросов, а развитая система помощи облегчит Вам процесс выбора нужного режима защиты и подскажет правильное решение в любой затруднительной ситуации. Кроме того, Auto Protection WIZARD генерирует специальные BAT-файлы, при помощи которых можно вызывать утилиту автоматической защиты с установленными Вами опциями защиты. Читать далее «Для чего используется утилита WIZARD.EXE?»

Файл вакцины NK.DAT

Где должен находиться файл вакцины, чтобы программа смогла его найти?
Файл вакцины NK.DAT для защищенной DOS-программы должен находиться в той же директории, что и сама программа. Если защищенная программа не может найти файл вакцины, то она выдает сообщение «This is a Protected Program!»
Файл вакцины NOVEX.EXE для защищенной 16-битной Windows-программы должен находиться в той же директории, что и сама защищенная программа, либо в системной директории Windows, либо в одной из директорий списка PATH, либо в одной из директорий, подсоединенных в сети. Если защищенная программа не может найти файл вакцины, то она выдает сообщение «System Error».
Файл вакцины NOVEX32.DLL для 32-битных приложений должен находиться в той же директории, что и сама защищенная программа, либо в одной из системных директорий Windows, либо в одной из директорий списка PATH. Если защищенная программа не может найти файл вакцины, то выдается стандартное сообщение Windows о невозможности найти DLL.
Сообщения DOS-программ и 16-битных Windows-программ могут отличаться от указанных в зависимости от того, как они были определены разработчиком в файле сообщений *.MSG для соответствующей утилиты автоматической защиты. Последнюю версию вакцины Вы можете загрузить

Вариации на тему

Хотя утилита идентификации потоков и является готовым продуктом, есть одна штука, которую я думал добавить в утилиту уже после сдачи ее заказчику. Только потому, что это отсутствовало в оригинальных требованиях, это никогда не было реализовано. Я говорю о возможности создания «именованных» потоков. Читать далее «Вариации на тему»

Пошаговый анализ кода

Давайте взглянем на основные части исходного кода утилиты командной строки.

Мы не будет обсуждать функциональность main.c — это стандартный код и в большой степени он понятен и без объяснений. Для деталей реализации разбора командной строки посмотрите описание на getopt() из библиотеки C. Читать далее «Пошаговый анализ кода»