• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

как реализовать в паскале прерывания?

  • Автор темы Автор темы deeeman
  • Дата начала Дата начала
D

deeeman

Добрый день! Поможите плз:

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

Задача:
Два потока: первый читает информацию из файла (например, стихи или текст программы) в буфер, второй эту информацию из буфера выдаёт на экран. При заполнении окна вывода до конца его содержимое не должно обновляться полностью – вывод новой информации должен осуществляться в последнюю строку, а все остальные строки смещаться вверх. Имя читаемого файла задавать как параметр командной строки. После окончания файла он начинает считываться заново.


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

Конкретно с примерами кода на ваш ответ, не буду отвечать, это требует некоторого времени. Но вот погуглив немного, нашел парочку статей, которые должны помочь, покрвйней мере направить в какое-то русло.



модуль: Клавиатура (собственный обработчик прерывания клавиатуры)

надеюсь поможет...
 
Спасибо за подборку!
пригодился пример кода: KEYDRV.PAS
(взято с

про клавиши вверх вниз влево вправо понятно, а вот как обстоят дела с комбинациями клавиш?
например:
Ctrl + z и Ctrl + x
Shift + z и Shift + z

где взять коды кнопок нажатых одновременно?
можно это сделать через прерывания?

есть код: (типа прерывания на паскале.. но хотелось бы переделать со вставками асема, вероятно быстрее будет исполнятся.. а то медленно реагирует на клавиши...)

пока что у меня это сделано так:

{CTR+Z - увеличиваем квант времени для производителя}
If (ord(S)=26) Then Begin
........

но хотелось бы прерываниями, может будет быстрее реагировать...
 

Вложения

Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD