информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСтрашный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Спасиба всем! Теперь всё работает 8) 02.02.02 22:38  Число просмотров: 981
Автор: Eniac Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
Трабл с DOSом 02.02.02 00:25  
Автор: Eniac Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Народ, подскажите чё делать... Пишу резиденты под ДОС (можно сказать, хобби такое). Но вот фигня - в ДОСе нельзя вызывать одно прерывание из другого. Ну, например: хочу написать хороший кейлогер. Для этого вешаюсь на 0x09 - прерыване. Нажимается клавиша, логер вызывается, пишет в файл, и... виснет, поскольку при записи на диск вызывается другое прерывание - 0x21. Как обойти эту хрень, и нормально записать все, что нужно? На каком языке - не важно. Хоть как-нибудь, ну очень надо...
Мыльте предложения на eniac2001@mail.ru
Зарание спасиба!
Трабл с DOSом 02.02.02 08:30  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> Народ, подскажите чё делать... Пишу резиденты под ДОС
> (можно сказать, хобби такое). Но вот фигня - в ДОСе нельзя
> вызывать одно прерывание из другого. Ну, например: хочу
> написать хороший кейлогер. Для этого вешаюсь на 0x09 -
> прерыване. Нажимается клавиша, логер вызывается, пишет в
> файл, и... виснет, поскольку при записи на диск вызывается
> другое прерывание - 0x21. ...

Делай обработчик прерывания int 28h - он вызывается, когда писать можно:

Ставишь флажок свой в TRUE - Надо писать на диск;
Получаешь переодически прерывание Int 28h;
Уже в его обработчике:
Если флажок стоит в TRUE:
; Проверяешь флаг занятости DOS:
(Адрес получаешь заранее - об этом ниже)
lds di,dos_addr
cmp byte ptr ds:[di+1],1
ja @Не_надо_писать_счас
; Сбросить флажок и записать на диск

Получить адрес занятости:

mov ah,34h
int 21h
dec bx
mov word ptr dos_addr,bx
mov word ptr dos_addr+2,es



Трабл с DOSом 02.02.02 12:44  
Автор: Terrible Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А еще поищи книжку Финогенова "Самоучитель по системным функциям MS-DOS" там просто прекрасно рассмотрены все эти (и не только) проблемы
Спасиба всем! Теперь всё работает 8) 02.02.02 22:38  
Автор: Eniac Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach