我有一个从目录启动的正在运行的进程,将可执行文件名为foo.exe(windows),我怀疑该进程是否会破坏其自己的可执行文件?
如果是这样,下次运行将不允许我启动可执行文件,还是当前正在运行的可执行文件显示有问题的行为? 对于它可能正在使用的某些DLL也有类似的疑问。
我正在使用Windows,但对Windows和Linux的回答都表示赞赏。
答案 0 :(得分:0)
Windows在可执行文件运行时将其锁定,无法编辑.EXE或对其进行重命名/删除。
.DLL文件也是只读的,因此无法进行编辑,但可以重命名,以便恶意程序可以执行.DLL替换攻击。
Linux允许在使用文件时unlink
对文件进行<form action="<?php echo route('profile.store'); ?>" method="post">
<input type="hidden" name="_token" id="csrf-token" value="<?php echo csrf_token(); ?>" />
处理,因此会产生替换攻击。我不知道是否有办法在适当位置进行编辑。
如果可执行文件在网络共享上,则这些限制可能不适用,这取决于服务器实现和所使用的协议。
答案 1 :(得分:0)
通常,答案是否定的,除非操作系统中存在某些错误。操作系统将以只读方式打开可执行文件。然后,某些操作系统将可执行文件用作过程的只读部分的页面文件。在大多数操作系统中,如果没有错误,就不可能写回可执行文件。