Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

int 21h   Найти похожие ветки 

 
unregistered   (2003-03-17 15:57) [0]

Можно ли написать резидентную программу на Паскале, которая будет перехватывать прерывание 21h и отслеживать обращения к определенным файлам, а потом передавать управление старому обработчику int21h?


 
Vlad Oshin   (2003-03-17 16:03) [1]


> Можно



 
Ru   (2003-03-17 16:05) [2]

можно если осторожно


 
NetBreaker666   (2003-03-17 16:21) [3]

Такие вещи лучше на ASM"e писать.


 
Nic_B   (2003-03-17 16:32) [4]

Ну что-то типа этого (когда-то в молодости писал вири на паскале) может сгодится (но ассемблер знать надо). часть идеи выдрана из (с)Infected Voice

..
var
OldInt21: Pointer;
Regs: Registers;
..

{Свое прерывание int 21h}
procedure int21; Assembler;
asm
pushf
cmp ax,1235h
jnz @1
mov ax,1234h
popf
retf 2
@1:
push ax
push ds
xor ax,ax
mov ds,ax
cmp word ptr ds:[04F0H], 0DEADh
jnz @2 {@2}

xor ax,ax
mov ds,ax
mov word ptr ds:[04F0H], 0DEEDh

call create {а вот здесь вызывается то чего хочется запихнуть в обработчик}

pop ds
pop ax
popf
int 0e4h
retf 2

@2:
pop ds
pop ax
popf
int 0e4h
retf 2
end; {End of int 21h}
..
{main program}
begin
regs.AX:=$1235;
Intr($21,regs);
swapvectors;
if regs.AX<>$1234 then
begin
GetIntVec($21, OldInt21);
SetIntVec($21, Addr(Int21));
keep(0);
end;
end.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
3-6352
Aquarius
2003-03-14 10:04
2003.04.03
Тривиальный вопрос про интерфейс и не только!


3-6311
Val_123
2003-03-17 10:24
2003.04.03
Не работают запросы к таблицам


3-6382
Siduke
2003-03-13 01:34
2003.04.03
Компонент типа DBComboBox


6-6643
Nicky
2003-02-06 20:14
2003.04.03
аутентификация на локальной проксе


14-6770
unregistered
2003-03-17 15:57
2003.04.03
int 21h





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский