Skip to content

Use it if your friend has sent you a .com file, where you need to enter password

Notifications You must be signed in to change notification settings

EvieLynn26/DOS_CrAcK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

DOS_CrAcK

Use it if your friend has sent you a .com file, where you need to enter password

код в дебаггере

Image alt

{username} — ваш ник на ГитХабе; {repository} — репозиторий где хранятся картинки; {branch} — ветка репозитория; {path} — путь к месту нахождения картинки.

Хорошо, что в DOS'е доступен встроенный дебаггер, позволяющий не только выполнить .com файл по шагам, но и увидеть команды в дизасемблированном виде, а так же локализацию в памяти секции data.

Ход исследования полученного .com файла:

  1. После запуска программа просит ввести пароль, при этом требуемое кол-во символов не указано. Т.к. введенные даные запишутся в отведенный для этого буфер, имеет смысл при рассмотрениии программы в дебаггере ввести пароль в один символ, чтобы не затереть какую-то информацию, лежающую сразу после буфера.

  2. В дизассемблированном коде файла встречается строка сравнения значения регистра dx с содержимым двух байт по адресу [01B4].

  3. TurboDebugger DOS позволяет просмотреть данные по этому адресу, предположительно, это хеш правильного пароля. Уязвимость найдена! Буфер для введенного пароля расположен сразу перед ячейками с хешом => можно переписать их хешом, который совпадет с нашим паролем.

Note: считывание пароля из консоли выполняется при помощи функции 0ah 21-го прерывания DOS, которая позволяет считать кол-во символов, определенное первым байтом буфера для пароля. Уязвимость программы состоит как раз в "неверно" указанном количечестве символом для считывания, которое позволяет перезаписать ячейки, не принадлежащие буферу для пароля. Note: для ввода пароля не обязтельно использовать консоль, можно писать данные в файл и перенапрявлять ввод из консоли. Строка должна заканчиваться терминальным символом 0D.

About

Use it if your friend has sent you a .com file, where you need to enter password

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published