Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2016, 13:35   #1
surrexi
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию Задача по ЭВМ

Здравствуйте форумчане. В общем я не разбираюсь в ассемблере, программирую на высокоуровневых яп. Но тут попросили помочь, да и самому стало интересно написать программу.
Вот условия задачи:
Написать программу, которая модифицирует произвольный *.com файл таким образом, что при его запуске проводилась проверка пароля при входе. В случае несоответствия пароля производится аварийный выход из программы. Имя модифицируемого файла и пароль желательно вводить в командной строке.
Нашел код на ассемблере, где нужно ввести пароль за несколько попыток. Но не понимаю само условие: "модифицирует произвольный *.com файл". Компилятор же сам компилируется комовский файл. Извините если запутано спрашиваю, в общем помогите пожалуйста)
surrexi вне форума Ответить с цитированием
Старый 02.06.2016, 13:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Почитайте описание и про структуру com файлов - все стане понятнее
p51x вне форума Ответить с цитированием
Старый 02.06.2016, 13:44   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
"модифицирует произвольный *.com файл"
означает, что Ваша программа должна взять указанный (рабочий) COM файл, переписать его содержимое так, чтобы перед запуском выполнялся запрос пароля, а после ввода правильного пароля выполнялось то, что было в этом файле ранее.
Ну, по другому говоря, Вам надо использовать "вирусные технологии".
Можно дописать свой код в конец COM файла, изменить первые байты файла на безусловный переход на свой добавленный код, а в конце своего кода выполнить переход на оригинальное тело программы.

Цитата:
В общем я не разбираюсь в ассемблере, программирую на высокоуровневых яп
придётся разобраться. Или обращаться за платной помощью к профессионалам.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2016, 13:49   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Производишь манипуляции с Any.com файлом. Меняешь первые 3 байта на jmp со ссылкой на конец файла. К концу этого файла прибавляешь свой TestPass.com, для проверки пароля. После восстанавливаешь первые 3 байта и выполешь уже основной код.
Читать Аппель. Ассемблер. Раздел про загрузку и исполнение COM файлов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 02.06.2016, 13:50   #5
surrexi
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

Если не сложно можете скинуть информацию, где это можно прочитать. Ну или пример кода. И в чем это делать, есть ли среда разработки или что-то типо того?
surrexi вне форума Ответить с цитированием
Старый 02.06.2016, 14:09   #6
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Не понятная задачка..
Если у юзера есть доступ к файлу, то он может просто запустить его без никакого пароля. Если доступа к файлу нет, то зачем химичить с его первыми байтами? Просто проверяй пароль со-своей облочки, и если пароль не утка, то идёшь на исполнение файла. В противном случае, обламываешь юзвера.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 02.06.2016, 14:18   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

R71MT, вы о чем? задача как два пальца: есть com файл, надо чтобы программа изменила его так, чтобы при запуске этого com спрашивался пароль. Какой доступ юзера?
p51x вне форума Ответить с цитированием
Старый 02.06.2016, 14:19   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

R71MT, в далекие годы DOS были даже программы для вакцинации файлов.
Это когда в каждый исполняемый файл (и COM и EXE) подвешивался кусок исполняемого кода, который при запуске проверял, что размер/контр.сумма файла не изменились. Если изменились - не давал программе запуститься.

Так и тут. Сначала некто (администратор) обрабатывает COM файл, ставит пароль на его запуск.

А уже потом пользователь, когда пытается запустить COM файл получает предложение ввести пароль. И, если неправильно вводит, программа не запускается!

p.s. понятно, что это с помощью дизассемблера отламывается достаточно быстро.
Хотя, если содержимое исходного файла шифрануть вводимым паролем, то и не отламывается!

Но, в любом случае, задача то учебная!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2016, 14:33   #9
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Так он про отдельно взятый файл что-ли?
Я думал нужно организовать это дело из оболочки, для всех комок в дире.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 02.06.2016, 14:34   #10
surrexi
 
Регистрация: 02.06.2016
Сообщений: 7
По умолчанию

Если задача как два пальца, напишите пожалуйста как сделать. Я тут с выводом простого сообщения парюсь, а чтобы еще подвесить еще кусок для проверки вообще что-то анреал)
surrexi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Десятично-двоичный преобразователь (хрестоматийная задача любой ЭВМ) 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