|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.06.2016, 13:35 | #1 |
Регистрация: 02.06.2016
Сообщений: 7
|
Задача по ЭВМ
Здравствуйте форумчане. В общем я не разбираюсь в ассемблере, программирую на высокоуровневых яп. Но тут попросили помочь, да и самому стало интересно написать программу.
Вот условия задачи: Написать программу, которая модифицирует произвольный *.com файл таким образом, что при его запуске проводилась проверка пароля при входе. В случае несоответствия пароля производится аварийный выход из программы. Имя модифицируемого файла и пароль желательно вводить в командной строке.Нашел код на ассемблере, где нужно ввести пароль за несколько попыток. Но не понимаю само условие: "модифицирует произвольный *.com файл". Компилятор же сам компилируется комовский файл. Извините если запутано спрашиваю, в общем помогите пожалуйста) |
02.06.2016, 13:42 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Почитайте описание и про структуру com файлов - все стане понятнее
|
02.06.2016, 13:44 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Код:
Ну, по другому говоря, Вам надо использовать "вирусные технологии". Можно дописать свой код в конец COM файла, изменить первые байты файла на безусловный переход на свой добавленный код, а в конце своего кода выполнить переход на оригинальное тело программы. Цитата:
|
|
02.06.2016, 13:49 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Производишь манипуляции с Any.com файлом. Меняешь первые 3 байта на jmp со ссылкой на конец файла. К концу этого файла прибавляешь свой TestPass.com, для проверки пароля. После восстанавливаешь первые 3 байта и выполешь уже основной код.
Читать Аппель. Ассемблер. Раздел про загрузку и исполнение COM файлов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
02.06.2016, 13:50 | #5 |
Регистрация: 02.06.2016
Сообщений: 7
|
Если не сложно можете скинуть информацию, где это можно прочитать. Ну или пример кода. И в чем это делать, есть ли среда разработки или что-то типо того?
|
02.06.2016, 14:09 | #6 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Не понятная задачка..
Если у юзера есть доступ к файлу, то он может просто запустить его без никакого пароля. Если доступа к файлу нет, то зачем химичить с его первыми байтами? Просто проверяй пароль со-своей облочки, и если пароль не утка, то идёшь на исполнение файла. В противном случае, обламываешь юзвера.
Нашедшего выход - затаптывают первым..
|
02.06.2016, 14:18 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
R71MT, вы о чем? задача как два пальца: есть com файл, надо чтобы программа изменила его так, чтобы при запуске этого com спрашивался пароль. Какой доступ юзера?
|
02.06.2016, 14:19 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
R71MT, в далекие годы DOS были даже программы для вакцинации файлов.
Это когда в каждый исполняемый файл (и COM и EXE) подвешивался кусок исполняемого кода, который при запуске проверял, что размер/контр.сумма файла не изменились. Если изменились - не давал программе запуститься. Так и тут. Сначала некто (администратор) обрабатывает COM файл, ставит пароль на его запуск. А уже потом пользователь, когда пытается запустить COM файл получает предложение ввести пароль. И, если неправильно вводит, программа не запускается! p.s. понятно, что это с помощью дизассемблера отламывается достаточно быстро. Хотя, если содержимое исходного файла шифрануть вводимым паролем, то и не отламывается! Но, в любом случае, задача то учебная! |
02.06.2016, 14:33 | #9 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Так он про отдельно взятый файл что-ли?
Я думал нужно организовать это дело из оболочки, для всех комок в дире.
Нашедшего выход - затаптывают первым..
|
02.06.2016, 14:34 | #10 |
Регистрация: 02.06.2016
Сообщений: 7
|
Если задача как два пальца, напишите пожалуйста как сделать. Я тут с выводом простого сообщения парюсь, а чтобы еще подвесить еще кусок для проверки вообще что-то анреал)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Десятично-двоичный преобразователь (хрестоматийная задача любой ЭВМ) | Sasha_Smirnov | Microsoft Office Word | 13 | 06.10.2013 11:01 |
Архитектура ЭВМ | Xronikov | Помощь студентам | 8 | 11.06.2012 09:36 |
задача на эвм | nata-107 | Помощь студентам | 0 | 15.05.2012 17:06 |
Синтез логических узлов ЭВМ (логические основы ЭВМ) | Одинокая Волчица | Фриланс | 7 | 26.04.2011 06:50 |