Установщик пароля на программы. - 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
Объяснение кода листинга программы
- Установка начального значения регистров.
- Вывод сообщения для ввода пароля.
- Ввод пароля в буфер ввода.
- Проверка правильности введенного пароля.
- Если пароль верный, то выводится сообщение о успешном вводе.
- Если пароль не верный, то выводится сообщение о неверном вводе.
- Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д