169 похожих чатов

Привет ребят. Я недавно занялся разработкой резидентного шпиона логгера выводимых

сообщений, который перехватывает прерывание 21h функцию 09h (Прога под MS DOS) и записывает то что выводиться в файл printed.log. И почему-то , не понимаю почему она работает некоректно. Во-первых, не записывает выведенное в лог файл ( он находится в папке с логгером ). Во-вторых, выводиться перехваченное сообщение некоректно, т.е. с лишними символами и останавливает работу всей системы. Исходники ниже.
CSEG segment
org 100h
Start:
        jmp Init
        
        Int_21h_proc proc
                cmp ah, 09h
                
                je Ok_09
                
                jmp dword ptr cs:[Int_21h_vect]
                
                Ok_09:   
                        push ax 
                        push bx
                        push cx
                        push dx
                        push ds
                        
                        push dx
                        
                        mov ah, 4Eh
                        xor cx, cx
                        lea dx, logfile
                        int 21h
                        
                        mov ax, 3D02h
                        mov dx, 9Eh
                        int 21h                       

                        xchg bx, ax
                        
                        mov ah, 40h
                        pop dx
                        mov cx, 0Fh
                        int 21h
                        
                        mov ah, 3Eh
                        int 21h
                        
                        mov ah, 09h
                        int 21h
                        
                        pop ds
                        pop dx
                        pop cx
                        pop bx
                        pop ax
                        
                        pushf
                        call dword ptr cs:[Int_21h_vect]
                        
                        iret
                        
                        Int_21h_vect dd ?
                        logfile db "PRINTED.LOG",0
        Int_21h_proc endp
        
        Init:
                mov ax, 3521h
                int 21h
                
                mov word ptr Int_21h_vect, bx
                mov word ptr Int_21h_vect+2, es
                
                mov ax, 2521h 
                
                mov dx, offset Int_21h_proc
                int 21h
                
                mov dx, offset Init
                int 27h
                
CSEG ends
end Start

1 ответов

8 просмотров
Пользователь-63efd Автор вопроса

Так мне никто не поможет с моей проблемой?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта