Может ли работающий процесс повредить свой исполняемый файл и файлы (используемые в данный момент) из своего каталога - PullRequest
0 голосов
/ 24 мая 2019

У меня запущен процесс, запущенный из каталога, пусть имя исполняемого файла будет foo.exe (windows), я сомневаюсь, что этот процесс может испортить свой собственный исполняемый файл?

Если так, следующий запуск не позволит мне запустить исполняемый файл, или запущенный в данный момент исполняемый файл будет отображать проблемное поведение?Подобные сомнения относительно некоторых библиотек DLL, которые он может использовать.

Я использую Windows, но ответы как для Windows, так и для Linux приветствуются.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Как правило, ответ НЕТ - если в операционной системе нет какой-либо ошибки.Операционная система откроет исполняемый файл только для чтения.Затем некоторые операционные системы используют исполняемый файл в качестве файла подкачки для разделов процесса, доступных только для чтения.Невозможно выполнить обратную запись в исполняемый файл при отсутствии ошибки в большинстве операционных систем.

0 голосов
/ 24 мая 2019

Windows блокирует исполняемый файл во время его работы, .EXE не может быть отредактирован или переименован / удален.

.DLL файлы также доступны только для чтения, поэтому их нельзя редактировать, но их можно переименовать, чтобы злая программа могла выполнить замену .DLL.

Linux позволяет unlink редактировать файлы, пока они используются, поэтому применяются атаки замены. Я не знаю, есть ли способ отредактировать их на месте.

Если исполняемый файл находится в сетевой папке, эти ограничения могут не применяться, это будет зависеть от реализации сервера и используемого протокола.

...