Задать вопрос
  • Как разработать драйвер виртуального устройства на winapi?

    @SolidMinus
    Задание по изучению драйверов на Winapi, хорошо знаю winapi


    Начну с того, что докопаюсь. Драйвера не имеют доступа к WinAPI. Все Вынапи определено в библиотеках уровня пользователя. Драйвера имеют с уровнем ядра и использует NativeAPI из ntoksrnl.exe

    В чём, кроме блокнота, разрабатывать драйвер?


    В редакторе кода *trollface*

    Visual studio + Windows WDK

    https://msdn.microsoft.com/en-us/library/windows/h...

    Что значит создать драйвер виртуального устройства


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

    в примере HTTP драйвер винды (да, этот протокол реализован через ядро).
    8787af477cb848e3a14ea3fcbea0306b.PNG

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

    (с сайта rootkit.com)


    О_О

    Сайт с 2006 года мертв :D

    Передай это дино-составителям задачи))

    книги "Руткиты: внедрение в ядро Windows" Г. Хоглунд, Дж. Батлер


    Ну не укладывается, что в универе просят писать руткиты под винду, хоть убей)
    Ответ написан
    1 комментарий
  • Как создать pki с помощью easy-rsa?

    @mureevms
    easy-rsa можно не ставить, это просто набор скриптов. Возьмите их в репе OpenVPN https://github.com/OpenVPN/easy-rsa/archive/master.zip:
    wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
    unzip master.zip

    Затем
    Перейти в каталог easyrsa3 и объявить для него переменные:
    cd ~/easy-rsa-master/easyrsa3
    cp ~/easy-rsa-master/easyrsa3/vars.example ~/easy-rsa-master/easyrsa3/vars

    Инициализировать PKI (Public Key Infrastructure — Инфраструктура открытых ключей):
    ./easyrsa init-pki
    Создать корневой сертификат. Обязательно ввести сложный пароль и Common Name сервера, например my vpn server:
    ./easyrsa build-ca
    Создать ключи Диффи-Хелмана:
    ./easyrsa gen-dh
    Создать запрос на сертификат для сервера OVPN. Обращаю внимание, что сертификат будет незапаролен (параметр nopass), иначе при каждом старте OpenVPN будет запрашивать этот пароль:
    ./easyrsa gen-req vpn-server nopass
    Создать сам сертификат сервера OVPN:
    ./easyrsa sign-req server vpn-server
    Скопировать полученные ключи в рабочий каталог openvpn:
    mkdir -p /etc/openvpn/keys
    cp ~/easy-rsa-master/easyrsa3/pki/ca.crt /etc/openvpn/keys
    cp ~/easy-rsa-master/easyrsa3/pki/issued/vpn-server.crt /etc/openvpn/keys
    cp ~/easy-rsa-master/easyrsa3/pki/private/vpn-server.key /etc/openvpn/keys
    cp ~/easy-rsa-master/easyrsa3/pki/dh.pem /etc/openvpn/keys

    Создать «HMAC firewall» для защиты от DoS аттак и флуда UDP порта:
    cd /etc/openvpn/keys/
    openvpn --genkey --secret ta.key

    Запустить openvpn:
    /etc/init.d/openvpn start

    Отсюда
    Ответ написан
    2 комментария
  • Как быстро перенести названия файлов в текст?

    @liks Автор вопроса
    Толстый Лорри спасибо за наводку
    В консоли:
    chcp 1251
    dir /b > files.txt
    Ответ написан
    Комментировать
  • Как прочитать данные из файла?

    arusef
    @arusef
    Novice .NET dev
    n_obj = fread(&data, size, n, out);
    Замените на
    n_obj = fread(data, size, n, out);
    Ответ написан
    5 комментариев
  • Как взаимодействовать с указателем в структуре через указатель?

    0xD34F
    @0xD34F
    Не разыменовывать указатель. Вместо return *head->... должно быть return head->....
    Ответ написан
    2 комментария
  • Можно ли использовать RD Shadow для подключения к Windows 7 Professional?

    @d-stream
    Готовые решения - не подаю, но...
    Дык внятно же пишется:
    В версии Windows, установленной на этом сервере, не поддерживается теневой доступ пользователей

    Разве что сервере надо было взять в кавычки.

    ЕМНИП из десктопных осей это поддерживает win8.1 и выше (естественно в версиях поддерживающих RDP то бишь не home)
    Ответ написан
    4 комментария
  • Что есть в C++, чего нет в C#?

    15432
    @15432
    Системный программист ^_^
    На C/C++ можно написать системный драйвер или микропрограмму для железки.
    В C/C++ есть union
    В коде на C/C++ можно использовать ассемблерные вставки

    Как уже писали, из-за близости языка к ассемблеру и машинному коду, упрощается работа с структурами данных и указателями, отсутствуют проверки и прослойки, само исполнение кода производится быстрее. Не требуется наличие .NET Framework, можно создать программу, не требующую вообще никаких дополнительных библиотек и ПО.
    Ответ написан
  • Как настроить одновременную работу за 1 пк?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Купить Windows Server.
    Для десктопных систем лицензия не допускает одновременную работу двух пользователей.
    Ответ написан
    Комментировать
  • При включении ноутбука черный экран думаю видеокарта сгорела. Как переключить на другую если даже в биос не заходит?

    Umr001
    @Umr001 Автор вопроса
    php
    Нужно было сбросить биос путем вытаскивания батарейки из мат платы
    Ответ написан
    Комментировать
  • Зачем static-переменную в языке Си делать глобальной?

    0xD34F
    @0xD34F
    Ну, если говорить конкретно про этот код, то, полагаю, для того, чтобы получить реакцию вот прям как у вас - недоуменное чесание затылка.

    А вообще - глобальная переменная (или функция), объявленная как static, является не совсем глобальной. Для каждой единицы трансляции будет создан отдельный экземпляр. То есть, предположим, что у вас есть заголовочный файл, где объявляется static глобальная переменная, и вы этот файл подключаете в двух разных .c-файлах - каждый из них будет иметь собственный экземпляр переменной.
    Ответ написан
    1 комментарий
  • Как правильно сформировать такой sql запрос?

    0xD34F
    @0xD34F
    Надо сгруппировать записи по марке автомобиля:

    SELECT auto.*, count(parts.id) as total
    FROM auto
    LEFT JOIN parts ON auto.id = parts.auto_id
    GROUP BY auto.id
    Ответ написан
    Комментировать
  • Как постичь дзен пинга?

    Jump
    @Jump
    Системный администратор со стажем.
    Нужно просто четко понимать что такое пинг - это время прохождения пакета от вас до нужного сервера и обратно.
    Сигнал идет со скоростью света -300тыс км в секунду поэтому дойти до сервера расположенного в 10тыс км и обратно займет примерно 60мс

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

    В любой беспроводной сети пинг значительно выше чем в проводной, по той простой причине, что там передается куча кодов коррекции, бывают приличные потери пакетов, и еще зачастую нужно довольно долго ждать своего таймслота.
    В итоге между двумя компьютерами расположенными в пяти метрах друг от друга пинг будет менее 1мс если подключить их проводом, а вот если для подключения использовать WiFi то пинг будет в лучшем случае 50мс, а в худшем может и 900мс - заметьте это для компьютеров которые стоят рядом.
    Всякие 3G, 4G - в этом плане мало чем отличаются от WiFi.

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

    Если нужен хороший пинг -
    • Используйте только проводные подключения, в идеале оптика до дома.
    • Не используйте дома никаких беспроводных подключений вроде WIFI.
    • Не используйте интернет для других целей или настраивайте приоретизацию на вашем оборудовании - если вы будете одновременно с игрой качать торренты это увеличит пинг. Поэтому либо отключаем все что использует интернет, либо настраиваем на нужный адрес высокий приоритет.
    Ответ написан
    3 комментария
  • Как операционная система понимает, сколько нужно очистить память?

    Выделяется не 256 байт, а служебная структура + 256 байт (а при страничной адресации так и вообще выделяется минимум 1 страница). Вот в этой служебной структуре и хранится перед выделенным блоком информация о самом блоке.
    Ответ написан
    3 комментария
  • Использование нелицензированного ПО в организации, кто несёт ответственность?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    А теперь от теории к практике, я сам несколько раз попадал под проверки, а также несколько лет "работал" независимым специалистом по киберпреступлениям, в том числе на проверках лицензионной чистоты. Руководство всегда показывает пальцем на админа и говорит "Мы не знали, вот ответственный специалист!" Заканчивается это тем, что компанию штрафуют, а админу прилетает срок. Наличие бумажки о том, что директор знал об установке пиратского софта трактуется судом как преступный сговор. Позиция админа "я не обязан разбираться в тонкостях лицензирования" - это как позиция бухгалтера "я не обязан разбираться в тонкостях налогообложения". Правильных решений может быть только два - либо заставить компанию перейти на лицензионное ПО, либо уволиться.
    Ответ написан
    39 комментариев
  • Как подключить LLVM в качестве C++ библиотеки?

    @Alexander1705
    1. Указать путь к заголовочным файлам.
    2. Указать путь и имя библиотеки.


    Детали могут отличаться в зависимости от вашей среды разработки. В visual studio должны быть настройки для этого. Если используете cmake, тогда используйте find_package, target_include_directories, target_link_libraries.
    Ответ написан
    Комментировать
  • Как изменить цвет шрифта в консольном приложении?

    0xD34F
    @0xD34F
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, color);

    color: старшие четыре бита - цвет фона, младшие - цвет текста
    Ответ написан
    4 комментария
  • Ростелеокм не проводит инет мол нету технический условий. Как объяснить что они не правы? Или все таки не прав я?

    Jump
    @Jump
    Системный администратор со стажем.
    Ростелеокм не проводит инет мол нету технический условий. Как объяснить что они не правы? Или все таки не прав я?
    Ничего не надо объяснять. Разумеется прав провайдер.
    Это его инфраструктура, и он лучше знает что у него есть, а чего у него нет.
    Если он говорит что технической возможности нет - значит в данный момент подключить невозможно.
    По какой именно причине невозможно он объяснять вам не должен.
    Например у провайдера в данный момент бригада монтажников ушла в запой - все, нет технической возможности для подключения.

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

    И можно ли поставить роутер в подъезде по закону?
    Размещение любого оборудования в подъезде надо согласовывать с управляющей компанией. Если хотите разместить обратитесь в УК и спросите разрешения.
    Ответ написан
    4 комментария
  • C 1 или с 0 начинается индексация массива указателей аргумента командной строки?

    @awdemme
    C 1 или с 0 начинается индексация массива указателей аргумента командной строки


    В нулевом элементе, как правило, хранится путь к самому исполняемому файлу вашей программы.
    А начиная с 1-го элемента - уже аргументы командной строки.
    Ответ написан
    Комментировать
  • Как в Ruby on Rails сортировать по алфавиту исключая в слове что-то?

    HighQuality
    @HighQuality
    ☁ Ниндзя девелопер
    В идеале вынести тип адреса в отдельное поле, но если сейчас нужно организовать по-быстрому отчет, можно использовать мощь postgresql (ее ведь используете?)

    Address.order("SUBSTRING(name, 'ул\s?(.*)') ASC")

    Этот способ при больших объемах данных будет работать медленно. Рекомендовал бы пересмотреть такой подход к сохранению адресов. :)
    Ответ написан
    Комментировать
  • Crontab ювелирная настройка времени?

    AxianLTD
    @AxianLTD
    Ответ написан
    Комментировать