Установщик пароля на программы. - Assembler
Формулировка задачи:
Здравствуйте. В общем я не разбираюсь в ассемблере, программирую на высокоуровневых яп. Но тут попросили помочь, да и самому стало интересно написать программу.
Вот условия задачи:
Написать программу, которая модифицирует произвольный *.com файл таким образом, что при его запуске проводилась проверка пароля при входе. В случае несоответствия пароля производится аварийный выход из программы. Имя модифицируемого файла и пароль желательно вводить в командной строке.
Нашел код на ассемблере, где нужно ввести пароль за несколько попыток. Но не понимаю само условие: "модифицирует произвольный *.com файл". Компилятор же сам компилируется комовский файл. Извините если запутано спрашиваю, в общем помогите пожалуйста)Решение задачи: «Установщик пароля на программы.»
textual
Листинг программы
- .model small
- .stack 100h
- .data
- pass db 'Parol'
- passLen=$-pass
- MaxInputLen db 50
- InputLen db 0
- InputBuff db 50 dup (0)
- InputMsg db 'Enter password: $'
- MsgWrong db 'Password is wrong!$'
- MsgAccept db 'Password is accept!$'
- Access db 0
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov es,ax
- xor ax,ax
- call MessageForIn
- call input
- call Check
- cmp Access,1
- je GoodPass
- call BadMsg
- jmp exit
- GoodPass:
- call GoodMsg
- exit:
- mov ax,4c00h
- int 21h
- input proc
- mov ah ,0Ah
- mov dx,offset MaxInputLen
- int 21h
- mov dl,10
- mov ah,6
- int 21h
- ret
- endp
- MessageForIn proc
- mov ah,9
- mov dx,offset InputMsg
- int 21h
- ret
- endp
- Check proc
- mov ah,passLen
- mov bh,InputLen
- cmp ah,bh
- jne wrong
- mov di,offset pass
- mov si,offset InputBuff
- mov cx,PassLen
- cld
- repe cmpsb
- jne wrong
- mov Access,1
- wrong:
- ret
- endp
- GoodMsg proc
- mov ah,9
- mov dx,offset MsgAccept
- int 21h
- ret
- endp
- BadMsg proc
- mov ah,9
- mov dx,offset MsgWrong
- int 21h
- ret
- endp
- end start
Объяснение кода листинга программы
- Установка начального значения регистров.
- Вывод сообщения для ввода пароля.
- Ввод пароля в буфер ввода.
- Проверка правильности введенного пароля.
- Если пароль верный, то выводится сообщение о успешном вводе.
- Если пароль не верный, то выводится сообщение о неверном вводе.
- Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д